Stap 4: Code voor webserving
Oorspronkelijk, de code was bedoeld om te werken aan een UNO, maar ik nodig om te slaan grote gegevensmatrices (48 waarden x 13 groepen) voor de grafieken van de tendens (Zie voorbeeldwebpagina) en hoewel de compile-grootte kwam onder de 32 k mark, de Arduino is mislukt vanwege geheugen 'overbelasting'... Gonna de MEGA mag ook extra functionaliteit moet worden toegevoegd (zoals e-mails, zonsopgang etc.) zonder probleem. Voel je vrij om de code te optimaliseren en knijp het op de UNO...
Het voorbeeldbestand (graphs.htm) wordt gemaakt van de onderstaande webpagina en maakt gebruik van de api van Google grafieken te maken van de grafieken met eenvoudige hyperlink oproepen. Merk op dat de code alleen met bestanden met 8.3 naam (als gevolg van het gebruik van SDFat), vandaar het gebruik van .htm werkt-bestanden genoemd. Als u de bewerkte pagina, typt u de Arduino IP code: Port gevolgd door /graphs.htm.
De code omvat ook wiskunde voor de berekening van sommige afgeleide parameters, zoals cloud basis hoogte en wind chill. Twee andere acties zijn beschikbaar via de URL naast de normale pagina levering:
• YourIP:Port / EEPROM-krachten de huidige maximum en minimum (en regen graaf) moeten worden vastgelegd in EEPROM. Nuttig te doen voordat de stroomvoorziening naar om welke reden om ervoor te zorgen dat de jaarlijkse gegevens wordt onderhouden. Opmerking: de EEPROM is enkel geschreven ook eenmaal per dag, om middernacht. Dit verlengt de levensduur van de Arduino EEPROM en als dit apparaat is bedoeld voor onbepaalde tijd worden aangedreven dacht ik dagelijks volstond.
• YourIP:Port /TIME jaar mo & dag & hr & mi-hoewel een RTC is gebruikt, lijkt te verliezen van tijd over een periode. Deze functie kan de gebruiker opnieuw instellen van de RTC (via het web) op de "juiste tijd" en voor zomertijd wijzigingen moeten worden bijgewerkt.
De Basislogboekregistratie en Server code is gebaseerd op de tutorial hier en gewijzigd om aan te passen mijn behoeften en de veranderingen aan Arduino 1.0 compiler.
Bibliotheek verwijzingen
• TimeLord bibliotheek
• EEPROMWriteAnything bibliotheek
• RTCLib bibliotheek
• SDFat -bibliotheek (en Ethernet/SD kaart tutorial)