Tabla de contenido:

Invernadero UCL - IIOT: 11 pasos
Invernadero UCL - IIOT: 11 pasos

Video: Invernadero UCL - IIOT: 11 pasos

Video: Invernadero UCL - IIOT: 11 pasos
Video: Webinar: Ganadores ODS 12 - Reconocimiento a las Buenas Prácticas de Desarrollo Sostenible 2020 2024, Noviembre
Anonim
UCL - Invernadero IIOT
UCL - Invernadero IIOT

Este proyecto es una extensión de nuestro proyecto anterior con el invernadero (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

En este proyecto agregamos una base de datos, donde registramos todos nuestros datos y luego los visualizamos con node-red para una mayor visión general.

El contenido que registramos en nuestra base de datos es Humedad, Temperatura y humedad del suelo, que se muestra en diferentes diagramas.

Además del registro de datos, también podemos controlar qué perfil está activo en el invernadero y controlarlo de forma remota.

Entonces también podemos controlar la bomba y el ventilador manualmente.

Paso 1: guía de instalación

Guía de instalación
Guía de instalación

El primer paso es instalar todos los componentes diferentes.

Dentro de los corchetes (), hemos enumerado dónde está conectado el componente. Entonces, por ejemplo, Arduino está conectado a Raspberry Pi a través de un cable USB.

Hardware utilizado:

  • Arduino (Raspberry Pi)
  • Frambuesa Pi 3 B +
  • Higrómetro de suelos (Arduino)
  • Sensor DHT11 (Arduino)
  • Bomba de agua sumergible HG-320 (relé)
  • Relé de 5 V (Arduino)
  • Un ventilador de computadora (relé)
  • Fuente de alimentación 230V (Bomba)

Software utilizado:

  • Raspbian (SO para Raspberry Pi)
  • IDE de Arduino
  • Python (Raspberry Pi) - PySerial- MySQLclient
  • Node-Red (Raspberry Pi) - Pythonshell- Summariser- MySQL- Panel de control
  • Servidor MySQL (freemysqlhosting.net)

Primero tendrá que conectar los componentes de hardware, así que siga esta guía para construir el invernadero: Guía de instalación.

Luego, tendrá que instalar Raspbian OS en su Raspberry Pi. Después de eso, tendrá que instalar Python y luego instalar las bibliotecas de Python.

El siguiente paso es instalar Node-Red en la Raspberry Pi y luego navegar hasta el administrador de paletas e instalar los módulos indicados anteriormente.

Luego, vaya a este sitio Free MySQL Server y cree un servidor MySQL gratuito.

Cuando todo esto esté hecho, estará listo para transferir la secuencia de comandos de Python a su Raspberry Pi, importar la secuencia de comandos de Node-Red y cargar el código para Arduino.

Paso 2: demostración de control

Image
Image

Paso 3: Lista de piezas / software utilizados en el proyecto

Hemos utilizado la siguiente tecnología para hacer el invernadero

  • Arduino
  • Frambuesa pi
  • Nodo rojo
  • Pitón
  • PHPMyAdmin

Paso 4: Lista I / 0

Diagrama de cableado
Diagrama de cableado

Paso 5: diagrama de cableado

Paso 6: el código Arduino

El código de Arduino funciona imprimiendo los datos, medidos por los sensores, en la conexión en serie donde la Raspberry Pi los lee y los transfiere a la base de datos.

El Arduino también tiene algunos pines de entrada digitales conectados a la Raspberry Pi que el Arduino lee y si uno de los tres se vuelve ALTO, el perfil cambiará debido a una declaración IF.

También hemos actualizado el código para usar Millis en lugar del retraso que permite que los botones y el resto del código se lean todo el tiempo en lugar de un intervalo por el retraso anterior.

Paso 7: Raspberry Pi 3 B +

Frambuesa Pi 3 B +
Frambuesa Pi 3 B +

Usamos una Raspberry Pi 3 B + para conectar nuestro Arduino con Internet y una base de datos MySQL. Esto nos permitió almacenar datos de nuestros sensores y crear una interfaz visual para el usuario final. Para la interfaz de usuario usamos Node-Red con la paleta Dashboard.

Pero antes de que pudiéramos mostrar los datos de nuestro sensor en Node-Red, necesitábamos una forma de cargar los datos en una base de datos MySQL, y para eso creamos un script de Python que se ejecutaría en nuestra Raspberry Pi.

Paso 8: Python

Pitón
Pitón

La secuencia de comandos de Python se utiliza para recibir datos de la comunicación en serie que proviene de Arduino. Luego, el script envía los datos a una base de datos MySQL.

Usamos dos bibliotecas, pyserial y mysqlclient.

Entonces, el primer paso sería descargar estas dos bibliotecas:

  1. PySerial
  2. MySQLclient

PySerial se utiliza para recopilar datos del Arduino a través de la comunicación en serie.

dispositivo = '/ dev / ttyUSB0'

arduino = serial. Serial (dispositivo, 9600)

La primera línea se utiliza para definir nuestro puerto COM. En Raspberry Pi es / dev / ttyUSB0, que usamos para Arduino. La segunda línea es para abrir el puerto serie del Arduino. Simplemente definimos a qué puerto COM ya qué velocidad se ejecuta la conexión.

El resto del código se ejecuta en un ciclo while.

A continuación, usamos varios bloques Try y Except. Primero, el código intenta ejecutarse dentro del bloque Try, si eso falla, ejecuta el bloque Except. Pero si el bloque Try funciona bien, no ejecuta el bloque Except, solo ejecuta el resto del código.

Entonces, dentro de los bloques Try, tenemos un código que leerá la comunicación en serie y luego la enviará a nuestra base de datos MySQL.

higrolista = arduino.readlines (1)

templist = arduino.readlines (2) humidlist = arduino.readlines (3)

Entonces, el código anterior es para leer líneas en la comunicación en serie. El número al final del código define la línea que se ha leído en la serie. Entonces, estas líneas están categorizadas en diferentes variables.

Cuando se reciben datos del Arduino, usamos el módulo mysqlclient para enviar los datos a nuestro servidor MySQL.

db = _mysql.connect (host = "sql7.freemysqlhosting.net", usuario = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")

Esta línea es para conectarse a nuestra base de datos MySQL. Especifica el servidor, el nombre de usuario, la contraseña y la base de datos a la que debe conectarse dentro del servidor. Aquí debe especificar la conexión a su base de datos MySQL.

db.query ("INSERTINTO` TempHumid` (`temp`,` humid`, `hygro`) VALUES (% s,% s,% s)"% (temp, humid, hygro))

Entonces aquí tomamos nuestra conexión DB y hacemos una consulta SQL. La consulta dice que los valores deben insertarse dentro de la tabla "TempHumid" y luego en las columnas "temp", "humid" e "hygro". La última parte “(% s,% s,% s)” es un formato de cadena y se usa para darle a la base de datos un formato que pueda leer.

Y toda esta acción se pone en un bucle while, para que sigamos recibiendo datos enviados al servidor MySQL.

Si desea ver todo el código, descargue el script de Python (TempHumid.py).

Paso 9: MySQL

MySQL
MySQL
MySQL
MySQL

Para el servidor MySQL, usamos un servicio gratuito en www.freemysqlhosting.net. Podríamos haber creado un servidor localmente en la Raspberry Pi, pero optamos por el servicio gratuito para que esté completamente conectado a la nube / Internet.

Para acceder a su MySQL, debe ir a phpmyadmin.co e iniciar sesión con las credenciales de su cuenta freemysqlhosting.

Cuando estás dentro, tienes que crear una tabla llamada "TempHumid", dentro de esta tabla tienes que crear 4 columnas llamadas, "ID", "temp", "humid" e "hygro". La primera columna (ID) debe marcar la casilla A_I (Incremento automático). Esto es para que la columna ID le dé a cada conjunto de datos una ID. Todas las siguientes columnas deben establecerse como INT (entero) y establecer el valor estándar en NULL.

Paso 10: Node-Red

Nodo rojo
Nodo rojo
Nodo rojo
Nodo rojo
Nodo rojo
Nodo rojo

En nuestro proyecto usamos Node-Red para hacer una interfaz gráfica. Node-Red se ejecuta en Raspberry Pi y recopila datos de nuestra base de datos MySQL y muestra estos datos con indicadores en forma de rosquilla y cuadros gráficos, para que el usuario final pueda monitorear los datos. Lo inteligente de Node-Red es que se puede ver en cualquier dispositivo, lo que significa que se cambiará el tamaño del sitio para el dispositivo dado que está viendo el contenido.

Para instalar nuestra programación Node-Red, mire el Paso 1 y descargue el documento llamado "Node-Red.docx". Luego copie y pegue el texto en Node-Red a través de la función de importación en la esquina superior derecha.

Después de eso, cambie la configuración de la base de datos para su base de datos MySQL.

Recomendado: