Arduino Wetterstation mit DS1307, DHT22, LCD usw.

Hallo,
ich versuche eine Wetterstation mit diversen Sensoren (DHT22, BMP0085, DS18B20), einem Zeitgeber mit DS1307 sowie einem Webserver aufzubauen. Der Webserver soll sich über Wlan mit dem Heimnetz verbinden, damit die ausgelesenen Daten auf einer Homepage sichtbar sind. Das ganze funktioniert auch mit dem beigefügten Sketch, aber ich habe 2 Fragen. Vielleicht kann mir jemand helfen.

Der RTC1307 ist -wie in vielen anderen Beispielen auch - eingebunden. Nix besonderes. Er soll halt das Datum anzeigen. Die Pufferbatterie ist voll. Das Problem ist, wenn ich den Arduino vom Strom nehme zeigt er mir anschliessend nicht die aktuelle Zeit, sondern eine frühere Zeit des letzten Uploads. Ich war immer davon ausgegangen, dass die Pufferbatterie genau das verhindern soll ? Wie kann man den RTC so einstellen, dass er sich immer die aktuelle Zeit zieht. Ich hätte gedacht, dass das mein Sketch kann ?

  1. Problem könnte auch am Sketch liegen. Der Arduino Duemilanova hat ein Ethernetshield mit ENC28J60. Das funktioniert auch, aber ich gehe mit dem LAN Kabel in einen Wlan-Repeater, der die Daten in das Heimnetz funkt. Geht prinzipiell, aber bei einem Neustart, muss ich immer erst die RESET Taste drücken, damit z.B. Tablets die Homepage mit den Daten empfangen können. Ist das normal ?

Das ist mein erstes größeres Projekt mit Arduino, bitte um Nachsicht, wenn die Programmierung noch nicht den letzen Schliff hat. Immerhin funktioniert das ja schon.
Vielen Dank

Wetterstation_final_mitLCDv2.ino (7.65 KB)

Ohne Deinen Code gelesen zu haben: liest Du denn die Zeit aus der RTC auch aus oder setzt Du sie möglicherweise im Sketch immer erst mal auf den immer gleichen Wert?

Merke: einmal gesetzt läuft die Uhr hübsch weiter, auch wenn der arduino stromlos ist.
Aber wenn man wissen will wie spät es ist muss man sie auch befragen.

Ha. Ich habe es doch gewusst:

  RTC.adjust(DateTime(__DATE__, __TIME__));

Das liefert dir die Kompilerzeit. Als Test-Code völlig ok. Mache ich auch so. Hat aber in einem fertigen Programm nichts verloren.

Ja ok vielen Dank, dann korrigiere ich mal den Code.