Arduino Trådlös väderstation & webbserver (4 / 6 steg)
Steg 4: Kod för webbservning
Ursprungligen, koden var avsett att fungera på en UNO, men jag behövde för att lagra stora matriser av data (48 värden x 13 grupper) för trend grafer (se exempel webbsida) och även om kompilera storlek kom under 32 k Markera, Arduino misslyckades på grund av minne "överbelastning"... Gå till MEGA tillät också ytterligare funktioner läggas (till exempel e-post, sunrise etc.) utan problem. Känn dig fri att optimera koden och pressa den till UNO...
Exempelfilen (graphs.htm) skapar web sidan nedan och använder sig av Google kartlägger api för att rendera diagram med enkel hyperlänk samtal. Observera att koden fungerar bara med 8.3 namngivna filer (på grund av användning av SDFat), därav användningen av htm heter filer. För att visa sidan bearbetade, helt enkelt ange Arduino IP kod: porten följt av /graphs.htm.
Koden innehåller också matematik för beräkning av vissa härledda parametrar, såsom cloud bas höjd och wind chill. Två andra åtgärder är förutom normal sida leverans tillgänglig via URL:
• YourIP:Port / EEPROM-tvingar nuvarande maximum och minimum (och regn count) loggas i EEPROM. Bra att göra innan stänga av någon anledning att se till att de årliga uppgifterna upprätthålls. Obs: EEPROM endast skrivs också en gång per dag, vid midnatt. Detta förlänger livslängden på Arduino EEPROM och som denna enhet är avsedd att drivas på obestämd tid jag tänkte dagligen var tillräcklig.
• YourIP:Port aktivt & år & mo & dag & hr & mi – även om en RTC har använts, det verkar förlora tid under en period. Denna funktion kan användaren återställa RTC (via nätet) "rätt tid" och att uppdatera för sommartid förändringar.
Den enkel loggning och Server kod är baserat på den tutorial här och modifierade för att passa både mina behov och förändringar till Arduino 1.0 kompilator.
Referenser bibliotek
• TimeLord bibliotek
• EEPROMWriteAnything bibliotek
• RTCLib bibliotek
• SDFat bibliotek (och Ethernet/SD card tutorial)