Archiv der Kategorie: Einplatinencomputer

(M)eine kleine Wetterstation mit einem Raspberry Pi (Teil 4)

Weitere Grundkonfiguration des Raspberry Pi

Der Löwenanteil von Software ist auf dem Raspberry Pi nun erstmal vorinstalliert. Jedoch soll noch die IP-Adresse des Gerätes festgelegt werden. Eigentlich ist das nicht nötig, aber ich möchte das Gerät später in einer anderen Umgebung betreiben, in der ausschließlich mit festen IP-Adressen gearbeitet wird.

Festlegen der statischen IP-Adresse

Die Einstellung findet statt in der Datei /etc/dhcpcd.conf. Vorher aber muss man sich den Namen der momentanen Schnittstelle ausgeben lassen. Das passiert mit der Eingabe von 

Das Ergebnis sieht dann in etwa so aus:

Kenner haben nun gesehen, dass es die altbekannte Bezeichnung eth0 nicht mehr gibt. Dafür gibt es nun eine eindeutige Zuordnung der Bezeichnung, beginnend mit enx und nachfolgend der MAC-Adresse der Schnittstelle, hier rot umrandet. Diese Bezeichnung merke ich mir und werde sie gleich in die Datei /etc/dhcpcd.conf zur weiteren Bearbeitung eintragen.
Warum es keine eth0-Bezeichnung mehr geben soll, oder wie man das System wieder in diese Form versetzen kann, ist ausführlich an anderen Stellen im Internet beschrieben.

Ich starte den Midnight Commander mit sudo mc und editiere die Datei /etc/dhcpcd.conf.

Weiter unten In den letzten Zeilen finde ich den Eintrag # Example static IP configuration und setze die vier Zeilen dadrunter wie folgt:

Alles andere bleibt erstmal so wie es ist.

Ich setze die IPv4-Adresse nun fest auf 192.168.80.80 mit der Subnetzmaske 255.255.255.0. Das sagt die Angabe von /24 aus. Mein Router hat die Adresse 192.168.80.200. Danach wird die Liste der DNS-IPs angegeben, sie lauten Google1-DNS, Google2-DNS, Router-DNS. Sorry, ja Google-DNS (sorry) bietet neben den Telekom und Vodafone Servern einen ziemlichen Geschwindigkeitsvorteil.

Die oben genannten privaten IP-Adressen (192.168.x.y) sind natürlich in anderen Netzwerken entsprechend anzupassen.

Nach dem Speichern der Datei und einem Neustart des Raspberry Pi bekommt dieser statt der IP-Konfiguration vom DHCP-Server nun die IP-Konfiguration aus der soeben angepassten dhcpcd.conf. Bei einem Wechsel in ein anderes Netzwerk kann ich nun später bequem die Einstellung an dieser Stelle anpassen.

IPv6 Protokoll deaktivieren

Um IPv6 dauerhaft zu deaktivieren, sollte man erstmal feststellen, ob IPv6 aktiviert ist. Das bekommt man heraus mit der Eingabe von

Nun werden bei aktiviertem IPv6 Einträge markiert ausgegeben. Ansonsten ist die Ausgabe leer. Mit den folgenden zwei Eingabezeilen wird die Datei /etc/sysctl.conf um einen Eintrag ergänzt,

Nach einem Neustart des Raspberry Pi sollte nun IPv6 deaktiviert sein. Das kann wieder mit dem obigen Befehl kontrolliert werden. Auch die Ausgabe von ifconfig bestätigt die Änderung

Wenn man diese nun letzte Zeile in dieser Datei entfernt und den Raspberry Pi neu startet, ist IPv6 wieder aktiviert. Ob man IPv6 wirklich deaktivieren sollte oder nicht, ist in jedem Anwendungsfall unterschiedlich. Es gibt mittlerweile einige Webseiten-Betreiber, die ihre Anschlüsse auf IPv6 umgestellt haben. In meinem Fall aber brauche ich dieses Protokoll nicht.

Die richtige Uhrzeit

In meinem Netzwerk wird die Uhrzeit schon vom Router bezogen. Dafür haben auch bereits die Einstellungen im Konfigurationsprogramm raspi-config gesorgt. Siehe dazu bitte den Beitrag “(M)eine kleine Wetterstation mit einem Raspberry Pi (Teil 2)” meines Tagebuches. Da sind auch die Umschaltungen von Sommer- und Winterzeit schon inbegriffen. Das lasse ich auch erstmal so. Wer das allerdings ändern möchte, ist z.B. hier gut beraten: https://linuxconfig.org/how-to-setup-ntp-server-and-client-on-debian-9-stretch-linux

Im Standard arbeitet der Raspberry Pi mit seinem Linux in der UTC-Zeit – genau das richtige für den Amateurfunk, denn diese ist auf unserer Erdkugel überall gleich.

RTC?

Allerdings überlege ich mir, wenn das Gerät irgendwo alleine ohne Netzwerk stehen sollte, ob ich ihm nicht eine batteriegepufferte RTC, eine sog. Real-Time-Clock einsetze. Wie das mit einer kleinen preisgünstigen I2C-Schaltung geht, kann man hier erfahren: https://tutorials-raspberrypi.de/raspberry-pi-rtc-modul-i2c-echtzeituhr/

GPS?

Auch der Einsatz und Zeitabgleich mit einem GPS-Modul könnte in einem Nebenprojekt münden. Und wie das geht, kann man hier nachlesen: https://raspberry.tips/projekte/gps-tracking-mit-dem-raspberry-pi

Im nächsten Teil 5 geht es um die Einrichtung des Node-Red-Dashboards und weiterer Bausteine für die Sensoren.

 

(M)eine kleine Wetterstation mit einem Raspberry Pi (Teil 3)

Installation der Grundprogramme

In diesem Teil 3 wird dem Raspberry Pi nun weitere Software verpasst, die für mein Dafürhalten unerlässlich sind. Mit dem Rasperry Stretch Lite müssen auch keine Softwarepakete entfernt oder deaktiviert werden, die nur unnötig Ballast sind/waren: keine Wolfram-Engine, kein Libre-Office, kein grafischer Desktop oder Programmiertools. Aber einige kleine Helferlein braucht es dann doch:

MC – Der Midnight Commander

Bekannt aus den früheren Jahren der Computerentwicklung ist dieser Dateimanager auf der Konsole ungeschlagen. Selbst FTP-Verbindungen oder Zugriffe auf entfernte Systeme sind in diesem Programm integriert. Die Installation gelingt mit der Eingabe von

Der Aufruf des Programms erfolgt mit

Um auch Sudo-Rechte für das Dateisystem zu bekommen startet man das Programm mit 

Bei der Frage welcher Editor künftig benutzt werden soll, entscheide ich mich für mcedit. Aber hier kann jeder selbst entscheiden, was ihm am nächsten ist.

Mit F10 beendet man das Programm.

HTOP

HTOP ist ein erweitertes Werkzeug zur Überwachung der Tasks und Dienste, sowie die CPU und Speicherauslastung. Die Installation erfolgt mit

Der Aufruf erfolgt mit

oder

Mit F10 beendet man das Programm.

Node-Red

Für die programmierbare Visualisierung von Daten benutze ich das Programmpaket Node-Red. Es ist von IBM unter Java entwickelt und bietet in einer grafischen Verwaltungs- und Programmieroberfläche auf Webbasis eine Vielzahl von Knoten (Nodes), die im Baukastenprinzip untereinander verbunden werden können. Meine These: “Mit Node-Red bekommst Du den Kaffeegenuss im und über das Internet voll unter Kontrolle.” Die Programmierung dieser Flussdiagramme (Flows) erfolgt ausschließlich auf der Weboberfläche, sowie auch das Veröffentlichen auf der eigenen Webseite.

Beispiel eines Flows. By 1-ByteOwn work, CC BY-SA 4.0, Link

Für meine Experimente ist Node-Red genau das richtige Werkzeug, um meine Sensoren, Aktoren und alle Kontrollmechanismen über eine Oberfläche zu verwalten und zu betreiben.

Install und Upgrade

Die Installation nehme ich vor, wie im Internet beschrieben. Über diesen Link kommt man auf die Node-Red Organisations-Webseite: https://nodered.org/docs/hardware/raspberrypi

Auf der Konsole des Raspberry Pi startet man die Installation mit folgendem Kommando:

Die folgenden Fragen können mit y beantwortet werden. Dann startet die Installation des kompletten Node-Red-Paketes inklusive der Pi-spezifischen Nodes. Das dauert etwa 15 Minuten. Die aktuelle Version ist die 0.19.2.

Bei Upgrades kann immer wieder der obige Befehl benutzt werden.

 

Sobald fertig, starte ich Node-Red das erste Mal mit der Eingabe von

Im Standard wird der IP-Port 1880 für Node-Red benutzt. Über einen Internet Browser startet man nun in der Adresszeile http://<IP-Adresse des Raspberry Pi>:1880 die Entwicklungs-Oberfläche von Node-Red auf dem Raspberry Pi. Also in meinem Fall von meinem lokalen Firefox: http://192.168.80.80:1880.

 

Node-Red-Dienst starten / stoppen

Damit Node-Red bei jedem Neustart des Raspberry Pi startet, wird mit dem folgenden Befehl der Dienst von Node-Red aktiviert. Vorher beende ich das laufende Node-Red mit Strg-C (womit man im Linux so einige Programme abbrechen kann) und gebe dann den Befehl ein, so wie es auch schon in der Konsole als Information ausgegeben wurde:

Stoppen bzw. Deaktivieren kann man den Dienst wieder mit

Mit einem Neustart des Raspberry Pi überprüfe ich die gewünschte Funktion.

und stelle nach ein paar Sekunden die volle Funktionalität im lokalen Browser fest.

Also ist erstmal alles gut und ich kann anfangen den ersten Sensor anzubinden

Weiter geht es mit “(M)eine kleine Wetterstation mit einem Raspberry Pi (Teil 4)”

(M)eine kleine Wetterstation mit einem Raspberry Pi (Teil 1)

Vorbereitung des Raspberry Pi zur Wetterstation

Bild vom raspberrypirev2

Von Philipp BohkEigenes Werk, CC BY-SA 3.0, Link

Hab noch einen etwas älteren Raspberry Pi B Rev2 und möchte diesen als Datenlogger für meine Aufzeichnungen von diversen Daten und Experimenten mit den Dingen des Internets IdD oder IoT (Internet of Things) nutzen. 

Ich entscheide mich für das Betriebssystem Raspbian Lite. Warum Lite? Weil diese Version vom Raspbian Betriebssystem ohne überflüssiges Zeugs, wie z.B. den graphischen Desktop und das alles, auskommt. Außerdem benötigt man für die NOOBS-Installation einen Monitor und eine Tastatur, was man sich in diesem Falle sparen kann. Das System startet -wie man so  schön sagt- headless. Dafür ist das Betriebssystem extrem jungfräulich und muss – besser: kann – von Grund auf aufgebaut und konfiguriert werden. Wie ich das gemacht habe, erkläre ich in den folgenden Abschnitten.

Vorbereitungen

Ich mache keinen Hehl daraus, dass ich mich privat immer mehr vom Windows-Betriebssystem distanziere. Linux ist mit seinen unzähligen Derivaten in der Anwendung davon oft nicht mehr zu unterscheiden. Außerdem bietet es ein essentielles Maß an Sicherheit und Hardwareunterstützung. Es ist eine Vielzahl von Amateurfunk-Programmen frei erhältlich. Auch eine Unterstützung von Windows-Software in einem Emulationsmodus (z.B. WINE) ist vorhanden. Hier muss man im Einzelnen aber prüfen, welche Soft- und Hardwarevoraussetzungen von Windows-Programmen notwendig sind. Und ich meine, es ist keine Schande für einen urigen Linuxer auch die graphischen Desktops (GUI) zu nutzen. Die Zeiten von ellenlangen und kryptischen Befehlszeilen sind längst vorbei. Wie man später aber sehen wird, sind für weitere Installationen von Treibern oder Software im Raspberry einige Konsolenbefehle unerlässlich. Wenn man weiß warum und wofür, dann ist das auch recht verständlich.

SD-Card-Reader/Writer (gibt es schon für unter 10 Euro an jeder Straßenecke, oder im PC)

  • Windows: Win32DiskImager oder Etcher, Putty
  • Linuxdd Befehl von der Konsole, Etcher oder USB-Abbildersteller (z.B. Linux Mint) und ssh Befehl von der Konsole

Das Betriebssystem flashen

Zum heutigen Zeitpunkt (August 2018) ist Raspbian Stretch Lite die aktuelle Version mit der Kernel Version 4.14. Zum Download des Betriebssystems kommt man hier.

Ich installiere bzw. flashe dieses Betriebssystem mit einem der oben genannten Programme  auf eine SD-Karte der Klasse 10 mit 8 GB. Kleinere Karten bis hinunter zu 2 GB tun es auch, sind aber kaum noch erhältlich. Anleitungen dazu gibt es genug im Internet.

SSH-Zugriff aktivieren

Bevor man die Karte zum Booten in den Raspberry Pi einlegt, ist es ratsam den SSH-Zugriff zu konfigurieren. Deshalb behalte ich die Karte im Slot und öffne sie in einem Datei-Explorer oder Dateimanager. In der Partition Boot erstellt man einfach eine Datei mit dem Namen ssh ohne Endung. Somit ist der SSH-Zugriff aktiviert. Im Übrigen wird damit auch bereits der SFTP-Zugang für Filetransfers gewährt.

Erster Start des Raspberry Pi

Jetzt kann man diese Karte in den Raspberry Pi einlegen, mit einem Netzwerkkabel ans Heimnetzwerk verbinden und einschalten. Warum nicht WLAN? Der RPi B hat keinen WLAN-Adapter. Das Betriebssystem ist für DHCP konfiguriert und sollte vom heimischen Netzwerk nun automatisch eine IP-Konfiguration erhalten. Diese ist über den DHCP-Server im Heimnetzwerk, meist der Internetrouter (z.B. Fritzbox), ausfindig zu machen und für den weiteren Zugang zum Gerät zu merken. Ich finde und merke mir hier hinter dem neuen Eintrag raspberrypi.local die IP-Adresse 192.168.80.80. Der Raspberry Pi ist damit bereits mit den Gegebenheiten des Netzwerkes versorgt (Subnetzmaske, Gateway, etc.). Wir ändern das später von versorgen lassen (dynamisch) in fest eingetragen (statisch).

In meinem Linux-Terminal verbinde ich mich mit dem Raspberry Pi. Im Standard-Zugriff ist der Benutzer pi mit dem Kennwort raspberry versehen. Natürlich sollte man dieses Kennwort unverzüglich ändern. Wie das geht erscheint nach dem Anmelden auch als Hinweis auf der Konsole. Also tu ich das!

Ach übrigens, für Neueinsteiger vielleicht interessant: Linux ist bei allen Tastatureingaben sehr pingelig mit der Groß- und Kleinschreibung. Also bitte immer darauf achten! Den Benutzer Pi oder PI gibt es nicht, sondern nur erstmal den Benutzer pi. Das gilt auch für Befehle und Pfadangaben.

Somit ist die Erstverbindung mit dem Raspberry Pi erfolgreich eingerichtet und es geht weiter mit:

(M)eine kleine Wetterstation mit einem Raspberry Pi (Teil 2)