Table des matières:
- Étape 1: Guide d'installation
- Étape 2: Présentation du contrôle
- Étape 3: Liste des pièces/logiciels utilisés dans le projet
- Étape 4: liste I/0
- Étape 5: Schéma de câblage
- Étape 6: Le code Arduino
- Étape 7: Raspberry Pi 3 B+
- Étape 8: Python
- Étape 9: MySQL
- Étape 10: Noeud-Rouge
Vidéo: UCL - IIOT Serre : 11 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
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
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
É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
É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+
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
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:
- PySérie
- 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
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
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é:
Serre d'intérieur automatique basée sur Ikea Socker : 5 étapes
Serre intérieure automatique basée sur Ikea Socker : Salut, c'est mon premier instructable. J'ai beaucoup appris avec cette communauté, et je pense qu'il est temps de retourner mes humbles idées. Je suis désolé pour mon anglais, c'est pauvre, mais je ferai tout ce que je peux. L'idée était de faire une serre de bureau qui me permettrait de faire pousser des graines et
Automatiser une serre avec LoRa ! (Partie 2) -- Ouvre-fenêtre motorisé : 6 étapes (avec photos)
Automatiser une serre avec LoRa ! (Partie 2) || Ouvre-fenêtre motorisé : Dans ce projet, je vais vous montrer comment j'ai créé un ouvre-fenêtre motorisé pour ma serre. Cela signifie que je vais vous montrer quel moteur j'ai utilisé, comment j'ai conçu le système mécanique réel, comment je conduis le moteur et enfin comment j'ai utilisé un Arduino LoRa
Surveillance de serre avec IOT : 5 étapes
Surveillance des serres avec IOT : en matière d'agriculture, la surveillance de la température et de l'amp; l'humidité des plantes est un facteur important pour leur survie. Actuellement, les gens utilisent des thermomètres attachés dans une serre pour que les agriculteurs puissent mesurer la température. Cependant, cette application manuelle
Greentent - La première mini serre portable au monde avec mesure de la température et de l'humidité Arduino : 3 étapes
Greentent - La première mini serre portable au monde avec mesure de la température et de l'humidité Arduino : j'ai d'abord eu l'idée d'une serre portable que vous pouvez déplacer la nuit lorsque je voulais créer un petit jardin dans une boîte avec température surveillée et l'humidité. Donc, il est tard le soir et je veux aller dans un magasin pour acheter ces su
Serre impressionnante avec arrosage automatique, connexion Internet et bien plus encore : 7 étapes (avec photos)
Serre impressionnante avec arrosage automatique, connexion Internet et bien plus encore : bienvenue dans ce Instructables. Début mars, j'étais dans une jardinerie et j'ai vu des serres. Et comme je voulais faire un projet avec des plantes et de l'électronique depuis longtemps déjà, je me suis lancé et j'en ai acheté un : https://www.instagram.com/p