#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
}