Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Hardware vorbereiten
- Schritt 2: Cloud4RPi. installieren
- Schritt 3: Anschließen des Sensors
- Schritt 4: Senden von Sensormesswerten an die Cloud
- Schritt 5: Diagramme und Alarme
Video: Feuchtigkeit in der Cloud - 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.
Lieferungen
Ich verwende ein Raspberry Pi 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 ich es das letzte Mal gemacht habe, 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.
Groß! Gehen wir weiter und SSH hinein.
Sicherheit ist OK, ich mag es, aber das macht die Sache etwas schwieriger. Ich werde den UART-USB-Adapter verwenden, um auf die Shell zuzugreifen und SSH zu aktivieren …
Die Verwendung eines Displays anstelle von UART macht es viel einfacher.
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 2: 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 python3 python3-pip -y
Die Clientbibliothek kann mit einem einzigen Befehl installiert werden:
sudo pip3 installiere cloud4rpi
Jetzt brauchen wir etwas Beispielcode.
Git-Klon https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python
Das ausführbare Skript ist control.py.
Wir benötigen 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 control.py durch das Token Ihres Geräts und speichern Sie die Datei. Jetzt sind wir bereit für den ersten Start.
sudo python3 control.py
Öffnen Sie die Geräteseite und prüfen Sie, ob die Daten vorhanden sind.
Kommen wir nun zu realen Daten.
Schritt 3: Anschließen des Sensors
Wir brauchen:
- Feuchtigkeitssensor DHT22 oder DHT11
- Pull-up-Widerstand (5-10 KΩ)
- DrähteThe
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.gitcd 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 4: Senden von Sensormesswerten an die Cloud
Ich verwende die control.py als Basis und füge die DHT22-Interaktion hinzu.
cp cloud4rpi-raspberrypi-python/control.py./cloud_dht22.pycp cloud4rpi-raspberrypi-python/rpi.py./rpi.pyvi cloud_dht22.py
Entfernen Sie den Beispielcode wie im Bild oben.
Da DHT22 sowohl Temperatur als auch Luftfeuchtigkeit in einem einzigen Aufruf zurückgibt, werde ich sie global speichern und nur einmal in einer Anfrage aktualisieren, 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, Brumm = Keine, Keine
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 None else None
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': { 'Typ': 'numerisch', 'bind': cpu_temp } }
Wenn Sie die Manipulationen verwirrend finden, holen Sie sich die endgültige Version dieser Datei. Drücken Sie den roten Knopf, um die Datenübertragung zu starten:
Dann können Sie die Geräteseite überprüfen.
python3 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, das Sie bereits im Verzeichnis cloud4rpi-raspberrypi-python haben:
service_install.sh 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.py
17. Mai 20:22:51 raspberrypi python[560]: iot-hub/messages veröffentlichen: {'type': 'config', 'ts': '2017-05-17T20…y'}]}
17. Mai 20:22:53 raspberrypi python[560]: iot-hub/messages veröffentlichen: {'type': 'data', 'ts': '2017-05-17T20:2…40'}} 17. Mai: 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 5: 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!
Mit Cloud4RPi können Sie Ihren Raspberry Pi und andere IoT-Geräte in Echtzeit aus der Ferne steuern. Besuchen Sie unsere Website und verbinden Sie kostenlos unbegrenzt viele Geräte.
Empfohlen:
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
So verbinden Sie einen ESP32 mit der IoT-Cloud: 8 Schritte
So verbinden Sie einen ESP32 mit der IoT-Cloud: Diese Anleitung enthält eine Reihe von Artikeln zum Anschließen von Hardware wie Arduino und ESP8266 an die Cloud. Ich werde Ihnen erklären, wie Sie Ihren ESP32-Chip mit dem AskSensors IoT-Dienst mit der Cloud verbinden. Warum ESP32?Nach dem großen Erfolg
So erstellen Sie einen Smart Pot mit NodeMCU, der von der App gesteuert wird – wikiHow
So erstellen Sie einen Smart Pot mit NodeMCU, der von einer App gesteuert wird: In dieser Anleitung bauen wir einen Smart Pot, der von einem ESP32 und einer Anwendung für Smartphones (iOS und Android) gesteuert wird. Wir verwenden NodeMCU (ESP32) für die Konnektivität und die Blynk-Bibliothek für das Cloud-IoT und die Anwendung auf dem Smartphone. Endlich haben wir
So veröffentlichen Sie ESP32-Daten mit NTP-Zeitstempel in der IoT-Cloud – wikiHow
So veröffentlichen Sie ESP32-Daten mit NTP-Zeitstempel in der IoT-Cloud: In vielen Anwendungen müssen Benutzer ihre Daten zusammen mit dem lokalen Zeitstempel der in der Nutzlast zu sendenden Werte an die AskSensors-IoT-Cloud senden. Das Zeitstempelformat ist die Zeit der UNIX-Epoche: die Anzahl der Millisekunden, die seit Januar