Taula de continguts:

Automatització de la casa verda: 11 passos
Automatització de la casa verda: 11 passos

Vídeo: Automatització de la casa verda: 11 passos

Vídeo: Automatització de la casa verda: 11 passos
Vídeo: Madonna - La Isla Bonita (Official Video) 2024, Desembre
Anonim
Automatització de la casa verda
Automatització de la casa verda

L’automatització d’hivernacles és un projecte on l’usuari controla remotament tres paràmetres d’un hivernacle, és a dir, la humitat del sòl, la temperatura i la humitat, mitjançant un navegador web.

Pas 1: components necessaris

Components necessaris
Components necessaris
Components necessaris
Components necessaris
Components necessaris
Components necessaris

A continuació s’enumeren alguns components essencials necessaris

1. Raspberry PI Model B

2. Taula de desenvolupament de NodeMCU

3. Mòdul Wifi ESP8266

4. Sensor d’humitat

5. Sensor de temperatura i humitat DHT11

6. Relé monocanal de 5V

7. Bomba d’aigua submergible de 5V

8. Taula de pa

9. Mòdul de font d'alimentació de la placa de pa

Pas 2: idioma i protocol

Idioma i protocol
Idioma i protocol
Idioma i protocol
Idioma i protocol
Idioma i protocol
Idioma i protocol
  • El llenguatge C s’utilitza per als microcontroladors.
  • Missatgeria MQTT: MQTT significa MQ Telemetry Transport. És un protocol de missatgeria de publicació / subscripció, extremadament senzill i lleuger, dissenyat per a dispositius restringits i xarxes de poca amplada de banda, alta latència o poc fiables. Els principis de disseny són minimitzar l’amplada de banda de xarxa i els requisits de recursos de dispositius, alhora que s’intenta garantir la fiabilitat i un cert grau de garantia del lliurament. Aquests principis també fan que el protocol sigui ideal per al món emergent “màquina a màquina” (M2M) o “Internet de les coses” de dispositius connectats, i per a aplicacions mòbils on l’amplada de banda i l’alimentació de la bateria són excel·lents.
  • El programa Python s'utilitza per automatitzar el flux d'aigua i la connectivitat de bases de dades.

Pas 3: Eclipsi Mosquitto MQTT Broker

Eclipsi Mosquitto MQTT Broker
Eclipsi Mosquitto MQTT Broker

Aquí he utilitzat Mosquitto MQTT Broker per facilitar la comunicació de missatges entre els nodes.

Eclipse Mosquitto és un agent de missatges de codi obert (amb llicència EPL / EDL) que implementa les versions 5.0, 3.1.1 i 3.1 del protocol MQTT. Mosquitto és lleuger i és adequat per a ús en tots els dispositius, des d’ordinadors de placa única de poca potència fins a servidors complets.

El protocol MQTT proporciona un mètode lleuger per dur a terme missatges mitjançant un model de publicació / subscripció. Això el fa adequat per a missatgeries d'Internet de les coses, com ara amb sensors de baixa potència o dispositius mòbils com ara telèfons, ordinadors incrustats o microcontroladors.

El projecte Mosquitto també proporciona una biblioteca C per implementar clients MQTT i els populars clients MQTT de línia d’ordres mosquitto_pub i mosquitto_sub.

Pas 4: flux de dades a tot el projecte

A la imatge anterior hi ha els nodes

  1. NodeMCU
  2. Raspberry PI
  3. ESP8266

NodeMCU és la part de detecció de la Casa Verda i l’ESP8266 és la part d’actuació que subministra l’aigua quan el sòl necessita aigua segons els sensors.

Raspberry PI conté el Mosquitto Broker i un client Python que subscriu els missatges provinents del MQTT Broker i emmagatzema les dades en un servidor SQL.

Pas 5: Connexió de sensors amb el NodeMCU

Connexió de sensors amb el NodeMCU
Connexió de sensors amb el NodeMCU

El sensor de temperatura i humitat DHT11 i el sensor d’humitat de l’aigua poden funcionar a 3,3 volts.

NodeMCU no pot proporcionar més de 3,3 volts. Així, els sensors es poden connectar directament amb la placa de microcontroladors NodeMCU.

Pas 6: Connexió de la bomba d’aigua submergible amb l’ESP8266

Connexió de la bomba d’aigua submergible amb l’ESP8266
Connexió de la bomba d’aigua submergible amb l’ESP8266
Connexió de la bomba d’aigua submergible amb l’ESP8266
Connexió de la bomba d’aigua submergible amb l’ESP8266

S’utilitza una bomba d’aigua submergible per subministrar l’aigua sempre que sigui necessari.

La bomba d'aigua necessita una font d'alimentació de 5 volts per al seu funcionament.

Es necessita un relé d’un sol canal per connectar el motor. Quan s’activa el pin GPIO2 de l’ESP8266, el relé s’encén i subministra automàticament l’aigua mitjançant la bomba d’aigua submergible.

Aquí es subministra font d'alimentació externa a la placa ESP8266, al relé i a la bomba d'aigua submergible.

La meva connexió de maquinari completa es troba a la imatge superior.

Pas 7: Instal·lació de Mosquitto Broker i execució del programa Python a Raspberry Pi

A continuació es detallen els passos per instal·lar el broker Mosquitto a Raspberry PI

Obriu el terminal i escriviu les ordres següents

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

sudo apt-get update

sudo apt-get install mosquitto

sudo apt-get install mosquitto-clients

Hauria d'iniciar automàticament mosquitto.

Per aturar i iniciar el servei que necessitava utilitzar

sudo service stop mosquitto

sudo service start mosquitto

La majoria de llocs que vaig descobrir on feia servir el format.

sudo /etc/init.d/mosquitto stop

Pas 8: Com funciona MQTT?

Com funciona MQTT?
Com funciona MQTT?

MQTT és un dels protocols més utilitzats en els projectes IoT. Significa Transport de telemetría de Message Queueing.

A més, està dissenyat com un protocol de missatgeria lleuger que utilitza operacions de publicació / subscripció per intercanviar dades entre els clients i el servidor. A més, la seva petita mida, el baix consum d’energia, els paquets de dades minimitzats i la facilitat d’implementació fan que el protocol sigui ideal per al món “màquina a màquina” o “Internet de les coses”.

Com qualsevol altre protocol d’Internet, MQTT es basa en clients i un servidor. De la mateixa manera, el servidor és l’encarregat de gestionar les peticions del client de rebre o enviar dades entre si. El servidor MQTT s’anomena broker i els clients són simplement els dispositius connectats.

* Quan un dispositiu (un client) vol enviar dades al corredor, anomenem aquesta operació "publicar".

* Quan un dispositiu (un client) vol rebre dades del corredor, anomenem aquesta operació "subscripció".

Pas 9: programació de NodeMCU i ESP8266

A continuació es mostra el codi font de la placa de microcontroladors NodeMCU i ESP8266

Pas 10: dissenyar una pàgina web i connectar-se a la base de dades SQL

La pàgina web està dissenyada amb llenguatge HTML, CSS i PHP.

PHP s’utilitza per extreure les lectures del sensor de la base de dades i mostrar-les a la pàgina HTML.

Un programa Python s’utilitza com a centre d’aquest projecte.

Les obres que fan el programa Python són les següents.

  1. Subscriu-se a un tema en què el sensor envia les lectures del sensor.
  2. Publica l'ordre d'activació / desactivació de la bomba d'aigua al corredor MQTT.
  3. Emmagatzema la lectura del sensor en una base de dades SQL.

Aquí, en el meu cas, el programa Python i la base de dades SQL estan presents en un ordinador portàtil. La pàgina web que travessa un amfitrió local.

A continuació es mostra el codi font del meu programa Python.

Pas 11: completar el treball

Treball complet
Treball complet

A continuació es mostren els passos en què continua el procés.

  1. NodeMCU funciona com a peça sensible i llegeix la temperatura, la humitat i el nivell d'humitat del sòl.
  2. Envia les lectures al corredor MQTT amb un tema "Tema 1"
  3. En un ordinador portàtil, el programa Python està en execució i se subscriu a un tema "Tema 1" amb l'agent MQTT.
  4. Quan el NodeMCU envia les lectures, el Mosquitto MQTT Broker envia immediatament les dades al programa python.
  5. El programa Python calcula llavors si hi ha aigua necessària a la Casa Verda. A continuació, emmagatzema les lectures a la base de dades SQL.
  6. Si es necessita aigua a la Casa Verda, el programa Python publica el missatge d’activació / desactivació de la bomba d’aigua al corredor Mosquitto MQTT amb un tema "Tema 2"
  7. ESP8266 funciona com a actuador. Es subscriu al tema "Tema 2" en el tema en què el programa Python publica el missatge. Quan el programa Python publica qualsevol missatge, el missatge es transfereix immediatament a l'ESP8266. Segons el missatge d’encès / apagat, activava / apagava la bomba d’aigua submergible.
  8. Última fase per mostrar les lectures en directe a la pàgina web. La pàgina web recupera les dades de la base de dades SQL en què el programa Python emmagatzema les dades directament i mostra les lectures a la pàgina.

Recomanat: