Webserver a webkamera na Raspberry

Raspi je skvělá hračka. Zkusil jsem si na něm vytvořit webserver a když už to běželo tak mne napadla ještě webkamera. Práce na tom bylo hodně, ale protože Linux je můj kamarád, pokračovalo to základními senzory pro tlak, teplotu a vlhkost vzduchu aby na snímku z kamery bylo něco více než jen datum a čas.

Po dvou měsících zkušebního provozu a ladění běžel více než polovinu roku 2018 můj starý web a první Hlasnotřebaňská webkamera na Raspberry Pi. Spotřeba celé té legrace je do 10 W takže náklady ve srovnání s běžným webhostingem jsou maximálně čtvrtinové. Otázka je, jak dlouho to v drsném světě internetu přežije. To se uvidí, na boj s hackery, DoS a roboty nemám ani čas ani náladu. Ani znalosti 🙂

Nemá smysl a ani by nebylo moudré do detailu popisovat jak to všechno běží a funguje, vše je závislé na mnoha okolnostech, takže jen stručně…. Raspberry ve verzi Pi 3 model B pracuje s operačním systémem Raspbian Stretch. Jako webový server jsem použil Lighttpd s moduly pro PHP a CGI, běží fakt rychle a spolehlivě, vzhledem k omezenému výkonu a paměti počítače je to podle mne nejlepší volba. Od poskytovatele internetu mám veřejnou IP adresu takže stačilo změnit DNS záznamy a jelo to. 

Webkamera… Ta co dodávají k Raspi je skvělá – má dostatečné rozlišení a frekvenci snímkování, mraky funkcí, minimální spotřebu a je fakt levná, klasické webkamery mohou konkurovat jen ztěží. Ale ty se zase obejdou bez obslužných programů, které musí někdo napsat, že ano… Moji kameru ovládám linuxovým skriptem, který každou minutu obnoví snímek z kamery. Kromě toho archivuje snímky za poslední hodinu každých pět minut, za poslední den každou hodinu, jednou denně za poslední měsíc a každou neděli za poslední rok. Abych neodkouřil SD kartu vlivem častých zápisů, vytvořil jsem z části paměti RAM virtuální disk a nejčastější přepisy provádím na něm. Těch cca 100 MB počítači vůbec nechybí.

Senzory, které jsem použil nebylo obtížné díky obrovské komunitě uživatelů Raspberry rozpohybovat, stačilo stáhnout dokumentaci a aniž bych musel detailně zkoumat co přesně s nima obslužný Pythoní script provádí jsem mohl jejich výstupy implementovat do snímků z kamery. Pro tlak jsem použil BOSCH BMP280, pro teplotu DS18B20 a senzor vlhkosti (umí i teplotu) je DHT22. Z ryze praktických důvodů (hlavním důvodem je moje vrozená lenost) jsem do elektrického zapojení doplnil také dvě LEDky, které způsobem blikání indikují správnou funkci celé sestavy takže to nemusím kontrolovat na počítači.

Vše je vestavěné v plastové průmyslové krabici, čidla pro teplotu a vlhkost venku, napájení po ethernetovém kabelu, no jsem zvědavý jak to bude odolné dešti a vysokým teplotám. Uvidíme.

Na adrese http://79.98.77.133/webka/aktual-ramdisk/webka_trebka.jpg je z internetu kamera volně přístupná veřejnosti. Lze si ji také prohlížet v mobilním telefonu díky appce Webkamery.

Pár fotek ze stavby…

 

Aktualizováno 21.10.2018:

Nefunguje čidlo vlhkosti a občas i tlaku. Někdy to celé spadne, zatím jsem neměl čas pátrat po příčině. V rámci migrace na nový web budu muset vyřešit upload snímků na hosting a synchronizaci archivů ve webkameře s adresáři na hostingu. Asi pomocí rsync a cron přes FTP, ještě nevím. Nebo to celé přesunout na Raspi, to se ještě uvidí, zima bude dlouhá 🙂

Příspěvek byl publikován v rubrice Linux se štítky a jeho autorem je michal. Můžete si jeho odkaz uložit mezi své oblíbené záložky nebo ho sdílet s přáteli.