Taula de continguts:

Hivernacle UCL - IIOT: 11 passos
Hivernacle UCL - IIOT: 11 passos

Vídeo: Hivernacle UCL - IIOT: 11 passos

Vídeo: Hivernacle UCL - IIOT: 11 passos
Vídeo: Tunnel a soffietto 2024, Juliol
Anonim
Hivernacle UCL - IIOT
Hivernacle UCL - IIOT

Aquest projecte és una extensió del nostre projecte anterior amb Greenhouse (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

En aquest projecte hem afegit una base de dades, on registrem totes les nostres dades i les visualitzem amb vermell de node per obtenir una visió general més gran.

El contingut que registrem a la nostra base de dades és Humitat, temperatura i humitat del sòl, que es mostra en diferents diagrames.

A més de dataloggin, també podem controlar quin perfil està actiu a l’Hivernacle i controlar-lo remotament.

Després també podem controlar manualment la bomba i el ventilador.

Pas 1: Guia d'instal·lació

Guia d'instal·lació
Guia d'instal·lació

El primer pas és instal·lar tots els components.

Dins dels claudàtors (), hem llistat on està connectat el component. Per exemple, Arduino està connectat a Raspberry Pi mitjançant un cable USB.

Maquinari utilitzat:

  • Arduino (Raspberry Pi)
  • Raspberry Pi 3 B +
  • Higròmetre del sòl (Arduino)
  • Sensor DHT11 (Arduino)
  • Bomba d'aigua submergible HG-320 (relé)
  • Relleu de 5V (Arduino)
  • Un ventilador d'ordinador (relé)
  • Alimentació de 230V (bomba)

Programari utilitzat:

  • Raspbian (SO per a Raspberry Pi)
  • IDE Arduino
  • Python (Raspberry Pi) - PySerial- MySQLclient
  • Node-Red (Raspberry Pi) - Pythonshell- Summariser- MySQL- Dashboard
  • Servidor MySQL (freemysqlhosting.net)

Primer haureu de connectar els components de maquinari, així que seguiu aquesta guia per construir l’hivernacle: Guia d’instal·lació.

A continuació, haureu d’instal·lar Raspbian OS al vostre Raspberry Pi. Després, haureu d'instal·lar Python i, a continuació, instal·lar les biblioteques Python.

El següent pas és instal·lar Node-Red al Raspberry Pi i, a continuació, anar al gestor de paletes i instal·lar els mòduls indicats anteriorment.

A continuació, aneu a aquest lloc Servidor MySQL gratuït i creeu un servidor MySQL gratuït.

Quan hàgiu acabat tot això, ja podreu transferir l'script python al vostre Raspberry Pi, importar l'script Node-Red i penjar el codi de l'Arduino.

Pas 2: aparador del control

Image
Image

Pas 3: Llista de parts / programari utilitzat al projecte

Hem fet servir la següent tecnologia per fer l’Hivernacle

  • Arduino
  • Raspberry Pi
  • Node-vermell
  • Python
  • PHPMyAdmin

Pas 4: Llista I / 0

Esquema de cablejat
Esquema de cablejat

Pas 5: Esquema de cablejat

Pas 6: el codi Arduino

El codi Arduino funciona imprimint les dades, mesurades pels sensors, a la connexió sèrie on el Raspberry Pi les llegeix i les transfereix a la base de dades.

L'Arduino també té alguns connectors d'entrada digitals connectats al Raspberry Pi que llegeix l'Arduino i si un dels tres es converteix en HIGH, el perfil canviarà a causa d'una sentència IF.

També hem actualitzat el codi per utilitzar Millis en lloc de delay que permet llegir els fons i la resta del codi en lloc d’un interval per l’anterior delay.

Pas 7: Raspberry Pi 3 B +

Raspberry Pi 3 B +
Raspberry Pi 3 B +

Hem utilitzat un Raspberry Pi 3 B + per connectar el nostre Arduino amb Internet i una base de dades MySQL. Això ens va permetre emmagatzemar dades dels nostres sensors i crear una interfície visual per a l'usuari final. Per a la interfície d'usuari hem utilitzat Node-Red amb la paleta Dashboard.

Però abans de poder mostrar les dades dels nostres sensors a Node-Red, necessitàvem una manera de penjar les dades en una base de dades MySQL i, per a això, vam fer un script Python que s’executaria al nostre Raspberry Pi.

Pas 8: Python

Python
Python

L'escriptura Python s'utilitza per rebre dades de la comunicació en sèrie que prové de l'Arduino. El script envia les dades a una base de dades MySQL.

Hem utilitzat dues biblioteques, pyserial i mysqlclient.

Per tant, el primer pas seria descarregar aquestes dues llibreries:

  1. PySerial
  2. MySQLclient

PySerial s’utilitza per recopilar dades de l’Arduino mitjançant comunicació en sèrie.

device = '/ dev / ttyUSB0'

arduino = serial. Serial (dispositiu, 9600)

La primera línia s’utilitza per definir el nostre port COM. Al Raspberry Pi és / dev / ttyUSB0, que fem servir per a l’Arduino. La segona línia és per obrir el port sèrie a l'Arduino. Simplement definim a quin port COM i a quina velocitat s’està executant la connexió.

La resta del codi s’executa en un bucle while.

A continuació, fem servir diversos blocs Try and Except. Primer, el codi intenta executar-se dins del bloc Try, si falla, executa el bloc Except. Però si el bloc Prova funciona bé, no s’executa el bloc Excepte, només executa la resta del codi.

Així, dins dels blocs Try tenim un codi que llegirà la comunicació en sèrie i l’enviarà a la nostra base de dades MySQL.

hygrolist = arduino.readlines (1)

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

Per tant, el codi anterior és per llegir línies a la comunicació en sèrie. El número al final del codi defineix la línia que s’ha llegit a la sèrie. Per tant, aquestes línies es classifiquen en diferents variables.

Quan es reben dades de l’Arduino, hem utilitzat el mòdul mysqlclient per enviar les dades al nostre servidor MySQL.

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

Aquesta línia serveix per connectar-se a la nostra base de dades MySQL. Especifica el servidor, el nom d’usuari, la contrasenya i a quina base de dades s’ha de connectar dins del servidor. Aquí hauríeu d'especificar la connexió al vostre MySQL DB.

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

Així doncs, aquí prenem la nostra connexió de base de dades i fem una consulta SQL. La consulta indica que cal inserir valors dins de la taula "TempHumid" i després a les columnes "temp", "humid" i "hygro". L'última part "(% s,% s,% s)" és el format de cadena i s'utilitza per donar a la base de dades el format que pot llegir.

I tota aquesta acció es posa en un bucle de temps, de manera que continuem rebent dades enviades al servidor MySQL.

Si voleu veure tot el codi, descarregueu l'script python (TempHumid.py).

Pas 9: MySQL

MySQL
MySQL
MySQL
MySQL

Per al servidor MySQL, hem utilitzat un servei gratuït a www.freemysqlhosting.net. Podríem haver creat un servidor localment al Raspberry Pi, però vam anar amb el servei gratuït per connectar-lo completament al núvol / Internet.

Per accedir a MySQL, heu d’anar a phpmyadmin.co i iniciar la sessió amb les credencials del vostre compte freemysqlhosting.

Quan esteu a dins, heu de crear una taula anomenada "TempHumid", dins d'aquesta taula heu de crear 4 columnes anomenades "ID", "temp", "humid" i "hygro". A la primera columna (ID) heu de marcar la casella A_I (Increment automàtic). Això és així perquè la columna ID proporciona a cada conjunt de dades un ID. Totes les columnes següents s'han d'establir com a INT (enter) i definir el valor estàndard a NULL.

Pas 10: node vermell

Node-vermell
Node-vermell
Node-vermell
Node-vermell
Node-vermell
Node-vermell

Al nostre projecte hem utilitzat Node-Red per crear una interfície gràfica. Node-Red s’executa al Raspberry Pi i recopila dades de la nostra base de dades MySQL i mostra aquestes dades amb indicadors en forma de dònut i gràfics gràfics, de manera que l’usuari final pugui supervisar les dades. El més intel·ligent de Node-Red és que es pot visualitzar en qualsevol dispositiu, cosa que significa que es canviarà la mida del lloc per al dispositiu que estigui visualitzant el contingut.

Per instal·lar la nostra programació Node-Red, consulteu el pas 1 i descarregueu el document anomenat "Node-Red.docx". A continuació, copieu i enganxeu el text a Node-Red mitjançant la funció d'importació a l'extrem superior dret.

Després d'això, canvieu la configuració de la base de dades del vostre MySQL DB.

Recomanat: