Trådlös utomhus Arduino väderstation med PC loggning och diagram (2 / 4 steg)
Steg 2: om programvara
Som det fungerar hela systemet:
Varje minut Stalker vaknar upp, med ett avbrott från RTC-modulen. Det samlar in information från de olika sensorerna, skickar den över XBee och går tillbaka till sova. På PC-sidan, ett C# programmet öppnar seriell port, lyssnar på XBee och om mottagna är rätt, skriver den ner till en CSV-fil (standardplatsen är C:\Temp\NewWeatherStation.csv och kan ändras som en konstant på PC-sidan).
På den avlägsna Väderstationen sensorer finns faktiskt 3 olika temperatursensorer. En TMP102 som är en inbyggd sensor. DHT22 har temperaturgivare också och det gör BMP085. All denna information, tillsammans med tiden från RTC, luftfuktighet, barometertryck, höjd beräkning samt batteriladdning information skickas över till XBee till datorn, där det är alla sparade i CSV-filen och visas på skärmen huvudprogrammet.
Jag valde att rapporten från remote Väderstationen sensorn en gång varje minut, men självklart det är alldeles för frekvent än vädret faktiskt förändras. Den största anledningen till det är jag inte vill vänta en timme för varje paket för felsökning... I framtiden kan jag genomföra ett genomsnitt av en gång var 30 minuter provtagning på PC-sidan. Längre väntetider förresten få konsekvenser på XBee anslutningen mellan slutpunkten och samordnare som kräver omförhandling och upptäckt att jag föredrar att kringgå. Den enda nackdelen med alltför täta provtagning är större historikfil. Med systemet för några månader nu det tar cirka 4MB per månad, minskat vilket är inte så mycket och kan vara ytterligare genom att släppa någon överflödig information det alltför. Bottom line, detta är tillräckligt bra.
Ursprungligen valde jag att använda CSV-fil för enklare genomförande och har enkla sätt att import till Excel för grafritande och rapportering. Till slut valde jag att göra den grafritande själv, bara för att jag ville experimentera med det alltför i C# (Microsoft gjorde en riktigt fin jobb det måste jag erkänna). Jag hittade också en gratis C# bibliotek (församlingen) att exportera information direkt till Excel. Namnet på detta är JetCell och det är ganska bra för vad jag behöver här, så jag la som också. I framtiden kan jag ändra lagring för att vara en databas om jag hittar någon bra anledning att göra så.