Tabla de contenido:
- Paso 1: componentes necesarios
- Paso 2: idioma y protocolo
- Paso 3: Eclipse Mosquitto MQTT Broker
- Paso 4: flujo de datos en todo el proyecto
- Paso 5: Conexión de sensores con NodeMCU
- Paso 6: Conexión de la bomba de agua sumergible con el ESP8266
- Paso 7: Instalar Mosquitto Broker y ejecutar el programa Python en Raspberry Pi
- Paso 8: ¿Cómo funciona MQTT?
- Paso 9: Programación de NodeMCU y ESP8266
- Paso 10: diseño de una página web y conexión a la base de datos SQL
- Paso 11: Completar el trabajo
Video: Automatización de la casa verde: 11 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
La automatización de invernaderos es un proyecto en el que el usuario supervisa de forma remota tres parámetros de un invernadero, es decir, la humedad del suelo, la temperatura y la humedad, simplemente utilizando un navegador web.
Paso 1: componentes necesarios
Algunos componentes esenciales necesarios se enumeran a continuación
1. Raspberry PI Model B
2. Placa de desarrollo NodeMCU
3. Módulo Wifi ESP8266
4. Sensor de humedad
5. Sensor de temperatura y humedad DHT11
6. Relé de un solo canal de 5 V
7. Bomba de agua sumergible de 5 V
8. Tabla de pan
9. Módulo de fuente de alimentación de tablero de pan
Paso 2: idioma y protocolo
- El lenguaje C se utiliza para los microcontroladores.
- Mensajería MQTT: MQTT son las siglas de MQ Telemetry Transport. Es un protocolo de mensajería de publicación / suscripción, extremadamente simple y liviano, diseñado para dispositivos restringidos y redes de bajo ancho de banda, alta latencia o poco confiables. Los principios de diseño son minimizar el ancho de banda de la red y los requisitos de recursos del dispositivo al mismo tiempo que se intenta garantizar la confiabilidad y cierto grado de garantía de entrega. Estos principios también resultan en hacer que el protocolo sea ideal para el mundo emergente de dispositivos conectados “máquina a máquina” (M2M) o “Internet de las cosas”, y para aplicaciones móviles donde el ancho de banda y la energía de la batería son primordiales.
- El programa Python se utiliza para automatizar el flujo de agua y la conectividad de la base de datos.
Paso 3: Eclipse Mosquitto MQTT Broker
Aquí utilicé Mosquitto MQTT Broker para facilitar la comunicación de mensajes entre los nodos.
Eclipse Mosquitto es un agente de mensajes de código abierto (con licencia EPL / EDL) que implementa las versiones 5.0, 3.1.1 y 3.1 del protocolo MQTT. Mosquitto es liviano y adecuado para su uso en todos los dispositivos, desde computadoras de placa única de baja potencia hasta servidores completos.
El protocolo MQTT proporciona un método ligero para realizar mensajes mediante un modelo de publicación / suscripción. Esto lo hace adecuado para la mensajería de Internet de las cosas, como con sensores de baja potencia o dispositivos móviles como teléfonos, computadoras integradas o microcontroladores.
El proyecto Mosquitto también proporciona una biblioteca C para implementar clientes MQTT y los muy populares clientes MQTT de línea de comando mosquitto_pub y mosquitto_sub.
Paso 4: flujo de datos en todo el proyecto
En la imagen de arriba, los nodos son
- NodeMCU
- Frambuesa PI
- ESP8266
NodeMCU es la parte de detección de Green House y el ESP8266 es la parte de actuación que suministra el agua cuando el suelo necesita agua de acuerdo con los sensores.
Raspberry PI contiene Mosquitto Broker y un cliente Python que suscribe los mensajes provenientes del MQTT Broker y almacena los datos en un servidor SQL.
Paso 5: Conexión de sensores con NodeMCU
El sensor de temperatura y humedad DHT11 y el sensor de humedad del agua pueden funcionar con 3,3 voltios.
NodeMCU no puede proporcionar más de 3,3 voltios. Entonces, los sensores pueden conectarse directamente con la placa del microcontrolador NodeMCU.
Paso 6: Conexión de la bomba de agua sumergible con el ESP8266
Se utiliza una bomba de agua sumergible para suministrar el agua siempre que sea necesario.
La bomba de agua necesita una fuente de alimentación de 5 voltios para su funcionamiento.
Se necesita un relé de un solo canal para conectar el motor. Cuando se activa el pin GPIO2 del ESP8266, el relé se enciende y automáticamente suministra el agua usando la bomba de agua sumergible.
Aquí se proporciona una fuente de alimentación externa a la placa ESP8266, el relé y la bomba de agua sumergible.
Mi conexión de hardware completa está en la imagen de arriba.
Paso 7: Instalar Mosquitto Broker y ejecutar el programa Python en Raspberry Pi
Los siguientes son los pasos para instalar el broker Mosquitto en Raspberry PI
Abra la terminal y escriba los siguientes comandos
sudo apt-add-repository ppa: mosquitto-dev / mosquitto-ppa
sudo apt-get update
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients
Debería iniciar automáticamente mosquitto.
Para detener e iniciar el servicio que necesitaba usar
parada de servicio sudo mosquitto
sudo service start mosquitto
La mayoría de los sitios que descubrí utilizaban el formato.
sudo /etc/init.d/mosquitto stop
Paso 8: ¿Cómo funciona MQTT?
MQTT es uno de los protocolos más utilizados en proyectos de IoT. Significa Transporte de telemetría de Message Queue Server.
Además, está diseñado como un protocolo de mensajería ligero que utiliza operaciones de publicación / suscripción para intercambiar datos entre los clientes y el servidor. Además, su pequeño tamaño, bajo consumo de energía, paquetes de datos minimizados y facilidad de implementación hacen que el protocolo sea ideal para el mundo "máquina a máquina" o "Internet de las cosas".
Como cualquier otro protocolo de Internet, MQTT se basa en clientes y un servidor. Del mismo modo, el servidor es el responsable de manejar las solicitudes del cliente de recibir o enviar datos entre sí. El servidor MQTT se llama broker y los clientes son simplemente los dispositivos conectados.
* Cuando un dispositivo (un cliente) quiere enviar datos al corredor, llamamos a esta operación una "publicación".
* Cuando un dispositivo (un cliente) desea recibir datos del corredor, llamamos a esta operación una "suscripción".
Paso 9: Programación de NodeMCU y ESP8266
A continuación se muestra el código fuente de la placa del microcontrolador NodeMCU y ESP8266
Paso 10: diseño de una página web y conexión a la base de datos SQL
La página web está diseñada en lenguaje HTML, CSS y PHP.
PHP se utiliza para extraer las lecturas del sensor de la base de datos y mostrarlas en la página HTML.
Un programa de Python se utiliza como corazón de este proyecto.
Los trabajos que realiza el programa Python son los siguientes.
- Se suscribe a un tema en el que el sensor envía las lecturas del sensor.
- Publica el comando de encendido / apagado de la bomba de agua al corredor de MQTT.
- Almacena la lectura del sensor en una base de datos SQL.
Aquí, en mi caso, el programa Python y la base de datos SQL están presentes en una computadora portátil. La página web que se ejecuta a través de un host local.
A continuación se muestra el código fuente de mi programa Python.
Paso 11: Completar el trabajo
A continuación se muestran los pasos en los que continúa el proceso.
- NodeMCU funciona como parte sensora y lee la temperatura, la humedad y el nivel de humedad del suelo.
- Envía las lecturas al bróker MQTT con un tema "Tema 1"
- En una computadora portátil, el programa Python se está ejecutando y se suscribe a un tema "Tema 1" con el corredor MQTT.
- Cuando NodeMCU envía las lecturas, Mosquitto MQTT Broker envía inmediatamente los datos al programa Python.
- El programa Python luego calcula si se necesita agua en la Casa Verde. Luego almacena las lecturas en la base de datos SQL.
- Si se necesita agua en la Casa Verde, entonces el programa Python publica un mensaje de encendido / apagado de la bomba de agua al corredor Mosquitto MQTT con un tema "Tema 2"
- ESP8266 funciona como actuador. Se suscribe en el tema "Tema 2" en qué tema el programa Python está publicando el mensaje. Cuando el programa Python publica cualquier mensaje, el mensaje se transfiere inmediatamente al ESP8266. Según el mensaje de encendido / apagado, encendió / apagó la bomba de agua sumergible.
- Última fase para mostrar las lecturas en vivo en la página web. La página web obtiene los datos de la base de datos SQL en la que el programa Python almacena los datos directamente y muestra las lecturas en la página.
Recomendado:
Automatización habladora -- Audio de Arduino -- Automatización controlada por voz -- Módulo Bluetooth HC - 05: 9 pasos (con imágenes)
Automatización habladora || Audio de Arduino || Automatización controlada por voz || HC - 05 Módulo Bluetooth: …………………………. SUSCRÍBETE A mi canal de YouTube para ver más videos …. …. En este video, hemos construido una Automatización Habladora … Cuando envíe un comando de voz a través del móvil, encenderá los dispositivos domésticos y enviará comentarios i
Dado doble verde: 11 pasos
Green Double Die: este proyecto es una construcción de doble matriz con tecnología CMOS desde sus contadores hasta sus puertas. Comenzando por el contador doble 4518, sus puertas OR, AND y NOT 4071, 4081 y 4049 respectivamente, mientras que un temporizador 555 genera una frecuencia variable para completar
Cómo hacer una casa inteligente usando el módulo de relé de control Arduino »Wiki Ùtil Ideas de automatización del hogar: 15 pasos (con imágenes)
Cómo hacer una casa inteligente con el módulo de relé de control Arduino »Wiki Ùtil Ideas de automatización del hogar: en este proyecto de automatización del hogar, diseñaremos un módulo de relé inteligente para el hogar que puede controlar 5 electrodomésticos. Este módulo de relé se puede controlar desde un teléfono móvil o teléfono inteligente, control remoto IR o control remoto de TV, interruptor manual. Este relé inteligente también puede detectar el r
Greentent: la primera mini casa verde portátil del mundo con medición de temperatura y humedad Arduino: 3 pasos
Greentent: la primera mini casa verde portátil del mundo con medición de temperatura y humedad Arduino: se me ocurrió por primera vez la idea de un invernadero portátil que se pueda mover por la noche cuando quería crear una manera de tener un pequeño jardín en una caja con temperatura controlada y humedad. Entonces, es tarde en la noche y quiero ir a una tienda a comprar estos su
Automatización del hogar con Android y Arduino: abra la puerta cuando llegue a casa: 5 pasos
Automatización del hogar con Android y Arduino: abra la puerta cuando llegue a casa: este Instructable trata sobre la configuración de un sistema de automatización del hogar para controlarlo a través de un teléfono inteligente, utilizando una conexión a Internet, de modo que se pueda acceder desde cualquier lugar que lo necesite. Además, realizará determinadas acciones siempre que un criterio sea m