Meet je leefomgeving
Meet je leefomgeving (MJLO) is een project van Ichthus College Veenendaal, gestart door Klaas van Lavieren en doorontwikkeld door Steven Boonstoppel. MJLO omvat 60 sensorkastjes die allerlei verschillende omgevingsfactoren meet (zoals temperatuur, luchtdruk, fijnstof e.d.).
In deze repository is de meest recente software te vinden die op de meetkastjes gebruikt wordt. Ook is het aansluitschema aanwezig en verdere informatie en instructies rondom het bouwen van een kastje.
Bij interesse om aan te sluiten bij het project kan contact opgenomen worden via [email protected].
Algemene opzet
De focus van de kastjes ligt uiteraard op uithoudingsvermogen. Praktisch betekent dat dat elke sensor zo kort mogelijk actief is en de stroomsterkte geminimaliseerd is.
Met dat doel voor ogen is de volgende constructie opgezet:
De kastjes worden zes keer per uur 'wakker' uit een diepe slaapstand. Als eerste wordt de fijnstofsensor geactiveerd: deze moet ongeveer 25 tot 30 seconden aanstaan om een goede meetwaarde te krijgen. Ondertussen worden een voor een de andere sensoren uitgelezen.
Zodra de eerste helft aan sensoren gemeten is, worden die meetwaarden op het scherm weergegeven. De tweede helft wordt weergegeven zodra de andere sensoren zijn gemeten.
Terwijl de tweede set aan waarden op het display staat, wordt de data verzonden via LoRa. Elk derde bericht wordt verzonden op SF12, de andere twee op SF10: er mag namelijk niet continu op SF12 worden gecommuniceerd. Daarna wordt nog een paar seconden gewacht zodat het display nog even af te lezen is.
De GPS-module wordt alleen bij het opstarten geactiveerd - daarna wordt aangenomen dat een kastje volledig stationair is en niet verplaatst wordt terwijl hij actief is. De GPS-module staat aan totdat er een locatie fix is: een valide locatie met een hdop < 5. Daarna wordt GPS uitgeschakeld.
Zodra een meetcyclus voltooid is gaat het kastje in deepsleep waarbij nagenoeg alle componenten uitgeschakeld zijn: alleen de drukknop aan de zijkant van het kastje wordt nog gemonitord. Wordt die knop ingedrukt, dan wordt het kastje wakker gemaakt en verricht een meting. Dit helpt bijvoorbeeld bij bepaalde opdrachten waarbij leerlingen vaker een meting willen / moeten doen dan het standaard-interval van 10 minuten.
LoRa en The Things Network
De data van de kastjes wordt verzonden via het LoRa (Long Range) protocol. De kastjes fungeren als end node en communiceren met de antenne bovenop het Ichthus College en eventuele andere antennes in de omgeving (Scherpenzeel, Aalst, ..). Daarvoor kan gebruik gemaakt worden van verschillende data-rates met elk hun eigen voordelen.
De antennes en daarmee de kastjes zijn aangesloten op het The Things Network (TTN). Deze ondersteunt standaard SF7 t/m SF12 (respectievelijk data rates 5 t/m 0). Hoe lager de data rate, hoe groter het bereik. SF7 en SF8 zijn gelimiteerd tot 235 bytes per bericht, SF9 tot 128 bytes, en SF10 t/m SF12 tot 51 bytes. Helaas is het niet toegestaan om alleen gebruik te maken van SF11 en/of SF12; apparaten die dit verrichten worden pro-actief geblokkeerd. Hoe hoger de Spreading Factor, hoe groter het bereik en hoe meer airtime en stroom het kost om de berichten te versturen. Achtergrondinformatie.
Voor het versturen van de LoRa berichten wordt gebruik gemaakt van een eigen decoder. De waarden worden verpakt in integers met een bepaalde precisie en gecodeerd tot kale bytes. Vervolgens draait op TTN een decoder die op dezelfde wijze de getallen terugberekend. De LoRa berichten van de kastjes zijn 20 bytes (of 30 bij GPS) in omvang. Deze worden gedecodeerd via de Payload Formatter op TTN, en daaruit doorgestuurd naar twee onafhankelijke opslaglocaties in beheer van het Ichthus College.
Hardware
Stroomgebruik
Zie de figuur hieronder voor het stroomgebruik van een kastje. De gemiddelde stroomsterkte tijdens een meting is ongeveer 100 mA; in deepsleep ongeveer 1.5mA. De accuduur is daarmee ongeveer drie weken.
Schema
Zie de figuur voor de opbouw van het circuit in de sensorkastjes.