RaspberryPI teplomer a kamery

Publikované: 15.02.2013, Kategória: Počítače

www.svetelektro.com

Praktické využitie počítača RaspberryPI na meranie teploty a fotenie obrázkov z kamier

Keďže RaspberryPI som mal doma už viac ako pol roka a stále len v izbe na stole bez zmysluplnejšieho využitia začalo mi ho byť trochu ľúto. Využil som teda jednoduché zapojenie teplomera s DS18B20 o ktorom som sa dozvedel od Pablox-a a 3 interných webkamier zo starých notebookov a postavil som z neho niečo ako dopravnú kameru s teplomerom. 

 

V zariadení nieje žiadny pevný disk všetko sa ukladá na externý server preto aj spotreba zo siete je len okolo 3W. Keďže SD karta je pomerne primitívne zariadenie s malým počtom prepisov (jedna pri podobnom zariadení v nepretržitej prevádzke vydržala len pol roka, neskôr som sa dozvedel, že to nie je nič výnimočné) tak sa snažím minimalizovať počet zápisov na ňu. Preto sa mi pri bootovaní vytvára 10MB veľký ramdisk ktorý slúži ako dočasné úložisko na fotky pred ich uploadom na server. 

 

Fotenie prebieha vlastným scriptom ktorý s pomocou streamera (http://packages.debian.org/squeeze/streamer) spraví postupne na všetkých kamerách po 5 fotiek a poslednú z každej uploadne na ftp server. Päť preto, lebo pri prvých ešte kamera nemá nastavené osvetlenie. Po uploade script kontaktuje vzdialený server aby mu oznámil, že prišli nové fotky. Vzdialený server potom porovná hash nových fotiek s poslednými a ak sa nezhoduje aktualizuje v databáze čas posledného fotenia a archivuje súbory. 

Notebookove webkamery sa pripájajú cez USB hub okrem napájania. Dve z nich potrebujú 3,3V tak to ťahám z GPIO portu na RaspberryPI. 



 

Teplomer ovláda tiež vlastný script s pomocou digitempu (http://packages.debian.org/sk/sid/digitemp). Na jeho pripojenie som použil primitívny prevodník čo je pravdepodobne dôvod prečo má občas problém zmerať teplotu a vracia hodnotu 85.00C. Script preto kontroluje nameranú hodnotu a ak je väčšia ako 70°C zopakuje meranie. Vyčíta tiež aj internú teplotu z čipu v RaspberryPI. Vypočíta kontrolný hash a všetko cez http get odošle na vzdialený server. Server potom z doručených hodnôt tiež vypočíta hash a porovná ho s doručeným. Ak sa zhodujú zapíše hodnoty do sql databázy. Kontroluje tiež aj IP adresu odosielateľa ako ďalšie overenie či hodnoty odoslalo PI.



 

DS18B20 sa dá pripojiť aj priamo na GPIO, ale po nainštalovaní potrebných modulov mi rozhádzali systém, z devu zmizli kamery a prevodník som mal doma už dávno hotový tak som použil ten. 

Keby som to, ale išiel stavať znovu už by som nepoužil takéto kamery. Každá je iná, pôsobí to príliš amatérsky a zo začiatku boli len zdrojom problémov. Jednu som rovno vyhodil po tom čo spôsobovala pády USB root hubu a teda aj ethernetu. Podľa oficiálnych stránok niesom jediný komu sa táto chyba stala tak som si pre istotu ešte pridal script ktorý raz za 5 minut kontroluje stav ethernetu a ak je nedostupný reštartuje systém. 

 

Výstup si môžete pozrieť na http://www.bzince.info