Pokud chceme měřit teplotu můžeme požít čidlo DHT22, toto čidlo dokáže měřit teplotu a vlhkost. Pokud chceme ale měřit jen teplotu můžeme použít malinké čidlo DS18B20. Toto čidlo měří s v rozsahu -55 až 125 stupňů.
Samotný DS18B20 na www.aliexpress.com stojí 20,-Kč pokud ho budeme chtít zapouzdřený i s kabelem pak 27,-Kč.
Propojení čidla s arduinem je na následujícím obrázku. Rezistor by měl mít hodnotu 4.7 KΩ.
Program pro čtení hodnot z čidla:
#include <OneWire.h> #include <DallasTemperature.h> OneWire jednoDrat(7); DallasTemperature teplomer(&jednoDrat); void setup() { Serial.begin(9600); teplomer.begin(); } void loop() { teplomer.requestTemperatures(); float teplota = teplomer.getTempCByIndex(0); char s[20]; byte tDes=(teplota-(int)teplota)*10; sprintf(s,"Teplota: %d.%d C",(int)teplota,tDes); Serial.println(s); delay(1000); }
Knihovnu DallasTemperature naleznete zde https://github.com/milesburton...ol-Library popřípadě zde DallasTemperature.zip.
Pro zobrazení hodnoty teploty na jedno desetinné místo jsem použil způsob ve kterém nejdříve zobrazím celou část hodnoty a pak zbytek vynásobený číslem 10.