Inhaltsverzeichnis:
- Schritt 1: Hardware vorbereiten
- Schritt 2: Aktivieren von SSH
- Schritt 3: Cloud4RPi. installieren
- Schritt 4: Anschließen des Sensors
- Schritt 5: Senden von Sensormesswerten an die Cloud
- Schritt 6: Diagramme und Alarme
Video: Temperatur- und Luftfeuchtigkeitsüberwachung mit Raspberry Pi - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Der Sommer kommt, und diejenigen ohne Klimaanlage sollten darauf vorbereitet sein, die Atmosphäre in Innenräumen manuell zu regulieren. In diesem Beitrag beschreibe ich die moderne Art, die wichtigsten Parameter für das menschliche Wohlbefinden zu messen: Temperatur und Luftfeuchtigkeit. Diese erhobenen Daten werden an die Cloud gesendet und dort verarbeitet.
Ich verwende ein Raspberry Pi 1 Board und den DHT22 Sensor. Sie können dasselbe auf jedem Computer tun, der über Internet, GPIO und Python verfügt. Der billigere DHT11-Sensor funktioniert auch einwandfrei.
Schritt 1: Hardware vorbereiten
Fangen wir von vorne an, da ich meinen Raspberry Pi schon lange nicht mehr benutzt habe.
Wir brauchen:
- Raspberry Pi-Board (oder eine andere IoT-orientierte Plattform).
- SD- oder microSD-Karte (je nach Plattform).
- 5V/1A über Micro-USB.
- LAN-Kabel, das die Internetverbindung bereitstellt.
- HDMI-Display, RCA-Display oder UART-Port (um SSH zu aktivieren).
Der allererste Schritt ist das Herunterladen von Raspbian. Ich habe mich für die Lite-Version entschieden, da ich SSH anstelle von Display verwenden werde. Seit dem letzten Mal haben sich die Dinge geändert: Jetzt gibt es eine großartige Brennsoftware namens Etcher, die perfekt funktioniert und ein atemberaubendes Design hat.
Nachdem das Brennen des Images abgeschlossen war, legte ich die SD-Karte in meinen Pi ein, steckte die LAN- und Stromkabel ein und nach einer Weile registrierte mein Router das neue Gerät.
Schritt 2: Aktivieren von SSH
SSH ist standardmäßig deaktiviert. Ich kann entweder einen UART-USB-Konverter verwenden oder einfach ein Display anschließen, um auf die Shell zuzugreifen und SSH zu aktivieren.
Nach dem Neustart bin ich endlich drin. Das Wichtigste zuerst, lass uns aktualisieren:
sudo apt update && sudo apt upgrade -y
Verbinden wir nun dieses neue Gerät mit der Cloud.
Schritt 3: Cloud4RPi. installieren
Ich beschloss, die Cloud-Plattform namens Cloud4RPi auszuprobieren, die für IoT entwickelt wurde.
Laut Dokumentation benötigen wir die folgenden Pakete, um es zum Laufen zu bringen:
sudo apt install git python python-pip -y
Die Clientbibliothek kann mit einem einzigen Befehl installiert werden:
sudo pip install cloud4rpi
Jetzt brauchen wir etwas Beispielcode, um sicherzustellen, dass es funktioniert.
Git-Klon https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python Git-Klon https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv e/minimal.py minimal.py && rmdir -re
Ich habe mich für minimal.py entschieden, aber ich mag die gefälschten Daten nicht. Glücklicherweise ist mir in diesem Beispiel eine einfache Möglichkeit aufgefallen, die Diagnosedaten real zu machen. Fügen Sie dem Abschnitt "Importe" einen weiteren Import hinzu:
aus rpi-Import *
Löschen Sie dann diese Funktionen, die gefälschte Daten bereitstellen (die rpi.py definiert sie jetzt):
def cpu_temp():
Rückgabe 70 def ip_address(): Rückgabe '8.8.8.8' def host_name(): Rückgabe 'hostname' def os_name(): Rückgabe 'osx'
Jetzt brauchen wir einen Token, der es Cloud4RPi ermöglicht, die Geräte mit den Konten zu verknüpfen. Um eines zu erhalten, erstellen Sie ein Konto auf cloud4rpi.io und klicken Sie auf dieser Seite auf die Schaltfläche Neues Gerät. Ersetzen Sie die Zeichenfolge _YOUR_DEVICE_TOKEN_ in der Datei minimal.py durch das Token Ihres Geräts und speichern Sie die Datei. Jetzt sind wir bereit für den ersten Start.
python minimal.py
Öffnen Sie die Geräteseite und prüfen Sie, ob die Daten vorhanden sind.
Kommen wir nun zu realen Daten.
Schritt 4: Anschließen des Sensors
Wir brauchen:
- Feuchtigkeitssensor DHT22 oder DHT11
- Pull-up-Widerstand (5-10 KΩ)
- Drähte
Der DHT22-Sensor misst gleichzeitig Temperatur und Luftfeuchtigkeit. Das Kommunikationsprotokoll ist nicht standardisiert, daher brauchen wir es nicht in raspi-config zu aktivieren - ein einfacher GPIO-Pin ist mehr als genug.
Um die Daten zu erfassen, werde ich die großartige Bibliothek von Adafruit für DHT-Sensoren verwenden, aber sie funktioniert möglicherweise nicht so, wie sie ist. Ich habe mal eine seltsame ständige Verzögerung im Code festgestellt, die bei meiner Hardware nicht funktioniert hat, und nach zwei Jahren steht mein Pull-Request immer noch aus. Ich habe auch die Board-Erkennungskonstanten geändert, weil mein Raspberry Pi 1 mit BCM2835 überraschend als Raspberry Pi 3 erkannt wurde. Ich wünschte, es wäre wahr… Daher empfehle ich, meinen Fork zu verwenden. Wenn Sie Probleme damit haben, versuchen Sie es bitte mit dem Original-Repository, vielleicht funktioniert es für jemanden, aber ich gehöre nicht dazu.
git-Klon https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT
Da die Bibliothek in C geschrieben ist, muss sie kompiliert werden, sodass Sie die Pakete build-essential und python-dev benötigen.
sudo apt install build-essential python-dev -ysudo python setup.py install
Während die Pakete installiert werden, schließen Sie das DHT22 wie in der Abbildung gezeigt an.
Und teste es:
cd ~python -c "Importiere Adafruit_DHT als d; drucke d.read_retry(d. DHT22, 4)"
Wenn Sie so etwas wie (39.20000076293945, 22.600000381469727) sehen, sollten Sie wissen, dass dies die Luftfeuchtigkeit in Prozent und die Temperatur in Celsius ist.
Jetzt bauen wir alles zusammen!
Schritt 5: Senden von Sensormesswerten an die Cloud
Ich verwende die minimal.py als Basis und füge die DHT22-Interaktion hinzu.
cd cloud4rpi-raspberrypi-python
cp minimal.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py
Da DHT22 sowohl Temperatur als auch Luftfeuchtigkeit in einem einzigen Aufruf zurückgibt, speichere ich sie global und aktualisiere sie nur einmal in einer Anfrage, vorausgesetzt, die Verzögerung zwischen ihnen beträgt mehr als 10 Sekunden. Betrachten Sie den folgenden Code, der die DHT22-Daten erfasst:
Adafruit_DHT importieren
temp, hum = None, None last_update = time.time() - 20 def update_data(): global last_update, hum, temp if time.time() - last_update > 10: hum, temp = Adafruit_DHT.read_retry(Adafruit_DHT. DHT22, 4) last_update = time.time() def get_t(): update_data() return round(temp, 2) wenn temp nicht None else None def get_h(): update_data() return round(hum, 2) wenn hum nicht Keine sonst Keine
Fügen Sie diesen Code nach den bestehenden Importen ein und bearbeiten Sie den Variablenabschnitt, damit er die neuen Funktionen verwendet:
Variablen = {
'DHT22 Temp': { 'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': { 'type': 'numeric', 'bind': get_h }, 'CPU Temp': { 'type ': 'numerisch', 'bind': cpu_temp } }
Drücken Sie den roten Knopf, um die Datenübertragung zu starten:
python cloud_dht22.py
Dann können Sie die Geräteseite überprüfen.
Sie können es so lassen, wie es ist, aber ich bevorzuge einen Service für alles. Dadurch wird sichergestellt, dass das Skript immer ausgeführt wird. Erstellen eines Dienstes mit dem vollautomatischen Skript:
wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py
Starten des Dienstes:
sudo service cloud4rpi starten
Und überprüfen Sie es:
pi@raspberrypi:~ $ sudo service cloud4rpi status -l
● cloud4rpi.service - Cloud4RPi-Daemon Geladen: geladen (/lib/systemd/system/cloud4rpi.service; aktiviert) Aktiv: aktiv (läuft) seit Mi 2017-05-17 20:22:48 UTC; vor 1min Main PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560 /usr/bin/python /home/pi/cloud_dht22.pyMay 17 20:22:51 raspberrypi python[560]: Publishing iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20…y'}]}17. Mai 20:22:53 raspberrypi python[560]: Veröffentlichung von iot-hub/messages: {'type': 'data', 'ts': '2017-05-17T20:2…40'}}17. Mai 20:22:53 raspberrypi python[560]: iot-hub/messages veröffentlichen: {'type': 'system', 'ts': '2017-05-17T20….4'}}
Wenn alles wie erwartet funktioniert, können wir weitermachen und die Fähigkeiten der Cloud4RPi-Plattform nutzen, um mit den Daten zu manipulieren.
Schritt 6: Diagramme und Alarme
Lassen Sie uns zunächst die Variablen grafisch darstellen, um zu sehen, wie sie sich ändern. Dies kann durch Hinzufügen einer neuen Systemsteuerung und Einfügen der erforderlichen Diagramme erfolgen.
Eine andere Sache, die wir hier tun können, ist das Setzen eines Alerts. Mit dieser Funktion können Sie den sicheren Bereich für eine Variable konfigurieren. Sobald der Bereich überschritten wird, sendet er eine E-Mail-Benachrichtigung. Auf der Bearbeitungsseite der Systemsteuerung können Sie zu Warnungen wechseln und eine einrichten.
Gleich danach begann die Luftfeuchtigkeit in meinem Zimmer ohne erkennbaren Grund rapide zu sinken, und bald folgte der Alarm.
Sie können Cloud4RPi kostenlos mit jeder Hardware verwenden, die Python ausführen kann. Was mich betrifft, weiß ich jetzt immer, wann ich den Luftbefeuchter einschalten muss, und kann ihn sogar über Cloud4RPi an ein Relais zur Fernsteuerung anschließen. Ich bin auf die Hitze vorbereitet! Willkommen Sommer!
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 2 - Temperatur- / Feuchtigkeitsmonitor - Rev 3: 7 Schritte
Easy Very Low Power BLE in Arduino Teil 2 – Temperatur-/Feuchtigkeitsmonitor – Rev 3: Update: 23. November 2020 – Erster Austausch von 2 x AAA-Batterien seit 15. Januar 2019 dh 22 Monate für 2x AAA AlkalineUpdate: 7. April 2019 – Rev 3 of lp_BLE_TempHumidity, fügt Datum/Uhrzeit-Plots hinzu, verwendet pfodApp V3.0.362+ und automatische Drosselung, wenn
M5STACK So zeigen Sie Temperatur, Feuchtigkeit und Druck auf dem M5StickC ESP32 mit Visuino an - Einfach zu tun: 6 Schritte
M5STACK So zeigen Sie Temperatur, Luftfeuchtigkeit und Druck auf dem M5StickC ESP32 mit Visuino an - Einfach zu machen: In diesem Tutorial lernen wir, wie Sie den ESP32 M5Stack StickC mit Arduino IDE und Visuino programmieren, um Temperatur, Luftfeuchtigkeit und Druck mit dem ENV-Sensor (DHT12, BMP280, BMM150)
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
Raspbian in Raspberry Pi 3 B ohne HDMI installieren - Erste Schritte mit Raspberry Pi 3B - Einrichten Ihres Raspberry Pi 3: 6 Schritte
Raspbian in Raspberry Pi 3 B ohne HDMI installieren | Erste Schritte mit Raspberry Pi 3B | Einrichten Ihres Raspberry Pi 3: Wie einige von Ihnen wissen, sind Raspberry Pi-Computer ziemlich großartig und Sie können den gesamten Computer nur auf einer einzigen winzigen Platine bekommen. Das Raspberry Pi 3 Model B verfügt über einen Quad-Core 64-Bit ARM Cortex A53 mit 1,2 GHz getaktet. Damit ist der Pi 3 ungefähr 50