Bisher scheiterte der autarke Betrieb am Stromverbrauch des Raspberry Pi. Jetzt kann ich tagelang Messwerte ins Haus funken. Das Setup beschreibe ich hier:

Der Arduino Uno R3 ist mit einem OpenGarden Shield ausgerüstet. Darauf sitzt eine Hydroponics Extension, die die Daten der Sonden im Wasser konvertiert. Über einen Levelshifter (5V -> 3,3V) ist ein WiPy von PyCom per RX/TX angeschlossen. 

Der WiPy verbindet sich per WLAN und TCP-Socket mit einem Raspberry im Haus. 

Der Raspberry trägt ein LCD Pi Plate und kann die Messdaten im 16x2 LCD anzeigen. Das LCD nutzt die interboard communication i2c.

Nachdem die Daten angekommen und separiert worden sind, werden diese auf dem lokalen FTP-Server für weitere Auswertungen abgelegt. Dann wird geprüft ob eine Internetverbindung besteht und die Daten werden an ThingSpeak Channels gesendet. 

Die Grafiken von ThingSpeak sind per iFrame auf der Homepage eingebunden.

Hier ein paar Bilder mit dem Aufbau am Weiher:

Die Sonden hängen im Wasser:

Die Geräte in Outdoorgehäusen am Baum

Die Stromversorgung kommt aus einer Powerbank. Diese Powerbank hat 2 USB Anschlüsse und kann gleichzeitig Energie abgeben und aufgeladen werden.

Die Aufladung erfolgt über ein Solarpanel, das 15Watt bei 5V liefert.

Ein Hinweis erklärt was hier vorgeht. QR-Codes linken auf die Seiten.

Im Wasserdichten Gehäuse sitzt der Arduino mit den Shields und das WiPy.

So kommts auf dem Schreibtisch an:

Und die aufbereiteten Daten auf der Homepage:

So, folgende Probleme gibt's noch:

  • Die Google Gauges von ThingSpeak habe ich noch nicht in den public Channel bekommen. Geht gerade nur private nach Anmeldung
  • Obwohl ich 2mal prüfe auf Internetverfügbarkeit, klappt das hochladen nicht beständig. Ich habe keine Festnetz-DSL Anbindung, sondern gehe über Funkstrecken. die Nähe zum Züricher Flughafen erfordert bei Radar-Signalen das runterfahren der Funkstrecke. Obwohl ich erstmal prüfe ob ein DNS aufgelöst werden kann und dann die Verfügbarkeit von ThingSpeak.com prüfe, geht das mehrmals am Tag schief. Dann steigt der Raspberry aus, daraufhin hat der WiPy keine TCP-Socket Partner mehr und stellt den Dienst auch ein.
  • Ich muss das umbauen von Push auf Pull. Der Arduino macht seine Messungen und überträgt diese an den WiPy. Der Raspberry fragt dann den Wipy ab und holt sich die Messwerte. Dann bleibt sicher der WiPy alive. Das Pollen des Raspberry lasse ich in einem Cronjob alle 15 min laufen, dann ist es nicht tragisch, wenn eine Übertragung mal fehlschlägt.