Raspberry Pi a meranie teploty v miestnosti
Pred pár dňami som písal o tom, ako na Raspberry Pi rozchodiť Node.js. Node.js som potreboval k vytvorenie webového rozhrania k teplotnému senzoru, ktorý som k Raspberry Pi pripojil. Dnes prinášam návod, ako na to.
Hardvér
K zostrojeniu teplomera pre Raspberry PI som použil teplotný senzor DS18B20 a rezistor RRU 4K7. Problémom je, že si tieto dve súčiastky musíte zospájkovať. Ja som na to použil ochotného kolegu, ktorý sa vyzná v elektronike a spravil to za mňa. Výsledkom bol teplomer s 3 výstupmi (mínus = GND, plus = +3,3V, data = GPIO4).
Teplomer je nutné pripojiť do GPIO na Raspberry Pi. Pomocou schémy jednoducho zistíte, že +3,3V je prvý pin v druhom riadku, GPIO4 je štvrtý pin v prvom riadku a GND je tretí pin v prvom riadku (schéma je otočená o 90 stupňov oproti “skutočnosti”).
Softvér
Distrubúcie RaspBMC a Raspbian v sebe obsahujú potrebné ovládače, takže ich stačí zaviesť
sudo modprobe w1-gpio
sudo modprobe w1-therm
a teplomer sa následne objaví v zozname zariadení
ls /sys/bus/w1/devices/
u mňa je identifikovaný ako zariadenie 28-000004e23e98, u vás sa to môže líšiť. Aktuálnu teplotu potom získate pomocou
cat /sys/bus/w1/devices/28-000004e23e98/w1_slave
ako posledné číslo v druhom riadku výstupu, ktorý má tvar na štýl
bc 01 4b 46 7f ff 04 10 d2 : crc=d2 YES
bc 01 4b 46 7f ff 04 10 d2 t=20865
Teplotu predstavuje údaj t=20865, ktorý znamená 20,865 stupňa.
Webové rozhranie
Zisťovanie teploty priamo z konzoly nie je veľmi pohodlné, vytvoril som si preto jednoduché webové rozhranie v Node.js. Kompletný kód nájdete na mojom GitHube, stačí v súbore server.js zmeniť id zariadenia a aplikáciu spustiť.
node server.js