Inhaltsverzeichnis:
- Schritt 1: Erforderliche Komponenten
- Schritt 2: Sprache & Protokoll
- Schritt 3: Eclipse Mosquitto MQTT Broker
- Schritt 4: Datenfluss im gesamten Projekt
- Schritt 5: Verbindung von Sensoren mit der NodeMCU
- Schritt 6: Anschluss der Tauchwasserpumpe mit dem ESP8266
- Schritt 7: Installieren von Mosquitto Broker & Ausführen des Python-Programms in Raspberry Pi
- Schritt 8: Wie funktioniert MQTT?
- Schritt 9: Programmierung von NodeMCU und ESP8266
- Schritt 10: Entwerfen einer Webseite und Herstellen einer Verbindung mit der SQL-Datenbank
- Schritt 11: Beenden Sie die Arbeit
Video: Automatisierung von Gewächshäusern - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Die Gewächshausautomatisierung ist ein Projekt, bei dem drei Parameter eines Gewächshauses, d. h. Bodenfeuchtigkeit, Temperatur und Luftfeuchtigkeit, vom Benutzer aus der Ferne einfach über einen Webbrowser überwacht werden.
Schritt 1: Erforderliche Komponenten
Einige der erforderlichen Komponenten sind unten aufgeführt
1. Raspberry PI-Modell B
2. NodeMCU-Entwicklungsboard
3. ESP8266 Wifi-Modul
4. Feuchtigkeitssensor
5. DHT11 Temperatur- und Feuchtigkeitssensor
6. 5V Einkanalrelais
7. 5V Tauchwasserpumpe
8. Brotbrett
9. Stromversorgungsmodul für Brotplatinen
Schritt 2: Sprache & Protokoll
- Für die Mikrocontroller wird die C-Sprache verwendet.
- MQTT Messaging: MQTT steht für MQ Telemetry Transport. Es ist ein extrem einfaches und leichtgewichtiges Publish/Subscribe-Messaging-Protokoll, das für eingeschränkte Geräte und Netzwerke mit geringer Bandbreite, hoher Latenz oder unzuverlässigen Netzwerken entwickelt wurde. Die Entwurfsprinzipien bestehen darin, die Anforderungen an die Netzwerkbandbreite und die Geräteressourcen zu minimieren, während gleichzeitig versucht wird, Zuverlässigkeit und ein gewisses Maß an Liefersicherheit zu gewährleisten. Diese Prinzipien erweisen sich auch als ideal für das Protokoll der aufkommenden „Machine-to-Machine“(M2M) oder „Internet of Things“-Welt vernetzter Geräte und für mobile Anwendungen, bei denen Bandbreite und Akkuleistung sehr wichtig sind.
- Das Python-Programm wird zur Automatisierung des Wasserflusses und der Datenbankkonnektivität verwendet.
Schritt 3: Eclipse Mosquitto MQTT Broker
Hier habe ich den Mosquitto MQTT Broker für die einfache Nachrichtenkommunikation zwischen den Knoten verwendet.
Eclipse Mosquitto ist ein Open Source (EPL/EDL lizenziert) Message Broker, der die MQTT-Protokollversionen 5.0, 3.1.1 und 3.1 implementiert. Mosquitto ist leicht und eignet sich für den Einsatz auf allen Geräten, von Einplatinencomputern mit geringem Stromverbrauch bis hin zu vollständigen Servern.
Das MQTT-Protokoll bietet eine einfache Methode zur Durchführung von Messaging unter Verwendung eines Publish/Subscribe-Modells. Dies macht es für das Internet der Dinge geeignet, z. B. mit Sensoren mit geringem Stromverbrauch oder mobilen Geräten wie Telefonen, eingebetteten Computern oder Mikrocontrollern.
Das Mosquitto-Projekt bietet auch eine C-Bibliothek zum Implementieren von MQTT-Clients und die sehr beliebten mosquitto_pub- und mosquitto_sub-Befehlszeilen-MQTT-Clients.
Schritt 4: Datenfluss im gesamten Projekt
Im obigen Bild sind die Knoten
- KnotenMCU
- Himbeer-PI
- ESP8266
NodeMCU ist der Sensorteil des Green House und der ESP8266 ist der Stellteil, der das Wasser liefert, wenn der Boden gemäß den Sensoren Wasser benötigt.
Raspberry PI enthält den Mosquitto Broker und einen Python-Client, der die vom MQTT-Broker kommenden Nachrichten abonniert und die Daten in einem SQL-Server speichert.
Schritt 5: Verbindung von Sensoren mit der NodeMCU
Der Temperatur- und Feuchtigkeitssensor DHT11 und der Wasserfeuchtigkeitssensor können mit 3,3 Volt betrieben werden.
NodeMCU kann nicht mehr als 3,3 Volt liefern. So können die Sensoren direkt mit dem NodeMCU-Mikrocontroller-Board verbunden werden.
Schritt 6: Anschluss der Tauchwasserpumpe mit dem ESP8266
Eine Tauchwasserpumpe wird verwendet, um das Wasser bei Bedarf zu liefern.
Die Wasserpumpe benötigt für ihren Betrieb eine 5 Volt Stromversorgung.
Zum Anschluss des Motors wird ein einkanaliges Relais benötigt. Wenn der GPIO2-Pin des ESP8266 aktiviert wird, schaltet das Relais ein und liefert automatisch das Wasser über die Tauchwasserpumpe.
Hier wird eine externe Stromversorgung für die ESP8266-Platine, das Relais und die Tauchwasserpumpe bereitgestellt.
Meine komplette Hardwareverbindung ist im obigen Bild.
Schritt 7: Installieren von Mosquitto Broker & Ausführen des Python-Programms in Raspberry Pi
Im Folgenden finden Sie die Schritte zur Installation des Mosquitto-Brokers in Raspberry PI
Öffnen Sie das Terminal und geben Sie die folgenden Befehle ein
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients
Es sollte automatisch Mosquitto starten.
Um den Dienst zu stoppen und zu starten, den ich verwenden musste
sudo service stop mücke
sudo service start mosquitto
Die meisten Websites, die ich entdeckt habe, verwenden das Format.
sudo /etc/init.d/mosquitto stop
Schritt 8: Wie funktioniert MQTT?
MQTT ist eines der am häufigsten verwendeten Protokolle in IoT-Projekten. Es steht für Message Queuing Telemetry Transport.
Darüber hinaus ist es als einfaches Messaging-Protokoll konzipiert, das Publish/Subscribe-Operationen verwendet, um Daten zwischen Clients und dem Server auszutauschen. Darüber hinaus machen seine geringe Größe, der geringe Stromverbrauch, die minimierten Datenpakete und die einfache Implementierung das Protokoll ideal für die „Machine-to-Machine“- oder „Internet of Things“-Welt.
Wie jedes andere Internetprotokoll basiert MQTT auf Clients und einem Server. Ebenso ist der Server derjenige, der für die Bearbeitung der Anfragen der Clients zum Empfangen oder Senden von Daten untereinander verantwortlich ist. Der MQTT-Server wird als Broker bezeichnet und die Clients sind einfach die verbundenen Geräte. Also:
* Wenn ein Gerät (ein Client) Daten an den Broker senden möchte, nennen wir diesen Vorgang „Veröffentlichen“.
* Wenn ein Gerät (ein Client) Daten vom Broker erhalten möchte, nennen wir diesen Vorgang „Abonnieren“.
Schritt 9: Programmierung von NodeMCU und ESP8266
Im Folgenden finden Sie den Quellcode für die NodeMCU- und ESP8266-Mikrocontrollerplatine
Schritt 10: Entwerfen einer Webseite und Herstellen einer Verbindung mit der SQL-Datenbank
Die Webseite wurde mit HTML, CSS und PHP entwickelt.
PHP wird verwendet, um die Sensormesswerte aus der Datenbank zu extrahieren und in der HTML-Seite anzuzeigen.
Als Herzstück dieses Projekts wird ein Python-Programm verwendet.
Arbeiten, die das Python-Programm ausführt, sind wie folgt.
- Es abonniert ein Thema, in dem der Sensor die Sensorwerte sendet.
- Es veröffentlicht den Befehl zum Ein-/Ausschalten der Wasserpumpe an den MQTT-Broker.
- Es speichert den Sensormesswert in einer SQL-Datenbank.
Hier ist in meinem Fall das Python-Programm und die SQL-Datenbank in einem Laptop vorhanden. Die Webseite, die über einen lokalen Host ausgeführt wird.
Im Folgenden ist der Quellcode meines Python-Programms.
Schritt 11: Beenden Sie die Arbeit
Im Folgenden sind die Schritte aufgeführt, in denen der Prozess fortgesetzt wird.
- NodeMCU arbeitet als Sensorteil und liest Temperatur, Feuchtigkeit und Bodenfeuchtigkeit.
- Es sendet die Messwerte mit einem Topic "Topic 1" an den MQTT-Broker
- Auf einem Laptop läuft das Python-Programm und es abonniert ein Thema "Topic 1" beim MQTT-Broker.
- Wenn die NodeMCU die Messwerte sendet, sendet der Mosquitto MQTT Broker die Daten sofort an das Python-Programm.
- Das Python-Programm berechnet dann, ob im Gewächshaus Wasser benötigt wird. Dann speichert es die Messwerte in der SQL-Datenbank.
- Wenn Wasser im Green House benötigt wird, dann veröffentlicht das Python-Programm die Wasserpumpen-Ein/Aus-Nachricht an den Mosquitto MQTT-Broker mit einem Thema "Thema 2".
- ESP8266 arbeitet als Aktor. Es abonniert im Topic "Topic 2", in welchem Topic das Python-Programm die Nachricht veröffentlicht. Wenn das Python-Programm eine Nachricht veröffentlicht, wird die Nachricht sofort an den ESP8266 übertragen. Gemäß der Ein-/Aus-Meldung wurde die Tauchwasserpumpe ein- / ausgeschaltet.
- Letzte Phase zur Anzeige der Live-Messwerte auf der Webseite. Die Webseite holt die Daten aus der SQL-Datenbank, in der das Python-Programm die Daten direkt speichert und zeigt die Messwerte auf der Seite an.
Empfohlen:
Löten von oberflächenmontierbaren Komponenten - Lötgrundlagen: 9 Schritte (mit Bildern)
Löten von oberflächenmontierbaren Komponenten | Lötgrundlagen: Bisher habe ich in meiner Lötgrundlagen-Serie genug Grundlagen zum Löten besprochen, damit Sie mit dem Üben beginnen können. In diesem Instructable, was ich besprechen werde, ist etwas fortgeschrittener, aber es sind einige der Grundlagen zum Löten von Surface Mount Compo
Durchlöten von Komponenten - Lötgrundlagen: 8 Schritte (mit Bildern)
Löten von Durchgangslochkomponenten | Lötgrundlagen: In diesem Instructable werde ich einige Grundlagen zum Löten von Durchgangslochkomponenten auf Leiterplatten diskutieren. Ich gehe davon aus, dass Sie bereits die ersten 2 Instructables für meine Lötgrundlagen-Serie ausgecheckt haben. Wenn Sie nicht in meinem In
Anhängen von Google Kalender an Google Sites: 5 Schritte
Anhängen von Google-Kalendern an Google Sites: Dies ist eine Anleitung, die Ihnen beibringt, wie Sie Google-Kalender erstellen, verwenden und bearbeiten und sie dann mithilfe der Freigabefunktionen an eine Google-Site anhängen. Dies kann für viele Menschen von Vorteil sein, da Google Sites verwendet werden kann, um i
So laden Sie Screenshots von GTA 5 (PS3) in soziale Medien hoch – wikiHow
So laden Sie Screenshots von GTA 5 (PS3) in soziale Medien hoch: Wie ich weiß, unterstützt PS3 keine Screenshots auf GTA V. Aber ich habe eine Möglichkeit gefunden, Screenshots zu erstellen, sie auf Ihr Telefon herunterzuladen und auf Instagram zu posten
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": 8 Schritte
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz. Eine für Menschen lesbare Zusammenfassung dieser Lizenz findet sich hier.Was ist Gandalf?Gandalf ist eine Stand-A