Schritt 4: Code für Web-Serving
Ursprünglich, der Code soll auf einer UNO arbeiten aber ich brauchte zum Speichern von großen Arrays von Daten (48 Werte X 13 Gruppen) für die Trend-Graphen (siehe Beispiel-Webseite) und obwohl die Kompilierung Größe unter den 32 k Marke kam, scheiterte die Arduino Speicher "Overload"... Gonna die MEGA erlaubt auch zusätzliche Funktionalität hinzugefügt werden (z. B. Mails, Sunrise etc.) ohne Probleme. Fühlen Sie sich frei, den Code zu optimieren und drückt es auf die UNO...
Die Beispiel-Datei (graphs.htm) erstellt die Webseite unten und Google Charts api verwenden, um die Charts mit einfachen Hyperlink Anrufe zu rendern. Beachten Sie, dass der Code nur mit 8,3 benannten Dateien (durch die Verwendung von SDFat), daher die Verwendung von htm funktioniert-Dateien. Um die bearbeitete Seite anzuzeigen, geben Sie einfach den Arduino IP Code: Port gefolgt von /graphs.htm.
Der Kodex enthält auch Mathematik zur Berechnung von einigen abgeleiteten Parameter, z. B. Cloud Basishöhe und Wind chill. Zwei andere Aktionen sind neben der normalen Seite Lieferung über URL verfügbar:
• YourIP:Port / EEPROM-zwingt die aktuelle maximale und minimale (und Regen Graf) im EEPROM angemeldet sein. Sinnvoll, vor dem Herunterfahren wird aus irgendeinem Grund um sicherzustellen, dass die jährlichen Daten beibehalten. Hinweis: das EEPROM ist nur auch einmal pro Tag, um Mitternacht geschrieben. Dies verlängert die Lebensdauer der Arduino EEPROM und da dieses Gerät auf unbestimmte Zeit mit Strom versorgt werden soll dachte ich täglich war ausreichend.
• YourIP:Port /TIME Jahr Mo & Tag & hr & mi – obwohl eine RTC verwendet worden ist, scheint es Zeit über einen Zeitraum zu verlieren. Diese Funktion ermöglicht dem Benutzer die RTC (via Internet) auf die "richtige Zeit" zurücksetzen und Sommerzeit-Änderungen zu aktualisieren.
Die grundlegende Protokollierung und Server Code basiert auf dem Tutorial hier und meine Bedürfnisse und Veränderungen an Arduino 1.0 Compiler entsprechend geändert.
Bibliotheksreferenzen
• TimeLord -Bibliothek
• EEPROMWriteAnything Bibliothek
• RTCLib Bibliothek
• SDFat Bibliothek (und Ethernet/SD-Karte-Tutorial)