home
Zicht op Andijk
Hoofd
pagina
Bijen
Webcam
Bijen
Fotoos
Bijen
Honing
Bijenwas
Smelter
Bijen
Zwerm
Bijen
Warmte
Bijen
Sensors

Bijenkast temperatuur


Als je naast electronica ook bijen als hobby hebt dan is het wel leuk om deze hobby's te combineren.
Een WebCam staat al sinds het begin bij de kasten. Het wordt wel eens tijd om wat metingen te gaan doen en te bekijken.
Eerst maar eens beginnen met de temperatuur. Want wat zo grappig is aan bijen is dat zij uitstekend temperatuur kunnen regelen.
Ze kunnen kasten gemakkelijk opwarmen naar 35 graden maar ook terugkoelen naar 35 graden in een omgeving die veel warmer is.
Daarmee beschermen ze hun nageslacht tegen oververhitting of onderkoeling en voorkomen ze dat voedsel (honing) verloren gaat.

Om het goed aan te pakken ga ik in elke kast een temperatuursensor hangen. En eentje buiten de kast om de omgeving te meten.
Uiteraard kan ik 4 buitensensoren kopen maar ik wil de metingen in een database voor verdere analyse en op deze website publiceren.
Wat ik natuurlijk niet wil is 4 draden vanaf de kasten naar het huis en daarom moet het draadloos zijn.
Zoiets bestaat natuurlijk niet, of is heel erg duur, dus besluit ik het zelf te maken. Maximaal 10 euro is het budget.

Omdat de electronica mogelijk door de bijen "onderhanden" genomen zouden worden is het handig om alles waterdicht en stevig te verpakken. Voor de temperatuurmeting besloot ik vier DS18B20 sensoren te gebruiken. Kosten in China een euro per stuk, zijn waterdicht en kunnen zo aan de processor gehangen worden.
Voor de zender en ontvanger gebruik ik een een standaard RF zendertje die met ontvanger voor €2,-van eigenaar wisselt. Kwaliteit is dubieus maar er hoeft maar 10 meter overbrugt te worden, wel door een dak en een muur dus misschien wordt er af en toe een signaaltje gemist.
En dan het hart van het geheel, de processor. Een belangrijk onderdeel omdat deze de metingen moet gaan doen, vertalen naar een bericht en deze via de zender versturen. Ik koos voor de AtTiny85 omdat dit een soort mini Arduino is die alles kan. Kost anderhalve euro ofzo. En lekker klein wat prima is omdat ik weinig aansluitpunten nodig heb. Twee voor de voeding, een voor de sensoren, een voor de zender en twee voor de clock. Grootste voordeel van een AtTiny is dat in slaapstand het verbruik nihil is. Tenslotte moet alles gevoed worden met 3 AA batterijen en daarna uiteraard alles in een kastje. De kosten zijn ondertussen opgelopen naar €15, -

Zender

We beginnen met de zender. De software heb ik ontwikkeld op een Arduino. Dat gaat het gemakkelijkst en de code hoeft alleen gehercompileerd worden als het klaar is om in de atTiny geladen te worden. Voor de DS18B20 sensoren zijn standaard library's van de leverancier beschikbaar maar bleek lastiger dan gedacht. Na wat gestoei en peuteren uiteindelijk gelukt om het ook op de atTiny te laten draaien. De verschillen in kloksnelheid maakte het lastig. De library's gaan uit van een processor op 16mhz maar een atTiny doet max 8 mhz en daarmee klopt de timing niet meer wat erg kritisch is. Dit was op te lossen door een 16mhz kristal aan de atTiny te hangen en daarmee deze op de juiste snelheid gebracht. De hardware kan eenvoudig gehouden worden. Onder het schema van de zender. Het kristal, zender en de sensoren zijn rechtstreeks op de atTiny aangesloten.



En dan is het een kwestie van de meetwaarden omzetten naar bitjes, in een bericht zetten en naar de zender sturen die het OOK/ASK de ether in stuurt.
Maar eerst wat over dat bericht. Voor het protocol gebruik ik de uitvoering dat eigenlijk altijd gebruikt wordt bij dit soort digitale signalen.
Eerst een preamble van een reeks nullen en enen om de ontvanger en zender wakker te schudden en goed te laten afstemmen..
Daarop volgt een standaard flag (0x7E) om aan te geven dat het bericht begint. Deze 01111110 reeks zie je vrijwel overal gebruikt worden,
Dan een uniek ID nummer om aan te geven welk bericht er komt en te zorgen dat de ontvanger het juiste bericht oppakt en niet die van een andere verzender..
Vervolgens het datablock met de gemeten waarden. Dan een checksum om later te controleren of het bericht niet verminkt is en tenslotte een standaard afsluiter.
Het bericht wordt 2x achter elkaar uitgezonden met een tussenpoze van 0,5 seconden. Dit om de kans op gemiste berichten te verkleinen. En dat elke 6 minuten.
Klinkt ingewikkeld maar als je het bericht ziet wordt duidelijk wat ik hierboven beschrijf:.

-----preamble---- ---7E--- --ID---- -temp1- -temp2- -temp3- -temp4- --crc--- ---7E---
01010101010101010 01111110 11100111 |<------- 4x 16 bits -------->| 01110100 10000001

Het andere grote probleem met draadloos is dat het stroom kost. Rond 12 milliampere tijdens het zenden en 6 milliampere in rust.
Drie AA batterijen zullen ongeveer 3000 mah in huis hebben en zullen na twee weken ofzo uitgeput zijn. Niet handig.
Met wat zoeken op het internet lukte het me om de atTiny is diepe slaap te zetten en na 5 minuten te laten ontwaken.
Vervolgens een bericht te laten uitzenden en weer lekker in slaap zetten. In slaap nam de schakeling slechts 10 microampere. Dat is 1000x minder!

Hoe lang zou in de theorie de zender stroom genoeg hebben? We rekenen alleen het zenden omdat in rust de energie nihil is.
Twee zendpulsen duren een kleine seconde, 10x per uur= 240 seconden per dag. Na 15 dagen heeft hij een uur uitgezonden.
Stel even dat de batterijen voor een derde verbruikt worden. Dat is 1000 milliampere.
1000mAh gedeeld door 15 mAh zenden betekent dat de zender 66 uur kan uitzenden. Dat maal 15 dagen is 990 dagen.
Dat is bijna 3 jaar lifetime voor deze schakeling. Dat is zuunig genoeg zou mijn zeeuwse vrouw zeggen :)

Uiteindelijk alles in een kastje proppen en testen. Links het printje met de atTiny, het zendertje en de batterijhouder met de 3 AA's.
Rechts alles in de gesloten kast met de sensoren aangesloten en spatwaterdicht gemaakt.


Ontvanger

Nu de signalen de ether ingeslingerd worden is het tijd om ze er ook weer uit te halen.

De ontvanger is rechtstreeks op de Nano aangesloten. Voor de lol heb ik een DS18b20 moduultje erbij gestopt zodat ik ook gelijk de temperatuur in de shack kan meten. Twee ledjes, een voor power en een voor als er ontvangst is. Alles in een minikastje met een BNC connector voor een oude scanner antenne.
De hardware is dus rechttoe rechtaan maar op gebied van software is de ontvanger iets complexer.
Het signaal moet herkend worden uit de ruis en weer gedecodeerd worden en dat vraagt wat slimme software..


De ontvanger spuugt alleen maar nullen en enen uit die rechtstreeks de Nano ingaan. Alles wat ontvangen wordt, dus ook ruis, wordt omgezet in enen en nullen. Een totale brij dus. Deze stroom van bitjes moet constant geanalyseerd worden om het bericht eruit te filteren. En daarom het verhaal van de preamble, start flag, uniek ID etc. Steeds maar op zoek naar patronen en dan verwerken.
Het gaat ongeveer zo: De software wacht op de preamble, daarna wordt de start flag verwacht, dan het ID ingelezen en gecontroleerd op de juiste, dan worden de metingen ingelezen. Als laatste de controle of de berekende checksum overeenkomt met de verzonden checksum want anders is het bericht onderweg verminkt geraakt. Als alles klopt is het bericht binnen. Klopt er een stapje niet, dan afbreken en wachten op een nieuwe preamble. Het lijkt zo simpel maar is wel lastig om te programmeren...

Bijenkasten

En in de praktijk ziet het er dan zo uit.

Je ziet de sensoren de kasten ingaan via de deksel. De sensoren liggen op de honingraten tussen het afdekzijltje en de deksel.
Als ik ze tussen de raten zou steken dan hebben de bijen ze binnen een dag ingekapseld en dan krijg je ze niet meer gemakkelijk los.

De ontvangunit heb ik aan mijn Ubuntu server gehangen die de metingen 24x7 vastlegt in een database.
Hieronder de life meetgegevens van een van de bijenkasten:

Vandaag
Afgelopen week


Afgelopen 30 dagen


Afgelopen jaar

Laatste update 25 april 2015

 
Webdesign door mezelf en alle content is auteursrechtelijk beschermd.