Posledná aktivita

Teplotné čidlo pre Raspberry Pi

Píšem o veľmi šikovnom a jednoducho ubastlitelnom teplotnom čidle, pretože má mnoho využití a páči sa mi. Ako teplotné čidlo som použil DALLAS 18B20 (stojí okolo 2-3€ v GM electronic). Samozrejme, potrebujeme viac, ako len jeden IO obvod, potrebujeme aj odpor 4,7k ohm.
Bez názvu-1

Ospravedlňujem sa za kvalitu tej schémy, je to len náčrt.
Tento obvod komunikuje priamo s Raspberry Pi cez jeden GPIO port. Vďaka tomu, že každý takýto teplomer ma vnútorne nastavený unikátny kód, takže môžme na jeden port pripojiť niekoľko takých istých teplomerou. Program rozoznáva čidlá podľa ich vnútorného kódu.

Inštalácia

sudo bash
rm -f raspbian-w1-update
wget http://www.frank-buss.de/raspberrypi/raspbian-w1-update
bash raspbian-w1-update

Tieto príkazy nám nainštalujú všetko, čo potrebujeme, potom dojde aktualizácii jadra RasPi sa reštartuje. Po znovu nabehnutí RasPička musíme spustiť ovládače.

sudo bash
modprobe w1-gpio
modprobe w1-therm

Tieto príkazy je dobré umiestniť do nejakého skriptu, ktorý sa spúšta pri štarte, tak ako som už písal aj v článku o inteligentnom dome, pretože inak by ste museli tieto vládače púštať vždy po reštarte, keď budete chcieť merať teplotu.
Pomocou príkazu       ls /sys/bus/w1/devices/    overíme, že čidlá sú pripojené a ovládače fungujú a aj unikátny kód jednotlivých čidiel.

Snímka obrazovky 2013-04-25 o 4.10.24 PM
Takže ak chceme zistiť teplotu čidla zadáme:  cat /sys/bus/w1/devices/unikátný kód/w1_slave.

Snímka obrazovky 2013-04-25 o 4.08.51 PM

Vráti sa nám teplota v druhom riadku a yes, alebo no v prvom riadku. YES/NO určuje, či je kontrolný súčet správny, alebo nie. Niekedy sa stane chyba v komunikácii a RasPi nám vypíše nezmyselné číslo. Vďaka YES/NO a zdravému rozumu(v izbe mi ukázalo asi -2000 stupňov :D) si môžme overiť, či je výsledná teplota správna. Aj keď nám vypluje správnu teplotu je vo forme čísla bez destatinnej čiarky. Viac sa mi to páči, keď tam ta čiarka je, tak som to urobil následovne: cat /sys/bus/w1/devices/unikátny kód/w1-slave | grep t= | cut -f2 -d= | awk ‘{print $1/1000}’

Snímka obrazovky 2013-04-25 o 4.21.54 PM

Tento teplomer môžte využiť rôzne. Ja ho vyžívam ako teplomer v izbe s výstupom na web, ale už som to skúšal aj na spínanie kotla v závislosti od vonkajšej teploty.

Snímka obrazovky 2013-04-27 o 2.49.45 PM

Výstup na web.

 

Neskôr napíšemaj o tom. Chcem si k RasPičku dorobiť dvojriadkový displej, na ktorom sa mi bude po niekoľkých sekundách vypisovať teplota jednotlivých čidiel.
Ja som si spravil skript, ktorý mi vypíše teplotu aj s desatinnou čiarkou. Vyzerá následovne.

Snímka obrazovky 2013-04-25 o 4.21.23 PM

Skript:

#!/bin/bash

cat /sys/bus/w1/devices/28-000001b47f47/w1_slave | grep t= | cut -f2 -d= | awk ‘{print $1/1000}’

Moje zhotovenie čidla:

IMG_0489

IMG_0491

Čidlo v izbe a kábel pre vonkajšie čidlo. Aj keď spájate viac čidiel stačí vám len jeden odpor na prvom čidle.

 

12 Responses to Teplotné čidlo pre Raspberry Pi

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *