Тема: HC-06 терморегулятор DS18B20
Приложение:
Данный контент доступен только зарегистрированным пользователям.
Исходники для Android Studio:
Данный контент доступен только зарегистрированным пользователям.
#include <OneWire.h>
#include <DallasTemperature.h>
#include <EEPROM.h>
OneWire oneWire(A0);// вход датчика 18b20
DallasTemperature temp(&oneWire);
int buff[2],i,dig,arr[2],w=1,w1,reg;
int k;
int gis=1; // гистерезис 1 градус
unsigned long times;
void setup(){ Serial.begin(9600);Serial.setTimeout(50);
pinMode(13, OUTPUT);// P1
temp.begin();
temp.setResolution(9);//12 бит
reg = EEPROM.read(0);
pinMode(13, OUTPUT); // выход реле
}
void loop() {
/////// ПРИЕМ ДАННЫХ С SERIAL PORT /////////////////////////
while (Serial.available()>0){
for (i=0;i<1;i++) {
buff[0] = Serial.parseInt();
buff[1] = Serial.parseInt();}
w=1;w1=1;times=millis();}
///////////// обработка команд ///////////////////
if(buff[0]>10&&w==1){ w=0;
if(buff[0]==102){reg++;if(reg>125){reg=125;}}
if(buff[0]==101){reg--;if(reg<0){reg=0;}}}
/// EEPROM
if(w1==1&&millis()-times>10000){w1=0;EEPROM.update(0,reg);}
/// измирение температуры
temp.requestTemperatures();
k = temp.getTempCByIndex(0);
/// отправка днный в android
Serial.print(k*10);
Serial.println(reg);
if(reg >= k + gis){digitalWrite(13,HIGH);}
if(reg <= k - gis){digitalWrite(13,LOW);}
}