www.FAMILIE-MICHELE.de

Navigation

Wetterstation

Druck und Temperatur sind einfach zu machen. Die bisher von mir ausprobierten Luftfeuchtigkeitssensoren haben nach wenigen Wochen Dauerbetrieb leider den Geist aufgegeben. Geplant ist noch, Windgeschwindigkeit, Windrichtung und Regenmenge zu speichern. Die Schaltung ist auch dem folgenden Bild zu entnehmen. Die Trennung der Schaltung bzw. die lange (circa 10 m vieradriges Kabel) Verbindung vom Hauswirtschaftsraum zur Garage ist auf der 5V-Seite, also oberhalb des Level-Shifters in der Schaltung vorgenommen worden.
Verbindung eines Arduinos mit einem RaspberryPi (Vorschau)

Druck- und Temperatursensor BMP180

Dazu gibt es nicht viel zu sagen. Der Sensor wird mit SDA, SCL, GND und +3,3 V angeschlossen. Ich habe tatsächlich einen BMP180 verwendet und nicht einen BMP085 wie auf dem Bild dargestellt.

Arduino Mega2560

Level-Shifter

Da der RaspberryPi an der seriellen Schnittstelle mit 3,3 V und der Arduino Mega mit 5 V arbeitet, ist ein Level-Shifter notwendig. Selber bauen oder Alternativen mit Dioden oder Widerständen kamen für mich nicht unbedingt in Frage, weil solche Bauteile nur circa 1 € kosten.
Die Pins sind selbsterklärend, HV ("high voltage", + auf der Arduino-Seite), LV ("low voltage", + auf der Raspberry-Seite), GND bei beiden. RX und TX müssen gekreuzt verbunden werden.

Raspberry 2

Im Moment läuft im Hauswirtschaftsraum die Version 2 und zum Ausprobieren habe ich noch eine Version 1 auf dem Dachboden.

Software Arduino

Die Daten werden gesammelt und mit Semikolons getrennt in einer Zeile über TX3/RX3 gesendet. Auf den ersten TX/RX-Pins liegt beim Hochladen von neuen Programmen auf den Arduino wohl eine höhere Spannung an den Pins, was für den standardmäßig ja verbundenen PaspberryPi unschön sein könnte.

Software RaspberryPi

Einige Einstellunge müssen vorgenommen werden.
  • sudo apt-get install rrdtool
  • sudo apt-get install python-rrdtool
  • Den seriellen Port für's Login ausschalten:
    In der Datei "/etc/inittab" die Zeile "T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100" mit einem "#" auskommentieren.

Daten empfangen

Um die Daten zu empfangen habe ich ein Python-Skript geschrieben. Es gibt keine Sicherheitsabfragen oder ähnliches, aber es funktioniert erstaunlich gut:

Download Python-Skript

RoundRobin-Datenbank

Create
Den Befehl zur Erstellung einer RoundRobin-Datenbank habe ich in einem Bash-Skript zusammengefasst. Es werden Druck und Temperatur gespeichert und verschiedene Langzeitmittelwerte definiert. Die Datenbank hat eine Größe von circa 1 MB.

Das Bash-Skript zum Erstellen der RRD-Datenbank gibt es hier zum Download.

Update
Für das Einlesen der Werte aus der seriellen Schnittstelle und das Einpflegen der Werte in die RRD-Datenbank habe ich mir einen Cronjob definiert, der den laufenden Prozess abbricht und das Python-Skript (s. o. bei "Daten empfangen") jede Minuten neu aufruft. Das hat den Vorteil, dass man sich auch keine Gedanken über das Verhalten beim Neustart des RaspberryPis machen muss - nach einer Minute läuft das Skript auf jeden Fall.
Graph
Aus den Daten in der RRD-Datenbank werden regelmäßig (Crontab s. u.) Graphen erstellt. Dazu dient für jeden Graph ein Bash-Skript. Es gibt zwei Beispiel-Downloads für Druck und Temperatur

FTP-Upload

Die erstellten Graphen werden ebenfalls mit einem Python-Skript auf meinen Webspace hochgeladen: Upload-Skript.

Alles schön regelmäßig: Crontab

Die folgende Ausgabe habe ich mit "crontab - l" erhalten.

*/60 21-6 * * * /home/pi/sketchbook/Wetter01/allegraphen
*/60 21-6 * * * /home/pi/sketchbook/Wetter01/myupload.py
*/5 7-20 * * * /home/pi/sketchbook/Wetter01/allegraphen
*/5 7-20 * * * /home/pi/sketchbook/Wetter01/myupload.py
* * * * * /home/pi/sketchbook/Wetter01/eine_minute_abfragen

Das Skript "eine_minute_abfragen", das jede Minute gestartet wird, enthält nur drei Zeilen:

killall "Wetter01.py"
cd /home/pi/sketchbook/Wetter01
/home/pi/sketchbook/Wetter01/Wetter01.py

Regelmäßige Backups

Ein regelmäßiges Backup der SD-Karte (am Besten des ganzen Images) empfiehlt sich. Bei mir hat sich schon eine 4GB-Karte eines Markenherstellers im laufenden Betrieb verabschiedet. Für den Raspi ist sie nicht mehr zu gebrauchen.
11.04.2015 Dr. Oliver Michele