Raspberry Pi mit Wetterstation und Außensensoren (Teil 1 Vorbereitung)


Raspberry Pi

Wetterstation und Außensensoren - Teil 1

Claus Eckert



Sensoren.jpg

Einerseits ärgere auch ich mich manchmal über die ständig stattfindende Datenerfassung. Andererseits ist man davon selber nicht gefeit, bestimmte Informationen zugänglich zu machen. Dieser Widerspruch beschäftigte mich sehr, doch der Wissensdurst überwog letztendlich. Also Bahn frei für eine Wetterstation auf dem Modellfluggelände.
Zunächst habe ich Netz recherchiert und relativ schnell war mir klar, als Datenerfasser und -übertrager kommt nur ein Raspberry Pi in Frage. Die Wetterdaten sollten von einer handelsüblichen Wetterstation mit Außensensoren geliefert werden.

Hardware:

Raspberry Pi 2 oder Raspberry B+, WLAN-Adapter, Wetterstation


Software für den PC:

Putty für die Verbindung zwischen Pi und PC.

Filezilla für eine FTP-Verbindung zwischen dem Raspberry Pi und dem PC im Netzwerk.

Notepad++


Software für den Pi, die im Verlauf der Installation geladen wird:

pywws (wird in den Raspberry Pi geladen), Dokumentation,

python 2.5 oder höher (wird in den Raspberry Pi geladen), Dokumentation,

pip (wird in den Raspberry Pi geladen), Dokumentation,

tzlocal (wird in den Raspberry Pi geladen), Dokumentation,

libusb (wird in den Raspberry Pi geladen), Dokumentation,

python-daemon (wird in den Raspberry Pi geladen), Dokumentation und

gnuplot (wird in den Raspberry Pi geladen), Dokumentation.


Die Software-Downloadseiten für den PC sind alle auf Heise verlinkt. Heise beschreibt die Funktion der jeweiligen Software sehr gut und gibt einen klaren Download-Link vor, der nicht mit irreführender Werbung zugemüllt ist.

Die Dokumentationen sind alle in englischer Sprache. Es ist nicht notwendig, diese auswendig zu lernen. Sie sind nur der Vollständigkeit halber aufgeführt und werden im Verlauf der Installation nicht benötigt. Welche Aufgaben die jeweilige Software übernimmt, wird im Rahmen der Installation erklärt.



Für dieses Projekt empfiehlt es sich, eine neue SD-Karte vorzubereiten. Wie dies funktioniert und welche Einstellungen vorgenommen werden müssen, kann man im Artikel: “ Raspberry Pi – Erste Schritte mit der Himbeere“ nachlesen.

Ist die neue SD-Karte ist im Raspbery Pi installiert und sind alle Einstellungen vorgenommen worden?

Bevor es losgeht, ein paar grundsätzliche Informationen:

Man kann im Raspberry Pi verschiedene Nutzer und Nutzergruppen anlegen. Hat man mehrere Installationen laufen, so ist das empfehlenswert. Ich zeige hier eine Stand-Alone Lösung für eine Wetterstation. Daher spare ich mir an dieser Stelle die Beschreibung, wie man mehrere Nutzer und Nutzergruppen anlegt.

Darüber hinaus kann man im Raspberry Pi für die diversen Ordner Rechte anlegen. Es ist manchmal sinnvoll, diese zu ändern. Falls das erforderlich ist, werde ich dies zeigen.

Aus Gründen der Vereinfachung programmiere ich nicht auf dem Raspberry Pi, sondern auf dem PC. Dazu benötigt man ein Programm, das dies ermöglicht. Mit Putty ist das ein Kinderspiel. Man schreibt auf dem PC in der Konsole (LX-Konsole) des Raspberry Pi. Der Vorteil liegt darin, mit Copy & Paste die Befehle aus diesem Artikel in den Raspi schreiben zu können.

Zusätzlich habe ich das FTP-Programm Filezilla auf dem PC installiert. Damit kann ich die Ordnerstruktur des Pi sehen und die Dateien in den Ordnern.

In Verbindung mit Notepad++ lassen sich die Dateien sogar bearbeiten und, falls die Ordner- und Dateirechte dies erlauben, entsprechend hochladen.


Installation der Programme auf dem PC und neue Einstellungen auf dem Raspi:

Es empfiehlt sich, gleich alle Programme, also Putty, Filezilla und Notepad++ aus dem Netz in den PC zu laden.

Putty:
Nachdem die Installation abgeschlossen ist, muss Putty eingestellt werden. Dazu benötigt man die IP-Adresse des Pi. Diese findet man rechts oben am Bildschirm, wenn man mit der Maus auf die beiden Computer oder das Funkzeichen fährt. Im gelben Feld steht dann die IP-Adresse, die der Router vergeben hat.
Man kann die IP-Adressen auch mit folgendem Konsolenbefehl finden:
Code:
sudo ip addr show

1.png

Hier ist erkennbar, dass mein Raspi mit LAN und WLAN im Netzwerk verbunden ist. Für die Einstellung in Putty verwende ich jetzt die WLAN-Adresse. Das LAN habe ich nur für das Beispiel eingesteckt.

Öffnen wir Putty und geben Folgendes ein:
Bei Hostname (IP-Address) gebe die ermittelte IP-Adresse Deines Raspi ein.
Die Verbindung erfolgt mit SSH. Das haben wir ja bei der ersten Konfiguration am Anfang im Raspi erlaubt.
Bei Saved Session gebe einen Namen ein. Ich habe zwei unterschiedliche Raspis im Netzwerk laufen und diese einzeln benannt.
Dann klicke auf Save.

2.png

Jetzt musst Du nur noch einen Doppelklick auf den gespeicherten Namen machen und schon öffnet dieses Fenster:

3.png

Weißt Du noch, unter welchem Usernamen Du Deinen Raspberry Pi aufrufen kannst?
Richtig, als User pi.

Also gebe hier pi ein.

Dann passiert etwas, was ich bisher noch nicht lösen konnte. Normalerweise gibt man jetzt das Passwort ein, das wir am Anfang in der Konfiguration gespeichert haben. Doch wenn ich das bei einer neuen Installation und der erstmaligen Verwendung von Putty eingebe, funktioniert das nicht.

Mein Workaround sieht folgendermaßen aus. Ich öffne auf dem Pi die Konsole und gebe dort den Befehl ein:

Code:
sudo raspi-config

Danach öffnet sich wieder das Konfigurationsfenster. Ich wähle Change User Password (User Passwort ändern) und gebe das gleiche Passwort, das schon vorher gespeichert war, erneut ein und bestätige es, anschließend OK. Danach wechsele ich auf den PC und gebe in der Putty-Konsole das Passwort ein. Dieser Workaround ist nur einmal erforderlich. Ab diesem Zeitpunkt funktioniert Putty ohne Probleme.

Und so sieht das dann auf dem PC aus:

4.png

An dieser Stelle ein Tipp:
Die Codezeilen in den Artikeln kann man markieren und kopieren. Aber nicht mit „Einfügen“ in die Putty-Konsole übertragen. Es gibt aber einen kleinen Trick. Klickt man einmal mit der linken Maustaste in die Konsole und danach mit rechten Maustatse, wird der vorher kopierte Code eingefügt. Allerdings manchmal doppelt, so dass man den doppelten Teil wieder Zeichen für Zeichen löschen muss. Mit etwas Übung geht das aber meistens recht gut.



Zusammenfassung: Wir haben via Putty Zugriff auf den Raspberry Pi und können alle Konsolen-Befehle auf dem PC eingeben. Damit kann der Raspberry Pi ohne eigenen Bildschirm laufen.


Feste WLAN IP-Adresse am Raspberry Pi vergeben:

Damit man nicht jedes Mal mit dem Befehl Konsolenbefehl:
Code:
sudo ip addr show
die gerade vom Router erhaltene IP-Adresse im Raspberry suchen muss, ist es sinnvoll, die IP-Adresse statisch zu vergeben.

Dazu editiert man die Datei interfaces im Unterordner network vom Ordner etc. Wie lautet dann der Konsolen-Befehl?

sudo, weil ich etwas mit root-Rechten ändern will,
nano[/i] weil ich editieren möchte,
/etc weil ich den Ordner etc benötige,
/network weil das der Unterordner ist,
/interfaces weil sich hier die Einstellungsdatei für die Schnittstelle (interface) verbirgt.
Woher ich das weiß? Nun, es gibt dazu einige Tutorials im Netz, die aber allesamt wenig erklärend sind.

Hier der gesamte Code:

Code:
sudo nano /etc/network/interfaces

Nun öffnet sich ein Fenster in der Konsole. Dort bewegen wir mit den Pfeiltasten den Cursor (mit der Maus funktioniert das nicht in der Konsole) in die Zeile „iface wlan0 inet manual“ und ersetzen „manual“ durch „static“. Damit geben wir dem Programm etwas Statisches vor, welches wir nun eintragen.

Zunächst die IP-Adresse, die wir mit address fest zuweisen wollen.

Diese IP-Adresse besteht aus Adressteilen des Routers und einer Anzahl intern zu vergebener Adressteilen.

Beispiel:
Mein Telekom-Router Speedport W 724 hat im internen Netzwerk die Adresse 192.168.2.1.
Damit erreiche ich den Router z. B. über den Browser. Da der Router das Herz meines Netzwerkes ist, kann ich ihm weitere Geräte zuweisen. Dafür habe ich die Möglichkeit, die Adressteile 100 bis 199 zu verwenden. Das heißt im Klartext: 192.168.100 bis 192.168.2.199.

Im Bildschirmbeispiel habe ich
Code:
address 192.168.2.105
verwendet.

Dann weisen wir die Subnetzmaske zu. Diese ist ebenfalls definiert. Wer diese weder im Router noch am PC verändert hat, verwendet standardmäßig
Code:
netmask 255.255.255.0

Anschließend geben wir noch die Adresse des Übergangsgerätes (Gateway) an, also die IP unseres Routers. Das ist bei meinem Speedport-Router
Code:
gateway 192.168.2.1

Hier noch mal die Kurzbeschreibung des gesamten Codes, der eingefügt werden muss:

address: Deine IP die Du vergeben willst,
netmask 255.255.255.0
gateway: Die IP Deines Routers, wie er in Deinem Netzwerk erreichbar ist.


So sieht das bei mir aus:

5.png

Jetzt drücken wir „Steuerung“ (Strg oder Ctrl) und „o“, um zu speichern. Bestätigen mit „Enter“ und schließen die Date mit „Steuerung“ und „x“.

Das kann man sich gleich merken.
Jede editierte Datei wird so gespeichert und geschlossen.

Hier noch mal die Reihenfolge:
Strg o
Enter
Strg x

Jetzt geben wir den Befehl zum Reboot ein:

Code:
sudo reboot

Der Raspi fährt jetzt runter und startet neu.

Oben rechts im Bildschirm sollte ein Funkzeichen sein. Bitte darauf klicken und die SID des eigenen WLANs auswählen. Danach erfolgt die Abfrage des Netzwerkschlüssels. Der sollte bereit liegen.

Ist dieser eingegeben, dann sollte sich das WLAN automatisch verbinden. Das kann aber etwas dauern. Nicht ungeduldig werden. Ist es verbunden, fährt man mit der Maus über das Funkzeichen und kann die IP-Adresse im WLAN lesen. Dort sollte jetzt die gewählte Adresse erscheinen.

Falls nicht, so muss man als Erstes noch mal die Datei interfaces aufrufen und kontrollieren ob diese okay ist. Es ist ein beliebter Anfängerfehler, am Anfang der Datei etwas unbemerkt zu verändern. Oder irgendwo ein Zeichen falsch geschrieben zu haben. Da hilft nur Zeichen für Zeichen zu vergleichen und gegebenenfalls zu korrigieren.

Jetzt kontrollieren wir, ob Putty sich mit dem Raspberry Pi verbindet. Dazu starten wir Putty auf dem PC, kontrollieren, ob die IP-Adresse mit der von uns statisch vergebenen übereinstimmt und verbinden uns mit dem Pi.
In der Konsole geben wir den Benutzernamen pi ein und dann Dein Passwort.
Jetzt sollte es so ähnlich aussehen:


1.jpg



Zusammenfassung: Damit der Raspberry Pi immer die gleiche IP-Adresse vom Router bekommt, haben wir eine feste IP-Adresse vergeben. Gleichzeitig haben wir erstmals eine Datei editiert und gelernt, wie man die Änderungen speichert. Das wird in Fleisch und Blut übergehen und uns in Zukunft ständig begleiten.


Filezilla auf dem PC installieren und einstellen:

Nach der Installation von Filezilla sind nur wenige Einstellungen notwendig. Die ähneln denen von Putty. Öffnen wir Filezilla und klicken ganz oben links auf „Datei“ und dann auf „Servermanager“.

Jetzt klicken wir auf „Neuer Server“ und wir müssen wieder Daten hinterlegen.
Da der Raspi im eigenen Netzwerk ist, geben wir bei „Server“ nur die IP-Adresse ein.
Das Protokoll ist SSH, welches wir im DropDown-Feld auswählen.
Benutzer ist pi.

Dann geben wir das Passwort des Pi ein.
Anschließend mit OK speichern und dann verbinden.


6.png

Wenn alles funktioniert hat, dann sollte man die Ordnerstruktur des Raspberry Pi sehen. Wenn nicht, gibt es eine Fehlermeldung und dann überprüft man noch mal die Einstellungen.


7.png


Noch ein Hinweis zu Filezilla:
Auf der linken Seite sieht man den eigenen PC. Klickt man im Übereifer doppelt auf eine Datei oder einen Ordner im Raspi auf der rechten Seite, dann wird der sofort übertragen. Das ist zwar nicht weiter schlimm, da es nur eine Kopie ist, aber man kann es durch überlegtes Handeln vermeiden.

Zusammenfassung:
Wir haben mit Filezilla ein weiteres Werkzeug installiert, das uns einen tiefen Blick auf unseren Raspi vom PC aus erlaubt.



Notepad++ auf dem PC installieren:


Die Installation von Notepad++ auf dem PC ist denkbar einfach. Man muss nur der Anleitung folgen.

Um zu sehen, was Notepad++ kann, öffnen wir Filezilla, gehen auf den Raspi und machen ein Experiment. Aber bitte nur wer mutig ist...

Als Erstes ein Klick mit der rechten Maustaste auf pi. Dort wählen wir „Verzeichnis erstellen“. Im sich öffnenden Fenster geben wir „Test“ ein und dann OK. Jetzt befindet sich im Ordner pi ein Unterordner namens „Test“.

Auf diesen klicken wir nun. Der Ordner ist natürlich leer. Jetzt klicken wir mit der linken Maustaste auf das große leere Feld unterhalb der Ordnerstruktur. Dann auf die rechte Maustaste und wählen „Datei erstellen“. Der geben wir auch den Namen „Test“ und klicken auf OK.

Jetzt sehen wir die Datei „Test“ mit 0 kb, klicken mit der rechten Maustaste darauf und wählen „Ansehen/Bearbeiten“ aus.
Wenn Notepad++ richtig installiert ist, müsste dieses Programm jetzt starten.

Geben wir in die leere Datei einen Text ein und klicken dann auf das Symbol für „Speichern“.

8.png

Jetzt müssen wir auf Filezilla gehen.
Dort sollte ein Popup-Fenster aufgegangen sein, mit der Frage, ob die Datei zum Server hochgeladen werden soll. Das wollen wir und wenn wir jetzt mit „Aktualisieren“ (rechte Maustaste) neben die Datei klicken, sehen wir, dass sich die Größe ändert. Die Datei ist jetzt auf dem Raspi gespeichert.

Das wollen wir natürlich nicht dauerhaft haben, deshalb löschen wir die Datei wieder. Dazu markieren wir sie mit der Maus, drücken dann die Taste „Entf“ und bestätigen das Löschen. Danach verfahren wir ebenso mit dem Ordner „Test“ und damit ist die Installation wieder wie sie war.

Zusammenfassung:
Wir haben gelernt, Notepad++ zu verwenden, einen Ordner und eine Datei zu erstellen und diese wieder zu löschen. Im Laufe der nächsten Zeit werden wir feststellen, dass man damit viele Änderungen sehr komfortabel vornehmen kann.


Und jetzt zum Wetter…..

Von Anfang an:

Raspberry Pi - Erste Schritte mit der Himbeere

Fortsetzung:

Raspberry Pi mit Wetterstation und Außensensoren - Teil 2

Hier geht es zum Diskussionsthread:
Raspberry Pi mit Wetterstation
 
Ansicht hell / dunkel umschalten
Oben Unten