termostat arduino ds18b20

admin
Site Admin
Posty: 21
Rejestracja: sob lut 07, 2015 4:03 pm

termostat arduino ds18b20

Postautor: admin » pn gru 09, 2019 5:21 pm

#include <OneWire.h> // Podłączamy bibliotekę do interakcji z urządzeniami pracującymi na magistrali i korzystającymi z protokołu 1-Wire
#include <DallasTemperature.h> // Łączymy bibliotekę z funkcjami do pracy z DS18B20 (zapytania, odczyt i konwersja zwróconych danych)

#define ONE_WIRE_BUS 2 // Określ pin do podłączenia wyjścia danych czujnika temperatury
#define term_power 3 // Określ pin do podłączenia zasilania czujnika temperatury

OneWire oneWire(ONE_WIRE_BUS); // Informujemy bibliotekę o urządzeniu działającym na protokole 1-Wire
DallasTemperature sensors(&oneWire); // Łączymy funkcje biblioteki DallasTemperature z naszym urządzeniem 1-Wire (DS18B20)
int relepin = 4; // pin przekaźnika 4

void setup(void)///////////////////////////////////////////////////////////////////
{
Serial.begin(9600); // Uruchom wyjście danych do portu szeregowego
sensors.begin(); // Uruchom bibliotekę pomiaru temperatury
pinMode(term_power, OUTPUT); // Określ styk do podłączenia zasilania do czujnika temperatury
pinMode(relepin, OUTPUT); // przekaźnik

}


float temperature() { // Zmierz temperaturę przez 10 sekund
digitalWrite(term_power, HIGH);
delay(100);
sensors.requestTemperatures();
delay(500);
sensors.requestTemperatures();
float t = float(sensors.getTempCByIndex(0));
//digitalWrite(term_power, LOW);
delay(2400);//9400
return(t);
}

void loop(void)/////////////////////////////////////////////////////////////////

{

if(sensors.getTempCByIndex(0) <= 23){ digitalWrite(relepin, LOW);} // jeśli temperatura jest mniejsza niż ... stopni, włącz przekaźnik
if(sensors.getTempCByIndex(0) >= 25){ digitalWrite(relepin, HIGH);}//jeśli tempo. więcej niż 30, a następnie wyłącz przekaźnik



Serial.println(temperature(),1); // Wyświetl aktualną temperaturę czujnika zaokrągloną do dziesiątych
}