Table des matières:

UCL - IIOT Serre : 11 étapes
UCL - IIOT Serre : 11 étapes

Vidéo: UCL - IIOT Serre : 11 étapes

Vidéo: UCL - IIOT Serre : 11 étapes
Vidéo: Chasing Nightmares | Critical Role | Campaign 3, Episode 11 2024, Novembre
Anonim
UCL - Serre IIOT
UCL - Serre IIOT

Ce projet est une extension de notre projet précédent avec la serre (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

Dans ce projet, nous avons ajouté une base de données, dans laquelle nous enregistrons toutes nos données, puis les visualisons avec node-red pour une meilleure vue d'ensemble.

Le contenu que nous enregistrons dans notre base de données est l'humidité, la température et l'humidité du sol, qui sont représentées dans différents diagrammes.

Outre l'enregistrement des données, nous sommes également en mesure de contrôler quel profil est actif dans la serre et de le contrôler à distance.

Ensuite, nous sommes également en mesure de contrôler la pompe et le ventilateur manuellement.

Étape 1: Guide d'installation

Guide d'installation
Guide d'installation

La première étape consiste à installer tous les différents composants.

À l'intérieur des crochets (), nous avons indiqué où le composant est connecté. Ainsi, par exemple, Arduino est connecté à Raspberry Pi via un câble USB.

Matériel utilisé:

  • Arduino (Framboise Pi)
  • Framboise Pi 3 B+
  • Hygromètre de sol (Arduino)
  • Capteur DHT11 (Arduino)
  • Pompe à eau submersible HG-320 (relais)
  • Relais 5V (Arduino)
  • Un ventilateur d'ordinateur (Relais)
  • Alimentation 230V (Pompe)

Logiciel utilisé:

  • Raspbian (OS pour Raspberry Pi)
  • IDE Arduino
  • Python (Raspberry Pi) - PySerial - Client MySQL
  • Node-Red (Raspberry Pi)- Pythonshell- Summariser- MySQL- Tableau de bord
  • Serveur MySQL (freemysqlhosting.net)

Vous devrez d'abord connecter les composants matériels, alors suivez ce guide pour construire la serre: Guide d'installation.

Ensuite, vous devrez installer Raspbian OS sur votre Raspberry Pi. Après cela, vous devrez installer Python, puis installer les bibliothèques python.

L'étape suivante consiste à installer Node-Red sur le Raspberry Pi, puis à accéder au gestionnaire de palettes et à installer les modules indiqués précédemment.

Ensuite, allez sur ce site Free MySQL Server et créez un serveur MySQL gratuit.

Lorsque tout cela est terminé, vous êtes prêt à transférer le script python sur votre Raspberry Pi, à importer le script Node-Red et à télécharger le code pour l'Arduino.

Étape 2: Présentation du contrôle

Image
Image

Étape 3: Liste des pièces/logiciels utilisés dans le projet

Nous avons utilisé la technologie suivante pour fabriquer la serre

  • Arduino
  • Tarte aux framboises
  • Noeud-Rouge
  • Python
  • PHPMonAdmin

Étape 4: liste I/0

Schéma de câblage
Schéma de câblage

Étape 5: Schéma de câblage

Étape 6: Le code Arduino

Le code Arduino fonctionne en imprimant les données, mesurées par les capteurs, sur la connexion série où elles sont lues par le Raspberry Pi et transférées dans la base de données.

L'Arduino a également des broches d'entrée numériques connectées au Raspberry Pi que l'Arduino lit et si l'un des trois devient HAUT, le profil changera à cause d'une instruction IF.

Nous avons également mis à niveau le code pour utiliser Millis au lieu du délai, ce qui permet de lire les boutons et le reste du code tout le temps au lieu d'un intervalle par l'ancien délai.

Étape 7: Raspberry Pi 3 B+

Framboise Pi 3 B+
Framboise Pi 3 B+

Nous avons utilisé un Raspberry Pi 3 B+ pour connecter notre Arduino à Internet et à une base de données MySQL. Cela nous a permis de stocker les données de nos capteurs et de créer une interface visuelle pour l'utilisateur final. Pour l'interface utilisateur, nous avons utilisé Node-Red avec la palette Dashboard.

Mais avant de pouvoir afficher les données de nos capteurs sur Node-Red, nous avions besoin d'un moyen de télécharger les données sur une base de données MySQL, et pour cela, nous avons créé un script Python qui s'exécuterait sur notre Raspberry Pi.

Étape 8: Python

Python
Python

Le script Python est utilisé pour recevoir les données de la communication série provenant de l'Arduino. Le script envoie ensuite les données à une base de données MySQL.

Nous avons utilisé deux bibliothèques, pyserial et mysqlclient.

La première étape serait donc de télécharger ces deux bibliothèques:

  1. PySérie
  2. client MySQL

PySerial est utilisé pour collecter des données de l'Arduino via une communication série.

périphérique = '/dev/ttyUSB0'

arduino = série. Série (appareil, 9600)

La première ligne est utilisée pour définir notre port COM. Sur le Raspberry Pi c'est /dev/ttyUSB0, que nous utilisons pour l'Arduino. La deuxième ligne sert à ouvrir le port série vers l'Arduino. Nous définissons simplement quel port COM et à quelle vitesse la connexion s'exécute.

Le reste du code s'exécute dans une boucle while.

Ensuite, nous utilisons plusieurs blocs Try et Except. Tout d'abord, le code essaie de s'exécuter dans le bloc Try, si cela échoue, il exécute le bloc Except. Mais si le bloc Try fonctionne correctement, il n'exécute pas le bloc Except, il exécute simplement le reste du code.

Ainsi, à l'intérieur des blocs Try, nous avons un code qui lira la communication série, puis l'enverra à notre base de données MySQL.

hygrolist = arduino.readlines(1)

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

Le code ci-dessus sert donc à lire les lignes de la communication série. Le numéro à la fin du code définit la ligne qui a été lue dans la série. Ces lignes sont donc classées en différentes variables.

Lorsque les données de l'Arduino sont reçues, nous avons utilisé le module mysqlclient pour envoyer les données à notre serveur MySQL.

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

Cette ligne sert à se connecter à notre base de données MySQL. Il spécifie le serveur, le nom d'utilisateur, le mot de passe et à quelle base de données il doit se connecter à l'intérieur du serveur. Ici, vous devez spécifier la connexion à votre base de données MySQL.

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

Nous prenons donc ici notre connexion à la base de données et faisons une requête SQL. La requête dit que les valeurs doivent être insérées à l'intérieur de la table "TempHumid" puis dans les colonnes "temp", "humid" et "hygro". La dernière partie "(%s, %s, %s)" est un formatage de chaîne et est utilisée pour donner à la base de données un format qu'elle peut lire.

Et toute cette action est mise dans une boucle while, de sorte que nous continuons à recevoir des données envoyées au serveur MySQL.

Si vous voulez voir tout le code, téléchargez le script python (TempHumid.py).

Étape 9: MySQL

MySQL
MySQL
MySQL
MySQL

Pour le serveur MySQL, nous avons utilisé un service gratuit sur www.freemysqlhosting.net. Nous aurions pu créer un serveur localement sur le Raspberry Pi, mais nous avons opté pour le service gratuit pour le rendre entièrement connecté au cloud/internet.

Pour accéder à votre MySQL, vous devez vous rendre sur phpmyadmin.co et vous connecter avec les identifiants de votre compte freemysqlhosting.

Lorsque vous êtes à l'intérieur, vous devez créer une table appelée "TempHumid", à l'intérieur de cette table, vous devez créer 4 colonnes appelées "ID", "temp", "humid" et "hygro". La première colonne (ID) vous devez cocher la case A_I (Auto Increment). C'est ainsi que la colonne ID attribue un ID à chaque ensemble de données. Toutes les colonnes suivantes doivent être définies comme INT (entier) et définir la valeur standard sur NULL.

Étape 10: Noeud-Rouge

Noeud-Rouge
Noeud-Rouge
Noeud-Rouge
Noeud-Rouge
Noeud-Rouge
Noeud-Rouge

Dans notre projet, nous avons utilisé Node-Red pour créer une interface graphique. Node-Red fonctionne sur Raspberry Pi et collecte des données à partir de notre base de données MySQL et affiche ces données avec des jauges en forme de beignet et des graphiques, afin que l'utilisateur final puisse surveiller les données. La chose intelligente à propos de Node-Red est qu'il est visible sur n'importe quel appareil, ce qui signifie que le site sera redimensionné pour l'appareil donné qui affiche le contenu.

Pour installer notre programmation Node-Red, regardez à l'étape 1 et téléchargez le document intitulé "Node-Red.docx". Ensuite, copiez et collez le texte dans Node-Red via la fonction d'importation dans le coin supérieur droit.

Après cela, modifiez les paramètres de base de données de votre base de données MySQL.

Conseillé: