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