
Die vorgeschlagene Wetterstation basiert auf einem selbstgebauten
PIDP11- Computer, der aus einer Himbeere mit einem PDP-11-Emulator und einem Gehäuse mit einer Frontplatte mit aktiven LEDs und Schaltern besteht. Trotzdem verfügt die „Himbeere“ über genügend unbesetzte GPIOs, um auch einen Druck- und Temperatursensor anzuschließen.
Auf dem Emulator wird OS 2.11BSD ausgeführt, in dem sich die Wetterstationssoftware „dreht“. Daten werden an zwei Terminalemulatoren ausgegeben. Einer von ihnen - cool-retro-term - zeigt Textinformationen in Großdruck mit ASCII-Grafik an. Der zweite - ein grafischer Terminalemulator Tektronix 4010 mit einem Speicherrohr - zeigt die Druck- und Temperaturkurven an.
Die Methode zum Anschließen des BME280-Sensors wird
hier beschrieben:
| | GPIO | | Raspberry Pi | | ------------+--------------+-------------- VCC | 3,3 | P1-01 GND | | P1-06 SCL | SCL I2C | P1-05 SDA | SDA I2C | P1-03
Das auf dem Foto unten gezeigte OLED-Display ist parallel zum Sensor geschaltet, erhält jedoch eine andere Adresse auf dem I
2 C-Bus. Wenn Sie möchten, müssen Sie überhaupt kein Display installieren. Der Autor hat außerdem eine Schaltfläche zum korrekten Herunterfahren des Betriebssystems eingestellt, bevor das Gerät ausgeschaltet wird.

Damit das Gerät funktioniert, müssen Sie dem laufenden Benutzer im 2.11BSD-Emulator zunächst einen neuen Benutzer hinzufügen:
Melden Sie sich als Root an. Geben Sie den Befehl vipw ein, um den vi-Editor mit der Datei / etc / passwd zu starten
Fügen Sie die Zeile in die Datei ein:
firstname::201:20:fullname:/home/firstname:/bin/tcsh
Dabei sind Vorname und vollständiger Name die kurzen und vollständigen Benutzernamen.
Beenden Sie den Editor und erstellen Sie den Home-Ordner des Benutzers:
cd /home mkdir firstname chown firstname firstname
Kopieren Sie die Dateien .login und .cshrc in diesen Ordner. '
cd /home/user cp .* /home/firstname cd /home/firstname chown firstname .*
Geben Sie vi .login ein und bearbeiten Sie die Eingabeaufforderung, indem Sie die entsprechende Zeile in Folgendes ändern:
set prompt='%n@%m:%c$ '
Beenden Sie den Editor. Melden Sie sich mit dem Befehl logout ab, ändern Sie das Kennwort für den neuen Benutzer mit dem Befehl passwd unter dem Stammverzeichnis. Jetzt können Sie sich mit dem Benutzernamen und dem Kennwort des neuen Benutzers anmelden.
Danach müssen Sie Datum und Uhrzeit im System beim Booten automatisch einstellen. Für die folgenden Informationen dankt der Autor Jason Vanick und Johnny Billquist:
Konfigurieren Sie zuerst das Netzwerk und stellen Sie sicher, dass Ping funktioniert. Fügen Sie dann unmittelbar vor der ntpt-Zeile in der Datei /etc/rc.local die folgende Zeile ein:
ntp -sf pool.ntp.org
Ändern Sie die letzte Zeile in der Datei /etc/ntp.conf in:
server pool.ntp.org
Sie können einen anderen NTP-Server auswählen. Um die Zeitzone festzulegen, überprüfen Sie die Liste der Zonen in der Datei / usr / share / zoneinfo und suchen Sie dort den Namen Ihrer Zone. Melden Sie sich als Root an und geben Sie die folgenden Befehle ein:
cd /etc mv localtime localtime.old ln -s /usr/share/zoneinfo/timezone localtime
Der nächste Vorgang besteht darin, ein Programm zu installieren und zu konfigurieren, mit dem Sie die Raspbian-Befehlszeile, die auf einem echten "Malink" ausgeführt wird, an die im Emulator ausgeführte 2.11BSD-Befehlszeile weiterleiten
können :
Geben Sie in Raspbian unter root den folgenden Befehl ein:
sudo apt-get install rsh-server
Erstellen Sie im Home-Ordner eine .rhosts-Datei mit folgendem Inhalt:
bsd_ip_address bsd_user_name
Dabei ist bsd_ip_address die IP-Adresse der virtuellen Maschine mit 2.11 BSD und bsd_user_name der Name des Benutzers in 2.11 BSD, der Befehle auf einer echten „Himbeere“ ausführen kann, zum Beispiel:
192.168.1.99 rene
Legen Sie die Berechtigungen für diese Datei fest, da sonst nichts funktioniert:
chmod 600 .rhosts
Gehen Sie zum Emulator, geben Sie 2.11 BSD als Root ein und bearbeiten Sie / etc / hosts - fügen Sie die Zeile hinzu:
remote_ip_address remote_full_name remote_nick_name
Dabei ist remote_ip_address die IP-Adresse der echten "Himbeere" und remote_full_name und remote_nick_name der Domänenname und der Alias, zum Beispiel:
192.168.1.103 pizerow.home.lan pizerow
Melden Sie sich mit dem zuvor festgelegten Namen (bsd_user_name) an und überprüfen Sie, ob alles funktioniert hat:
rsh remote_nick_name -l pi -n “ls”
Sie haben gerade den Befehl ls vom Emulator auf einem echten Malink ausgeführt. Wenn stattdessen ein Passworteingabeformular vor Ihnen angezeigt wurde, bedeutet dies, dass ein Fehler aufgetreten ist.
Versuchen Sie jetzt etwas komplizierteres. Geben Sie den Befehl ein:
rsh remote_nick_name -l pi -n “cat /sys/class/thermal/thermal_zone0/temp”
Im rtest-Ordner dieses Repositorys befindet sich ein kleines C-Programm, das zeigt, wie mit popen Informationen aus einem bestimmten Programm abgerufen und so verarbeitet werden, dass in 2.11BSD eine für Menschen lesbare Ausgabe erhalten wird:
rene@pdp11:rtest$ rtest **************************************************** * The CPU temperature on the pizerow is 42.2 deg C * **************************************************** rene@pdp11:rtest$
Sie haben gerade im Emulator die Temperatur des realen Prozessors gesehen, auf dem sich dieser Emulator „dreht“.
Laden Sie das Python-Skript aus dem Wetter- / Sensorordner dieses Repositorys herunter.
Stellen Sie sicher, dass das Skript in Remote Pizerow ordnungsgemäß funktioniert, und legen Sie es im Ordner / home / pi / bin ab
Führen Sie cool-retro-term und den Emulator aus, geben Sie 2.11BSD als den gerade erstellten Benutzer ein und geben Sie die folgenden Befehle ein:
mkdir weather cd weather
Auf die eine oder andere Weise (z. B. mit FileZilla) ziehen Sie Dateien aus dem Wetter- / BSD-Ordner des Repositorys in den Wetterordner des Betriebssystems, das im Emulator ausgeführt wird. Geben Sie den Wetterbefehl ein, und das Programm extrahiert die Daten aus dem Sensor und zeigt sie in folgender Form an:
rene@pdp11:weather$ weather Contacting remote sensor... Data received, analyzing ... ************************************** The sensor reports the following data: Temperature 7.0 C Pressure 969.8 hPa Humidity 66.8 % ************************************** rene@pdp11:weather$
Wenn alles funktioniert hat, erstellen Sie den Ordner dats im Ordner ~ / weather, in dem weather2 das Protokoll speichern kann:
cd cd weather mkdir data weather2
Jeden Tag begann weather2, im Ordner ~ / weather / data eine Datei mit dem Namen zu erstellen, der dem Datum entspricht, und fügte jede Minute eine Zeile mit den Daten hinzu. Auf dem Terminal wird kontinuierlich Folgendes angezeigt, wobei der Bildschirm auch einmal pro Minute aktualisiert wird:

Nun, weather3 funktioniert genauso, zeigt nur mehr Zeit und Druck an. Es verwendet die Curses-Bibliothek, um den Cursor zu bewegen.

Versuchen Sie auch, die Temperatur- und Druckwerte der vorherigen Tage auf dieselbe Weise anzuzeigen und ein Skript zu schreiben, um die Wettervorhersage basierend auf diesen Daten zu erhalten. Viel Glück!
Anhang 1 - Cool-Retro-Term installieren und konfigurieren
Anhang 2 - Installation und Konfiguration des Tektronix 4010-Grafikterminalemulators