Monitorování včelích úlů

Jelikož se stavba RepRapu malinko zasekla a stále čekám až dorazí některé poslední části, začal jsem se více věnovat projektu, který mám v hlavě již od začátku roku ale teprve až začátkem prázdnin jsem se dostal k jeho realizaci. Cílem projektu je monitorovat parametry včelích úlů v reálném čase. O co jde a v jakém jsem stádiu bych rád popsal v textu níže.

Co se měří

Na začátek malé vysvětlení všem nevčelařům, jak takový úl vlastně vypadá. Včelí společenství se skládá z matky a velkého množství různě starých včel a občas i trubců. Matka je nejdůležitější část celého společenství, protože jako jediná má schopnost klást vajíčka, ze kterých se líhnou nové včelky. Ostatní včelky se starají o matku, plod, zásoby medu i obstarávání pylu a nektaru. Trubci jsou ve společenství tak trochu navíc (ale to nezmanená že nejsou za potřebí).

Včelí úl, který zkonstruuje včelař pak připomíná stavebnici. Spodní část úlu tvoří dno, na které se na patra pokládájí nástavky. Ty si představte jako krabice bez dna a půdy. Do nástavků se vkládají rámečky, ve kterých včely pak budují plástve z vosku a do nich ukládají medové zásoby a matka do nich také klade vajíčka. Nástavkový úl (tak se celé konstukci říká) je většinou ze dřeva ale někdy se používá i polystyren. Jedno prázdné patro (tedy nástavek plný rámečků, bez medu a včel) může odhadem vážit cca 5-7 kg, takže prázdný úl o 4 nástavcích včetně dna má váhu asi 30kg. Na konci léta, pokud je včelstvo silné a většina rámečků je plná zásob může váha dosahovat až 70 kg (záleží na počtu nástavků, úl může vážit klidně i přes 100 kg).

Pohled na přední stranu včelího úlu. Vpravo dole je vidět plastová krabička s elektronikou.
Pohled na přední stranu včelího úlu. Vpravo dole je vidět plastová krabička s elektronikou.

Informace o váze úlu tak může včelaři poskytnou docela přesnou představu o stavu včelstva i množství medových zásob. Pokud se včelař rozhodne své úly vážit, nejčastěji zvolí obyčejnou mechanickou váhu, na kterou úl položí a pak jednou za dva až tři dny zkontroluje a zapíše výsledek. Existují i automatizované váhy, které měří váhu (a někdy i teplotu, vlhkost vzduchu a další veličiny) několikrát denně a výsledky ukládají na SD kartu, případně do vnitřní paměti a včelař tak jednou za několik dnů jednoduše stáhne výsledky do PC.

Když jsem se po podobné automatizované váze díval, většinou byly výrobci zahraniční firmy a cena jedné váhy kolem 8 tisíc korun. Každopádně koupit si drahou váhu na pozorování včelího úlu, to není můj styl :) Jeden týden mi trvalo navrhnout vlastní elektroniku, napsat jednoduchý program pro AVR a druhý týden už jsem začal zkoušet a experimentovat přímo v terénu.

Jak se měří

Hlavní myšlenka projektu je měřit váhu a teplotu každých 30 minut a v reálném čase ukládat výsledky na internet, kde se vše přehledně zobrazí do grafů. K měření váhy jsem zatím zvolil čtyři tenzometry, které jsem vykuchal z levné osobní váhy. Tenzometry jsou ale teplotně závislé, změna jejich odporu je velmi malá a tyto levné kusy nejsou konstruovány na kontinuální zátěž. Na prvnotní experimentování ale zatím stačí.

Jeden tenzometr ze čtyř do každého rohu dna úlu.
Jeden tenzometr ze čtyř do každého rohu dna úlu.

K měření teploty používám digitální teplotní čidla DS18B20. Jedno měří venkovní teplotu a druhé pak teplotu uvnitř úlu. Do budoucna bych rád měření rozšířil o vlhkost vzduchu a další veličiny.

Data se přenáší přes ZigBee 2,4GHz ze zahrady do domu (cca 70 m ale vyskytly se komplikace, viz dále), kde se přes HTTP uloží na server. Na serveru běží mnou napsaná aplikace v Djangu/Python, která také data dokáže zobrazit graficky.

Měřicí část

Měřicí část: ATMega328, INA125, RTC a ZigBee 2,4GHz.
Měřicí část: ATMega328, INA125, RTC a ZigBee 2,4GHz.

Na straně úlu je tedy následující elektronika: mikrokontrolér ATMega328P, ZigBee modul 2,4GHz nastavený jako end-device, obvod reálného času DS2417 (používám jej pro čítání 30 minutových intervalů), zesilovač INA125 a k němu připojené 4 tenzometry v můstkovém zapojení. Obvod INA125 si sám generuje exitační napětí 2,5 V a použité tenzometry mají citlivost asi 2mV/V, takže zesílení INA125 je nastaveno na 1500, abych využil co největší část rozsahu 10b AD převodníku uvnitř ATMegy. napájecí část je řešena s pomocí dvou tužkových alkalických baterií a step-up měniče, jehož výstupem je 5V. Tento zdroj zatím není součástí hlavní desky, v dalších verzích chci postavit jednoduchý měnič přímo na DPS.

Mikrokontrolér je většinu času v režimu power-down, stejně tak modul ZigBee a INA125. Poté, co obvod reálného času načítá 34 minut, vygeneruje se přerušní a AVR se probudí. Změří teplotu z obou čidel, probudí zesilovač a změří váhu, zapne ZigBee, odešle výsledek a počká na potvrzení a přejde do režimu spánku.

Pokud během odesílání dojde ke ztrátě ZigBee signálu, opakuje se vysílání celkem třikrát a pokud ani poté nejsou data úspěšně odeslána, výsledek měření se zahazuje. Ukládání dat do EEPROM nebo na SD kartu jsem (zatím) neimplementoval, ale po měsíci měření a zkušeností jsem došel k závěru, že je tato vlastnost velmi důležitá. K výpadkům dochází dost často a trvají klidně i celý den.

Přijímací část

Na přijímací straně je Arduino Uno s Ethernet shieldem připojené k domácímu routeru. Dále je k Arduinu připojeno ZigBee nastavené jako coordinátor celé sítě.

Po zapnutí si Arduino zažádá o IP adresu a zapne ZigBee modul. Poté již čeká na příchozí data, která rychle zkontroluje, zabalí do HTTP post poždavku a odešle na server. Data se odesílají z měřicí části v textové nezašifrované podobě, takže zde se jen zakódují do URL podoby, opět žádné šifrování.

Přijímací část je momentálně improvizovaně zapojena na nepájivém poli. Arduino, Ethernet shield a ZigBee.
Přijímací část je momentálně improvizovaně zapojena na nepájivém poli. Arduino, Ethernet shield a ZigBee.

Zkušenosti s provozem

Výše popsané zapojení jsem první měsíc (červenec) provozoval v testovacím módu — na zahradě, v místě kde měl v budoucnu být úl, jsem zapnul měření a na tenzometry položil kámen o hmotnosti cca 20kg. Tímto měřením jsem chtěl vysledovat teplotní závislost tenzometrů. Po měsící jsem testovací provoz zrušil a na stanoviště přenesl úl o 3 nástavcích, ve kterém již byl roj od jara. K dnešnímu dni již tedy měřím dva měsíce.

Zkušenosti, které jsem tímto měřením získal jsou:

  • Kanál na kterém ZigBee vysílá je potřeba vybrat velmi pozorně. ZigBee se totiž překrývá s Wifi, kterých je v mém okolí hned několik. Nakonec jsem zvolil 26. kanál.
  • Šíření signálu ovlivňují všechny překážky, které jsou srovnatelné s vlnovou délkou (cca 8 cm). Pro venkovní použití se tedy jeví vhodnější frekvence 868 MHz.
  • Tenzometry jsou relativně přesné pro teploty mezi 20 až 30 stupni Celsia. Pro teploty nižší jak 20°C pak váha roste s klesající teplotou.
  • Intervaly měření by se měly dát změnit na dálku, během testování jsem několikrát potřeboval změnit 30 minut na 1 minutu a to znamenalo jít s notebookem a programátorem na zahradu.
  • Arduino s ethernet shieldem je sice funkční ale pokud provozuji více stanovišť, ze kterých přicházejí požadavky rychle za sebou, Arduino již nestačí příchozí data zpracovávat a odesílat na HTTP server. Pro bránu bude vhodnější nějaký ARM (Raspberry?).
  • Výdrž dvou alkalických AA baterií je při intervalu měření 30 minut cca 15 dní. V režimu spánku MCU ale klesá účinnost step-up měniče a téměř 50% spotřebované energie se ztratí na jeho cívce. Chce to lépe vymyslet napájecí část.
  • Obvod INA125 je kvalitní a dostatečně přesný. Je jednoduché jej nastavit a vyžaduje jen velmi málo externích součástek. Jeho jediná nevýhoda, na kterou jsem zatím narazil: je drahý. Jak zbude čas, popřemýšlím nad levnější variantou.

Další verze

V další iteraci se zaměřím na rádiovou část. Samotné měření váhy je během léta dostatečně přesné a stabilní, pro noční teploty pod 20°C je ale nutné naměřené výsledky kompenzovat.

Zatím nevyřešený problém je ZigBee na 868MHz. Firma, od které mám současné moduly se touto frekvencí nezabývá, a proto se musím poohlédnou jinde. Atmel vyrábí čipy ZigBit, které integrují rádiovou část AT86RF212 (tedy IEEE802.15.4) a MCU ATMega1281, ve které pak běží softwarová implementace ZigBee stacku. Výborná citlivost, jednoduché na použití, minimum externích součástek (stačí samotný ZigBit, VF filtr a cívka pro přizpůsobení impedance), bohužel velká cena.

Dalším řešením by bylo použít ZigBee moduly 2,4GHz od stávající firmy, ale s vyšší citlivostí a vysílacím výkonem 12 dBm. S tím ale souvisí větší spotřeba a tím padem menší výdrž baterií.

Anebo úplně zahodit ZigBee a použít jiné rádio. Např. CC1110 od Texas Instruments? S tím nemám zkušenosti, vývoj by asi trval déle.

Závěr

Závěr je zatím předčasný. Projekt mám rozpracovaný a budu na něm dále pracovat. Dlouhdoobým cílem je vyvinou stabilní a dostatečně přesné monitorování včelých úlů a to i ze vzdálených stanovišť, kde není v rozumném dosahu pevné připojení k internetu.

Také mám v hlavě pár nápadů jak analyzovat bzukot včel a podle toho odhadnout jestli se včely chystají rojit nebo jestli se něco stalo s matkou. Nápadů je jako vždy hodně, času na jejich realizaci a odzkoušení málo…