Produktive Phase (Die Bewässerung ist noch in Arbeit!)

Als Nächstes folgt die “Programmierung” des Raspberry oder besser, die Nutzung der Bash-Befehle des Raspbian. Ein kurzes Python-Skript, welches ich irgendwann im Internet gefunden hatte, macht den Zugriff auf den Temperatur- und Feuchtigkeitssensor. Die von mir genutzten Skripte habe ich als ZIP in Übriges/Downloads. Bitte für die nachfolgende Nutzung entpacken. In den Dateien mit der Endung “sh” müssen zwingend jeweils 5 Stellen verändert werden!

Die Doku für den momentanen Stand mit Webcam, Luftfeuchtigkeits- und Lufttemperaturmessung ist bereits fertig und läuft seit dem 22.10.2019 als WebCam für mein Herbst-Experiment. Merkmale dazu:

Raspberry 1B, 8 GB SD-Karte, PiCam mit Weitwinkel, Raspbian Buster Lite vom 26.09.2019, ADAFRUIT_DHT-Bibliothek, AM2302-Sensor, DS18S20-Sensor.

Der Sensor DS18S20 wurde wie folgt an den Raspi angeschlossen:

Rote Leitung an Pin 1 (+3,3V)
Schwarze Leitung an Pin 6 (Masse / Ground)
Gelbe Leitung an Pin 7 (GPIO 4)

Zwischen Pin 1 und Pin 7 muss ausßerdem ein 4,7 kOhm Widerstand angeschlossen werden.

Nur als Info: Der Pin 2 stellt die äußerste Ecke der Sockelleiste dar, die in einer der Ecken der Raspberry-Platine sitzt. Ihm gegenüber liegt der Pin 1. Im 90 Gradwinkel dazu liegt der Pin 4. Bei Fragen einfach googeln und beachten, dass manch uralter Raspberry eine andere Pinbelegungung hat, weil er nur 26 Pins hat!

Der Sensor AM2302 wird wie folgt angeschlossen:

Der Sensor liegt vor Dir flach auf dem Tisch mit den vier Beinen zu Dir. Von links nach rechts:
* + 3,3 V geht an Raspberry-Pin 1
* Data geht an Raspberry-Pin 15 (GPIO22), da GPIO4 schon belegt ist.
* ungenutzter Anschluss
* Ground bzw. Masse geht an Raspberry-Pin 6.
Leider gibt es widersprüchliche Informationen zum Pull-Up-Widerstand. Zum einen soll er entweder 4,7 oder 10 kOhm haben und zum anderen soll der AM2302 angeblich schon einen eingebaut haben. Ich betreibe den AM2302 schon seit Jahren mit 4,7 kOhm Widerstand und bin damit zufrieden.


Hier nun die Anleitung zur Software, wobei ich die Raspian-Lite-Grundkonfiguration nur in Stichworten beschreibe. Mehr dazu in meinen Rasberry-Grundlagen unter “Raspbian”.

Das Raspbian wurde mit einem geeigneten Tool (und nicht als Kopie!) auf die SD-Karte gebracht. Anfangs wird eine englische Tastatur erwartet. Dadurch sind ein paa Zeichen nicht am gewohnten Platz!

Anmeldung: pi
Passwort: raspberrz

sudo raspißconfig

localisation, erste 3 Zeilen auf deutsch einstellen(sehr langsam: bei Raspi1B – knapp 5 Min); WLAN optional
change user password
network, hostname + evtl. wlan
interface, Camera ein, SSH ein
advanced, expand filesystem
update
finish

sudo reboot

*****

Zukünftig Anmeldung über ssh mittels Putty

Anmeldung: pi
Passwort: raspberry

sudo apt-get upgrade -y
sudo init 0

Wenn der Raspi aus ist, dann Sicherung erstellen durch SD-Kopie.

*****

Installation für die DHT-Sensoren, Bildbearbeitung und FTP:

Raspi starten und anmelden.

sudo apt-get install imagemagick ftp expect build-essential python-dev git-core -y
sudo apt-get update
sudo apt-get install python-pip
sudo python -m pip install –upgrade pip setuptools wheel

sudo git clone https://github.com/adafruit/Adafruit_Python_DHT
cd Adafruit_Python_DHT
sudo python setup.py install

*****

am2302.py erstellen (https://github.com/adafruit/Adafruit_Python_DHT):

cd examples
sudo nano am2302.py

Inhalt aus oben genannten Download einfügen. Hier geht es um die Datei “am2302.py”.

Editor beenden mit abspeichern.

sudo chmod 755 *.py
cd ~

*****

SSH-Meldung bei sftp vermeiden:

mkdir ~/.ssh
cd ~/.ssh
ssh <Dein FTP-Servername>
yes
cd ..

*****

Skripte erstellen:

nano picamx.sh

Inhalt aus bereits herunter geladener Datei “picamx.sh” einfügen und unbedingt fünfmal etwas ändern! <Dein xxx> komplett ersetzen durch “Dein xxx”. Beispiel:
<Dein FTP-Server>
mein-ftp-server.de

Die zweite Zeile wäre dann der richtige, korrigierte Eintrag. Dabei, wie gezeigt, die spitzen Klammern löschen!

Editor beenden mit abspeichern.

chmod 755 *.sh

Genauso verfährt man mit den Dateien picamy.sh und picamz.sh! Wer verstanden hat, warum es diese drei Skripte gibt und was damit bezweckt wird, kann natürlich auch mit einem Skript arbeiten. Dabei an die crontab denken! (Nächster Absatz!)
Kurzerklärung: die crontab in Verbindung mit picamx.sh lädt zwischen 08:00 und 20:00 Uhr stündlich eine Datei hoch, die bei mir als aktuelles Vergleichsbild dient. Die Datei picamy.sh läuft nur einmal täglich um 14:00 Uhr und speichert mir ein tagesaktuelles Archivbild ab, was derzeit noch nicht genutzt wird. Picamz.sh sorgt für das andere Vergleichsbild, welches ich jeden ersten und jeden fünfzehnten eines Monats hochlade.

*****

Der Taskplaner: die Crontab

crontab -e

1

Hier werden die Zeilen aus meiner bereits heruntergeladener Datei “crontab” unten angehängt. Änderungen nach Wunsch vornehmen. Editor beenden mit abspeichern.

Wenn die Abkürzungen in deutsch wären, wären sie verständlicher. Hier meine Erklärung folgender Abkürzungen:
# m h dom mon dow command

# Kommentarzeile
m Minute des Programmstarts
h Stunde des Programmstarts
dom “day of month” = Tag des Monats, an dem das Skript starten soll.
mon “month” = Monat, an dem das Skript starten soll.
dow “day of week” = Wochentag, an dem das Skript starten soll.
command = Programmname bzw. Skriptname mit komplettem Pfad

Erklärung meiner Crontab:
Die crontab in Verbindung mit picamx.sh lädt zwischen 08:00 und 20:00 Uhr stündlich eine Datei hoch, die bei mir als aktuelles Vergleichsbild dient. Die Datei picamy.sh läuft nur einmal täglich um 14:00 Uhr und speichert mir ein tagesaktuelles Archivbild ab, was derzeit noch nicht genutzt wird. Picamz.sh sorgt für das andere Vergleichsbild, welches ich jeden ersten und jeden fünfzehnten eines Monats hochlade. Auf meiner Webcamseite ist es links zu sehen, während rechts das Bild von picamx.sh zu sehen ist.

sudo init 0

*****

Die Software zum Betrieb des Temperatursensors DS18S20

sudo apt-get install bc

sudo modprobe w1-gpio pullup=1
sudo modprobe w1-therm
sudo nano /etc/modules
w1-gpio pullup=1
w1-therm

sudo nano /boot/config.txt
An das Ende anhängen:
dtoverlay=w1-gpio,gpioin=4,pullup=on

sudo reboot

Nach erneuter Anmeldung feststellen, wie das Device heißt:
cd /sys/bus/w1/devices/
ls
28-021480dcf8ff (<— bei mir!)

Die entscheidenden Zeilen zur Abfrage des Sensors sind bereits in meinen Skripten enthalten und sehen ungefähr so aus:

readtemp=`cat /sys/bus/w1/devices/28-021480dcf8ff/w1_slave`
erdtemp=`echo “scale=1; “\`echo ${readtemp##*=}\`” / 1000″ | bc`

sudo init 0

Wenn der Raspi aus ist, dann Sicherung erstellen durch SD-Kopie. Danach alles testen!


Bei dieser Gelegenheit habe ich einige Tests mit der Erdtemperaturmessung durchgeführt. So habe ich mit 8 verschiednen digitalen Temperaturanzeigen getestet und durfte feststellen, das dieser DS18S20 für meine Zwecke recht genau ist. Mein bisher verwendetes Thermometer dagegen liegt um gut 1,5 Grad zu niedrig in der Anzeige. Für das Schwein im Backofen ist die Abweichung ok, aber nicht für meine sensiblen Chilikeimlinge!

Und noch ein Test wurde gemacht: Der Fühler wurde dazu am entgegengesetzten Ende des Anschlusses der Heizmatte in die Erde der Anzuchtplatte gesteckt. Nach rund 30 Minuten Wartezeit, die der Fühler nicht unbedingt braucht, wurde der Wert notiert,der Fühler in eines der mittigen Töpfchen mit Erde gesteckt und wieder 30 Minuten gewartet. OHA!

Innerhalb der mit feuchten Erde gefüllten Anzuchtplatte gibt es von innen nach außen rund 2,5 Grad Unterschied! Wer das nicht braucht, sollte sein Haus isolieren! Das Mini-Gewächshaus natürlich! ?

Es fehlt noch die Erdfeuchtigkeitsmessung, die den Wasserzufluss steuern soll! Das ist in Arbeit, kann aber bis Anfang Dezember 2019 dauern, wei ich möglicherweise einen Arduino dafür nutzen werde, mit dem ich dann auch die anderen Sensoren abfragen würde. Das Thema wäre komplett neu für mich! Geklärt ist auch noch nicht, ob ich den häufig gelobten “Gies-o-mat” oder den “Capacitive Soil Moisture Sensor” nutzen werde. Beide liegen zum Testen bereit.