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.