Inhoudsopgave:

Green House-automatisering: 11 stappen
Green House-automatisering: 11 stappen

Video: Green House-automatisering: 11 stappen

Video: Green House-automatisering: 11 stappen
Video: Bro’s hacking life 😭🤣 2024, Juli-
Anonim
Kassenautomatisering
Kassenautomatisering

Kasautomatisering is een project waarbij drie parameters van een kas, namelijk bodemvocht, temperatuur en vochtigheid, door de gebruiker op afstand worden gecontroleerd door simpelweg een webbrowser te gebruiken.

Stap 1: Vereiste componenten

Vereiste componenten
Vereiste componenten
Vereiste componenten
Vereiste componenten
Vereiste componenten
Vereiste componenten

Enkele essentiële componenten die vereist zijn, worden hieronder vermeld:

1. Raspberry PI-model B

2. NodeMCU-ontwikkelbord

3. ESP8266 Wifi-module

4. Vochtsensor

5. DHT11 temperatuur- en vochtigheidssensor

6. 5V enkelkanaals relais

7. 5V onderwaterpomp

8. Broodplank

9. Broodplank voedingsmodule

Stap 2: Taal & Protocol

Taal & Protocol
Taal & Protocol
Taal & Protocol
Taal & Protocol
Taal & Protocol
Taal & Protocol
  • C Taal wordt gebruikt voor de microcontrollers.
  • MQTT Messaging: MQTT staat voor MQ Telemetry Transport. Het is een uiterst eenvoudig en lichtgewicht berichtenprotocol voor publiceren/abonneren, ontworpen voor beperkte apparaten en netwerken met lage bandbreedte, hoge latentie of onbetrouwbare netwerken. De ontwerpprincipes zijn om de netwerkbandbreedte en de vereisten voor apparaatbronnen te minimaliseren en tegelijkertijd te proberen de betrouwbaarheid en een zekere mate van leveringszekerheid te garanderen. Deze principes blijken het protocol ook ideaal te maken voor de opkomende "machine-to-machine" (M2M) of "Internet of Things"-wereld van verbonden apparaten, en voor mobiele toepassingen waar bandbreedte en batterijvermogen een premie zijn.
  • Python-programma wordt gebruikt voor het automatiseren van de waterstroom en databaseconnectiviteit.

Stap 3: Eclipse Mosquitto MQTT Broker

Eclipse Mosquitto MQTT Broker
Eclipse Mosquitto MQTT Broker

Hier gebruikte ik de Mosquitto MQTT Broker voor de gemakkelijke berichtcommunicatie tussen de knooppunten.

Eclipse Mosquitto is een open source (EPL/EDL gelicentieerde) berichtenmakelaar die de MQTT-protocolversies 5.0, 3.1.1 en 3.1 implementeert. Mosquitto is lichtgewicht en geschikt voor gebruik op alle apparaten, van low power single board computers tot volledige servers.

Het MQTT-protocol biedt een lichtgewicht methode om berichten uit te voeren met behulp van een publish/subscribe-model. Dit maakt het geschikt voor Internet of Things-berichten zoals met low power sensoren of mobiele apparaten zoals telefoons, embedded computers of microcontrollers.

Het Mosquitto-project biedt ook een C-bibliotheek voor het implementeren van MQTT-clients, en de zeer populaire mosquitto_pub en mosquitto_sub opdrachtregel MQTT-clients.

Stap 4: Gegevensstroom in het hele project

In de bovenstaande afbeelding zijn de knooppunten:

  1. KnooppuntMCU
  2. Framboos PI
  3. ESP8266

NodeMCU is het sensorgedeelte van het Green House en de ESP8266 is het aandrijfgedeelte dat het water levert wanneer de grond water nodig heeft volgens de sensoren.

Raspberry PI bevat de Mosquitto Broker en een Python-client die de berichten van de MQTT Broker onderschrijft en de gegevens opslaat in een SQL-server.

Stap 5: Aansluiting van sensoren met de NodeMCU

Aansluiting van sensoren met de NodeMCU
Aansluiting van sensoren met de NodeMCU

De DHT11 temperatuur- en vochtigheidssensor en de watervochtigheidssensor kunnen werken op 3,3 volt.

NodeMCU kan niet meer dan 3,3 volt leveren. De sensoren kunnen dus rechtstreeks worden aangesloten op het NodeMCU-microcontrollerbord.

Stap 6: Aansluiting van de dompelpomp met de ESP8266

Aansluiting van de dompelpomp met de ESP8266
Aansluiting van de dompelpomp met de ESP8266
Aansluiting van de dompelpomp met de ESP8266
Aansluiting van de dompelpomp met de ESP8266

Een dompelpomp wordt gebruikt om het water te leveren wanneer dat nodig is.

Waterpomp heeft 5 volt voeding nodig voor zijn werking.

Een enkelkanaals relais is nodig om de motor aan te sluiten. Wanneer de GPIO2-pin van de ESP8266 wordt geactiveerd, wordt het relais ingeschakeld en levert het automatisch water met behulp van de dompelpomp.

Hier wordt externe voeding geleverd aan ESP8266-bord, relais en de dompelpomp.

Mijn volledige hardwareverbinding staat in bovenstaande afbeelding.

Stap 7: Mosquitto Broker installeren en Python-programma uitvoeren in Raspberry Pi

Hieronder volgen de stappen voor het installeren van de Mosquitto-makelaar in Raspberry PI

Open de terminal en typ de volgende opdrachten:

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa

sudo apt-get update

sudo apt-get install mug

sudo apt-get install mug-clients

Het zou automatisch de mug moeten starten.

De service die ik moest gebruiken stoppen en starten

sudo service stop mug

sudo service start mug

De meeste sites die ik ontdekte, gebruikten het formaat.

sudo /etc/init.d/mosquitto stop

Stap 8: Hoe MQTT werkt?

Hoe MQTT werkt?
Hoe MQTT werkt?

MQTT is een van de meest gebruikte protocollen in IoT-projecten. Het staat voor Message Queuing Telemetry Transport.

Bovendien is het ontworpen als een lichtgewicht berichtenprotocol dat gebruikmaakt van publicatie-/abonneerbewerkingen om gegevens uit te wisselen tussen clients en de server. Bovendien maken het kleine formaat, het lage stroomverbruik, de minimale datapakketten en het gemak van implementatie het protocol ideaal voor de "machine-to-machine" of "Internet of Things"-wereld.

Net als elk ander internetprotocol is MQTT gebaseerd op clients en een server. Evenzo is de server de man die verantwoordelijk is voor het afhandelen van de verzoeken van de klant om gegevens tussen elkaar te ontvangen of te verzenden. De MQTT-server wordt een broker genoemd en de clients zijn gewoon de aangesloten apparaten. Dus:

* Wanneer een apparaat (een client) gegevens naar de broker wil sturen, noemen we deze bewerking een "publiceren".

* Wanneer een apparaat (een klant) gegevens van de broker wil ontvangen, noemen we deze handeling een “subscribe”.

Stap 9: Programmeren van NodeMCU en ESP8266

Hieronder vindt u de broncode voor NodeMCU en ESP8266 Microcontroller-kaart:

Stap 10: Een webpagina ontwerpen en verbinding maken met de SQL-database

Webpagina is ontworpen met behulp van HTML, CSS en PHP-taal.

PHP wordt gebruikt om de sensormetingen uit de database te extraheren en op de HTML-pagina weer te geven.

Een python-programma wordt gebruikt als hart van dit project.

Werken die het python-programma doet, zijn als volgt.

  1. Het abonneert zich op een onderwerp waarin de sensor de sensormetingen verzendt.
  2. Het publiceert de opdracht waterpomp aan/uit naar de MQTT-makelaar.
  3. Het slaat de sensoruitlezing op in een SQL-database.

Hier is in mijn geval het python-programma en de SQL-database aanwezig in een laptop. De webpagina die via een lokale host loopt.

Hieronder volgt de broncode van mijn python-programma.

Stap 11: Voltooi het werken

Voltooi het werken
Voltooi het werken

Hieronder volgen de stappen waarin het proces verloopt.

  1. NodeMCU werkt als detectiegedeelte en leest de temperatuur, vochtigheid en het bodemvochtgehalte.
  2. Het stuurt de metingen naar de MQTT-makelaar met een onderwerp "Onderwerp 1"
  3. Op een laptop draait het python-programma en schrijft het zich in voor een onderwerp "Topic 1" met de MQTT-broker.
  4. Wanneer de NodeMCU de metingen verzendt, stuurt de Mosquitto MQTT Broker de gegevens onmiddellijk naar het python-programma.
  5. Python-programma berekent vervolgens of er water nodig is in het Groene Huis. Vervolgens slaat het de metingen op in de SQL-database.
  6. Als er water nodig is in het Groene Huis, publiceert het python-programma een aan/uit-bericht van de waterpomp naar de Mosquitto MQTT-makelaar met een onderwerp "Onderwerp 2"
  7. ESP8266 werkt als een actuator. Het schrijft zich in in het onderwerp "Topic 2" in welk onderwerp het python-programma het bericht publiceert. Wanneer het python-programma een bericht publiceert, wordt het bericht onmiddellijk overgebracht naar de ESP8266. Volgens het aan/uit-bericht heeft het de dompelpomp aan/uitgezet.
  8. Laatste fase om de live metingen op de webpagina weer te geven. De webpagina haalt de gegevens op uit de SQL-database waarin het python-programma de gegevens direct opslaat en geeft de meetwaarden op de pagina weer.

Aanbevolen: