Tabla de contenido:

Automatización de la casa verde: 11 pasos
Automatización de la casa verde: 11 pasos

Video: Automatización de la casa verde: 11 pasos

Video: Automatización de la casa verde: 11 pasos
Video: 🚀 Domótica práctica y útil desde 0 con muchos ejemplos prácticos 💪 2024, Mes de julio
Anonim
Automatización de la casa verde
Automatización de la casa verde

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

Componentes requeridos
Componentes requeridos
Componentes requeridos
Componentes requeridos
Componentes requeridos
Componentes requeridos

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

Idioma y protocolo
Idioma y protocolo
Idioma y protocolo
Idioma y protocolo
Idioma y protocolo
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

Agente Eclipse Mosquitto MQTT
Agente Eclipse Mosquitto MQTT

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

  1. NodeMCU
  2. Frambuesa PI
  3. 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

Conexión de sensores con NodeMCU
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

Conexión de la bomba de agua sumergible con el ESP8266
Conexión de la bomba de agua sumergible con el ESP8266
Conexión de la bomba de agua sumergible con el ESP8266
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?

¿Cómo funciona MQTT?
¿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.

  1. Se suscribe a un tema en el que el sensor envía las lecturas del sensor.
  2. Publica el comando de encendido / apagado de la bomba de agua al corredor de MQTT.
  3. 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

Trabajo completo
Trabajo completo

A continuación se muestran los pasos en los que continúa el proceso.

  1. NodeMCU funciona como parte sensora y lee la temperatura, la humedad y el nivel de humedad del suelo.
  2. Envía las lecturas al bróker MQTT con un tema "Tema 1"
  3. En una computadora portátil, el programa Python se está ejecutando y se suscribe a un tema "Tema 1" con el corredor MQTT.
  4. Cuando NodeMCU envía las lecturas, Mosquitto MQTT Broker envía inmediatamente los datos al programa Python.
  5. El programa Python luego calcula si se necesita agua en la Casa Verde. Luego almacena las lecturas en la base de datos SQL.
  6. 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"
  7. 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.
  8. Ú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: