WaterPi:Fernbewässerungs- und Überwachungssystem für Zimmerpflanzen
Komponenten und Verbrauchsmaterialien
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Apps und Onlinedienste
| ||||
| ||||
|
Über dieses Projekt
Einführung
Das System ist eine geeignete Lösung für Menschen, die Pflanzen in ihrem Haus lieben und pflegen möchten, aber in der täglichen Arbeit damit sehr beschäftigt sind. Der Anbau von Pflanzen erfordert Zeit und Mühe, um erfolgreich zu sein, denn es gibt einige regelmäßige Dinge, die man tun muss, wie sie jeden Tag zu gießen. Die Leute vergessen manchmal, sich um ihre Pflanzen zu kümmern. Außerdem reisen manche Leute viel und verbringen weniger Zeit in ihrem Haus. In diesem Zusammenhang bitten sie in der Regel um Hilfe bei der Pflege ihrer Zimmerpflanzen, sonst verzichten sie einfach darauf. WaterPican hilft diesen Menschen dabei, regelmäßige Dinge für Pflanzen zu tun. Da es auch aus der Ferne gesteuert werden kann, können Pflanzenbesitzer bei Bedarf problemlos in den Bewässerungsprozess eingreifen.
Das System überwacht die Temperatur und Luftfeuchtigkeit des Standorts sowie die Bodenfeuchtigkeit des Bodens, bewässert die Pflanze aus der Ferne und speichert dann alle Daten über AWS IoT in DynamoDB. Die gesammelten Daten werden durch verschiedene Diagramme und Zahlen visualisiert, um ein besseres Verständnis der Bedingungen zu ermöglichen, unter denen die Pflanze gedeiht.
Raspberry Pi führt eine nodejs-Anwendung aus, um alle Sensoren und die Wasserpumpe zu steuern. Zu diesem Zweck habe ich es vorgezogen, die Johnny-Five-Bibliothek zu verwenden. Um mit AWS zu kommunizieren, habe ich AWS IoT SDK für Javascript verwendet.
Schritt 1:DynamoDB einrichten
DynamoDB wird verwendet, um von Sensoren gesammelte Daten zu speichern. Gehen Sie zur DynamoDB-Seite und erstellen Sie eine neue Tabelle mit den folgenden Attributen:
- Tabellenname:waterpi_sensor_data
- Partitionsschlüssel: Schlüssel
- Klicken Sie auf Sortierschlüssel hinzufügen und fügen Sie Zeitstempel hinzu
Wichtig ist, dass der Schlüssel- und Zeitstempeltyp String sein muss.
Schritt 2:AWS IoT einrichten
Gehen Sie zur AWS IoT-Konsolenseite und gehen Sie wie folgt vor:
Erschaffe ein Ding mit dem Namen raspi-water-pump
Erstellen Sie eine neue Richtlinie. Richtlinienname Pumpenrichtlinie, Aktion iot:*, Ressource * , wählen Sie Zulassen, Klicken Sie dann auf Anweisung hinzufügen und erstellen.
Erstellen Sie ein Zertifikat mit 1-Klick-Zertifikat erstellen . Laden Sie dann den öffentlichen Schlüssel, den privaten Schlüssel und das Zertifikat herunter.
Wählen Sie dann das von Ihnen erstellte Zertifikat aus und gehen Sie wie folgt vor:
- klick Aktionen > Aktivieren klicke auf das Zertifikat
- klicken Sie auf Aktionen> Eine Richtlinie anhängen , geben Sie den von Ihnen erstellten Richtliniennamen ein und klicken Sie auf Anhängen
- Klicken Sie auf Aktionen> Anhängen einer Sache , tippe raspi-water-pump ein und klicke auf Anhängen
Erstellen Sie eine Regel mit den folgenden Elementen:
- name saveToDynamoDB
- Attribut *
- Themenfilter Sensor/Daten
- Aktion auswählen Nachricht in eine Datenbanktabelle einfügen
- Tabellenname waterpi_sensor_data
- Hash-Schlüsselwert ${topic()}
- Bereichsschlüsselwert ${timestamp()}
- Rollenname> Klicken Sie auf Neue Rolle erstellen und klicke auf Zulassen Schaltfläche auf der Eröffnungsseite und wählen Sie sie dann aus der Dropdown-Liste für den Rollennamen aus
Schritt 3:Arduino vorbereiten
Die Ausgänge des Wasserstands- und Bodenfeuchtigkeitssensors sind analoge Ausgänge. Anstatt sie direkt mit Raspberry Pi zu verdrahten, verwende ich lieber Arduino, um diese analogen Werte zu nehmen und dann als digitalen Wert über Arduino an Pi zu senden. Arduino-Codes werden von pi aktualisiert. Das einzige, was wir in diesem Schritt tun sollten, ist, Arduino mit unserem Computer zu verbinden und Standard-Firmata darauf hochzuladen.
Wenn Sie keine Arduino IDE haben, folgen Sie den Schritten hier, um sie zu installieren.
- Öffnen Arduino-IDE
- Öffne Datei> Beispiele> Firmata> StandardFirmata Beispiel
- Hochladen Skizze zu Arduino
Die Verdrahtung der Bodenfeuchtigkeit mit dem Arduino-Schema sollte wie folgt aussehen:
- VCC (Strom) -> PIN 7
- GND (Masse) -> GND
- AO (Analogausgang) -> A1
Die Verkabelung des Wasserstandssensors mit dem Arduino-Schema sollte wie folgt aussehen:
- (+) -> PIN 4
- (-) -> GND
- S -> A0
Danach sollten Sie Ihr Arduino über ein USB-Kabel mit Raspberry Pi verbinden. Vergessen Sie auch nicht, Ihren Bodenfeuchtigkeitssensor in den Blumentopf und Ihren Wasserstandssensor in Ihren Wassertank zu legen.
Schritt 4:Raspberry Pi vorbereiten
Kabel-LCD-Bildschirm, dht11, Wasserpumpe durch Relais mit Himbeer-Pi.
Verdrahtung DHT11 zu Pi
- S -> GPIO4 (Pin 7)
- (+) -> 3V3 (Pin 1)
- (-) -> GND (Pin 25)
Verkabelung des LCD-Bildschirms
- VCC -> 5V (Pin 2)
- GND -> GND (Pin 6)
- SDA -> GPIO2 (Pin 3)
- SCL -> GPIO3 (Pin 5)
Verdrahtungsrelais für Wasserpumpe
- S -> GPIO18 (Pin 12)
- (+) -> 5V (Pin 4)
- (-) -> GND (Pin 20)
Verkabelung Wasserpumpe mit Relais und Batteriepack
- Wasserpumpe hat zwei Kabel. Einer sollte mit dem Relais verbunden werden, der andere sollte mit einem Batteriepackkabel verdrahtet werden.
- Andere Akkukabel sollten an das Relais angeschlossen werden. Sehen Sie sich das Diagramm oben an, um zu erfahren, wie Sie sie verbinden.
Schritt 5:Ausführen der Nodejs-App auf Pi
In diesem Teil führen wir die nodejs-Anwendung auf pi aus, um Sensordaten zu sammeln und die Wasserpumpe zu steuern. Raspberry Pi sollte mit dem Internet verbunden sein. Sie können dies über Ethernet oder WLAN tun.
Node muss auf Pi installiert werden, bevor Sie fortfahren können. Wenn Sie nodejs noch nicht installiert haben, folgen Sie bitte dem Tutorial hier, um es zu installieren.
Verbinden Sie Ihren Raspberry Pi und führen Sie Folgendes aus:
git clone [email protected]:demirhanaydin/waterpi-node.gitcd waterpi-nodenpm installieren
Sie sollten Ihren öffentlichen Schlüssel, Ihren privaten Schlüssel und Ihre Zertifikatsdateien, die Sie von der AWS iot-Seite heruntergeladen haben, unter Zertifikate ablegen Mappe. Außerdem sollten Sie die Stammzertifizierungsstellenzertifikatdatei vom Stammzertifikat herunterladen. Speichern Sie diese Datei als rootCA.pem und legen Sie sie unter Zertifikate Ordner.
Öffnen Sie dann device.js Datei mit Ihrem bevorzugten Texteditor und aktualisieren Sie diese Zeilen mit Ihren Dateipfaden. Sie sollten Ihre IOT_DEVICE_URL . erhalten von der AWS IoT-Plattform, indem Sie auf Ihr Ding klicken. Es sollte so aussehen: https://XXXXXXXXX.iot.us-east-1.amazonaws.com
Dann lauf
sudo node index.js
Wenn alles korrekt ist, sollten Sie die Sensorwerte auf dem LCD-Bildschirm sehen können.
Außerdem sollten Sie die Werte in Ihrer DynamoDB-Tabelle sehen. Die Anwendung sendet alle 20 Sekunden Sensordaten an die IoT-Plattform
Schritt 6:Ausführen der Webanwendung
Die grundlegende sinatra-Anwendung visualisiert die Daten, die sich auf dem Dynamodb-Tisch befinden, mit Hilfe von Highcharts. Außerdem kann die Wasserpumpe ferngesteuert werden. Wenn der Benutzer auf eine Start-/Stopp-Schaltfläche klickt, wird ein Ereignis auf der AWS IoT-Plattform veröffentlicht. Raspberry Pi nimmt dieses Ereignis und verarbeitet es, um die Pumpe zu starten oder zu stoppen.
Ruby sollte auf Ihrem Computer installiert sein, um das Tutorial fortzusetzen. Wenn dies nicht der Fall ist, besuchen Sie diese Seite, um sie zu installieren.
Öffnen Sie Ihr Terminal und führen Sie die folgenden Befehle aus
git clone [email protected]:demirhanaydin/waterpi-web.gitcd waterpi-webbundle install
Sie sollten Ihren öffentlichen Schlüssel, Ihren privaten Schlüssel, Ihr Zertifikat und Ihre RootCA-Dateien unter Zertifikate . ablegen Mappe. Öffnen Sie dann boot.rb und aktualisieren Sie diese Zeilen mit den richtigen Werten. Sie sollten Ihren AWS-Zugriffsschlüssel und -Geheimnis von der Seite Sicherheitsanmeldeinformationen in der AWS Management Console entnehmen.
Wenn Sie fertig sind, sollten Sie das Projekt wie folgt ausführen
ruby app.rb
Öffnen Sie Ihren Browser und geben Sie http://localhost:4567/ . ein Sie sollten in den Diagrammen die gesammelten Sensordaten von Dynamodb sehen können.
Wenn Sie auf Start klicken, beginnt die Pumpe mit der Bewässerung der Pflanze.
Hier sind einige Fotos, die ich während der Entwicklung des Projekts gemacht habe
Herzlichen Glückwunsch!
Code
Raspberry Pi Nodejs-Quellcode
Klonen Sie den Quellcode auf Raspberry Pi und fügen Sie Ihre AWS-IOT-Zertifikatsdateien im Ordner certs hinzu. Sie sollten auch device.js mit Ihrer AWS-Iot-Ding-URL aktualisieren https://github.com/demirhanaydin/waterpi-nodeWaterPi-Webclient
Vergessen Sie nicht, boot.rb mit Ihren Zugangsdaten zu aktualisierenhttps://github.com/demirhanaydin/waterpi-webSchaltpläne
pi-wout-camera.fzz arduino.fzzHerstellungsprozess
- Die MCM-Lösung von ADLINK ermöglicht die Fernüberwachung und -verwaltung
- Raspberry Pi-kontrollierte Aquaponik
- Überwachen der Raumtemperaturen mit Moteinos und Raspberry Pi
- Wetterfernüberwachung mit Raspberry Pi
- Raspberry Pi Temperatur- und Lichtsensor
- Raspberry Pi Sensor- und Aktuatorsteuerung
- Raspberry Pi Home Security System mit Kamera und PIR-Sensor
- GE erwirbt das Fernüberwachungs- und Diagnoseunternehmen SmartSignal
- Cisco stellt IoT-Fernüberwachungslösungen für IT und OT vor
- IoT-basiertes Fernüberwachungssystem für Öl- und Dieseltanks