Stap 2: over de Software
De manier waarop dingen werken systeem breed:
Elke minuut de Stalker wakker, met behulp van een interrupt van de RTC-module. Het verzamelt gegevens van de verschillende sensoren, stuurt het over XBee en teruggaat tot slapen. Op de PC kant, een C#-programma seriële poort, luisteren naar de XBee opent en als ontvangen informatie klopt, schrijft het naar een CSV-bestand (standaardlocatie is C:\Temp\NewWeatherStation.csv en kan worden gewijzigd als een constante op de PC zijde).
Er zijn eigenlijk 3 verschillende temperatuursensoren op het externe sensoren weerstation. Een TMP102 die een ingebouwde sensor. De DHT22 heeft temperatuursensor ook en doet de BMP085. Al deze informatie, samen met de tijd van RTC, luchtvochtigheid, luchtdruk, hoogte berekening evenals informatie opladen van de batterij via de XBee naar de PC, waar het al in het CSV-bestand hebt opgeslagen en weergegeven op het scherm van het hoofdvenster van de toepassing worden verzonden.
Ik koos om het verslag van de externe sensor weerstation zodra elke minuut, maar natuurlijk dit is veel te vaak dan weer verandert eigenlijk. De belangrijkste reden daarvoor is dat ik wilde niet wachten een uur voor elk pakket voor foutopsporing... In de toekomst kan ik uitvoeren een gemiddeld van elke 30 minuten bemonstering op de PC zijde. Langere wachttijden door de manier hebben gevolgen voor de XBee verbinding tussen eindpunt en coördinator waarvoor opnieuw te onderhandelen over en ontdekking dat ik liever te omzeilen. Het enige nadeel aan te frequente bemonstering is grotere geschiedenisbestand. Met behulp van het systeem voor enkele maanden nu duurt het ongeveer 4MB per maand, die is niet zo veel en verder kan worden verminderd door het laten vallen van enkele van de redundante informatie er ook. Bottom line, dit is goed genoeg.
Ik koos oorspronkelijk CSV-bestand gebruiken voor een eenvoudiger implementatie en eenvoudige manier van importeren naar Excel voor graphing en rapportage. Uiteindelijk heb ik gekozen om te doen de graphing mezelf, gewoon omdat ik wilde experimenteren met die ook in C# (Microsoft heeft een echt leuke baan er moet ik toegeven). Ik vond ook een gratis C# bibliotheek (vergadering) om gegevens rechtstreeks naar Excel exporteren. Dit heet JetCell en het is vrij goed voor wat ik nodig heb hier, dus ik voegde daaraan toe dat ook. In de toekomst, kan ik de opslag om een data-base vindt ik een goede reden om dit te doen veranderen.