Inhaltsverzeichnis:

Automatisierung von Gewächshäusern - Gunook
Automatisierung von Gewächshäusern - Gunook

Video: Automatisierung von Gewächshäusern - Gunook

Video: Automatisierung von Gewächshäusern - Gunook
Video: Automatische Gartenbewässerung ohne Frischwasseranschluss und Strom - Wasser sparen im Gemüsegarten 2024, November
Anonim
Automatisierung von Gewächshäusern
Automatisierung von Gewächshäusern

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

Erforderliche Komponenten
Erforderliche Komponenten
Erforderliche Komponenten
Erforderliche Komponenten
Erforderliche Komponenten
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

Sprache & Protokoll
Sprache & Protokoll
Sprache & Protokoll
Sprache & Protokoll
Sprache & Protokoll
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

Eclipse Mosquitto MQTT-Broker
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

  1. KnotenMCU
  2. Himbeer-PI
  3. 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

Anbindung von Sensoren an die NodeMCU
Anbindung von Sensoren an die 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

Verbindung der Tauchwasserpumpe mit dem ESP8266
Verbindung der Tauchwasserpumpe mit dem ESP8266
Verbindung der Tauchwasserpumpe mit dem ESP8266
Verbindung 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?

Wie funktioniert MQTT?
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.

  1. Es abonniert ein Thema, in dem der Sensor die Sensorwerte sendet.
  2. Es veröffentlicht den Befehl zum Ein-/Ausschalten der Wasserpumpe an den MQTT-Broker.
  3. 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

Vollständige Arbeit
Vollständige Arbeit

Im Folgenden sind die Schritte aufgeführt, in denen der Prozess fortgesetzt wird.

  1. NodeMCU arbeitet als Sensorteil und liest Temperatur, Feuchtigkeit und Bodenfeuchtigkeit.
  2. Es sendet die Messwerte mit einem Topic "Topic 1" an den MQTT-Broker
  3. Auf einem Laptop läuft das Python-Programm und es abonniert ein Thema "Topic 1" beim MQTT-Broker.
  4. Wenn die NodeMCU die Messwerte sendet, sendet der Mosquitto MQTT Broker die Daten sofort an das Python-Programm.
  5. Das Python-Programm berechnet dann, ob im Gewächshaus Wasser benötigt wird. Dann speichert es die Messwerte in der SQL-Datenbank.
  6. 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".
  7. 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.
  8. 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: