Un total de 4 pages a été trouvé avec le mot clé NodeMCU.
Jardin arômatique d'intérieur
Dans le cadre du projet Family Connection 2021, accompagné par le centre ressource Zoomacom, un groupe de jeunes de saint Jean Bonnefond a souhaité confectionner un jardin d'intérieur pour plantes aromatiques. Ils souhaitent qu'une carte Arduino gère le déclenchement automatique de l'arrosage et de la lumière de croissance des plantes.
Voici le projet Herb Box qu'ils ont voulu confectionner avec l'appui d'OpenFactory.
La première étape sera de réaliser un sytème d'arrosage automatique sans le site internet et l'API. Nous proposerons une alternative qui permet de réduire le cout de l'électronique et de simplifier la connexion via wifi en utilisant un nodeMCU plutot qu'une carte arduino et un ESP01 (pour lequel il faut un convertisseur de tension à 3,3V en plus).
Dans un second temps, si nous disposons de suffisament de temps, on essayera d'utiliser Thingspeak qui est une alternative à AWS Lambda d'Amazon pour pouvoir visualiser les données en ligne.
En effectuant un peu de veille sur les projets de jardin d'intérieur permettant de réaliser un arrosage automatique des plantes, j'ai découvert le projet ArduFarmBot2 (version francaise).
Pour réaliser le projet dans le cadre de Family Connection, nous allons faire au niveau de l'électronique un mixte entre ces deux projets. En gardant les meilleurs aspects de chaque projet (projet et outils open source, qualité des composants utilisés...).
.... ( à finaliser une fois le prototype électronique monté et testé)
La programmation Arduino
Librairie à installer pour l'ecran OLED :
ACROBOTIC_SSD1306
et/ou AI_ArduLib_SSD1306 via son fichier zip sur github
Penser à redémarrer l'IDE après l'ajout d'une librairie et de modifier l'include avec <ACROBOTIC_SSD1306.h> et non comme ecrit dans l'exemple "src/ACROBOTIC_SSD1306.h"
Librairie pour le DHT 11
le fichier github d'Adafruit pour les capteurs DHT/
Lors de l'installation de la librairier via l'IDE, DHT Adafruit, il faut répondre installer toutes les librairies.
Il faut egalement installer la librairie Adafruit Unified Sensor
Librairie pour DS18B20
Pour utiliser ce capteur vous devez installer ses deux librairies :
Vous trouverez le fichier zip de la librairie Onewire
Il faut ensuite installer la librairie Dallas Température
Avant de passer au test en mode Controle Local, penser à installer la librairie Simple Timer
Librairie Blynk
Si on veut utiliser l'application Blynk pour controler l'arrosage et visualiser les données à distances, il faut :
- télécharger l'application Blynk sur son smartphone
- installer les librairies Blynk dans son IDE Arduino
- Redémarrer l'IDE Arduino
Quand j'ai voulu téléversé le code d'ArduFarmBot2 dans mon nodeMCU, j'ai eu une erreur de debug SSL (Exemple d'erreur : /home/mike/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/ESP8266WiFi/src/CertStoreBearSSL.cpp: In static member function 'static const br_x509_trust_anchor* BearSSL::CertStore::findHashedTA(void*, void*, size_t)':
/home/mike/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/ESP8266WiFi/src/CertStoreBearSSL.cpp:25:31: error: 'DEBUG_ESP_PORT' was not declared in this scope
#define DEBUG_BSSL(fmt, ...)
Pour la résoudre :
Outils> Débogage est défini sur "Désactivé". Pour résoudre ce problème, vous devez soit définir Outils> Port de débogage sur autre chose que "Désactivé", ou définir Outils> Niveau de débogage sur "Aucun". J'ai sélectionné aucun débug pour que cela fonctionne ! J'ai également testé l'autre et cela téléversait également mon code.
J'ai également eu des conflits avec des doublons dans mes librairies du coup le code ne pouvait pas utiliser certaines variables déclarées (j'ai retiré les librairies suivantes : "Adafruit Sensor Master", "DHT-sensor-library-master" et "ACROBOTIC_SSD1306")
Penser à modifier la valeur du capteur DHT dans stationDefines.h car j'utilises un DHT11 et dans l'exemple ils utilisent un DHT22
Wi-Filles est un programme de sensibilisation des jeunes filles aux métiers et aux compétences du numérique. Les jeunes volontaires suivent des ateliers pendant plusieurs mois, les mercredis après-midi, et pendant les vacances scolaires, en partenariat avec de nombreux·euses professionnel·le·s du numérique. Plus d'infos: Avec la promo 2021 des Wi-Filles de la Loire (article sur le blog de Zoomacom)
Un des deux groupes, accompagné au FabLab par Zoomacom en 2021, a choisi de créer une enceinte mp3 (fichiers sur carte SD, pilotable en wifi depuis un smartphone).
- Ajouter la bibliothèque des cartes ESP8266 board dans Arduino IDE (http://arduino.esp8266.com/stable/package_esp8266com_index.json)
- Installer le paquet "esp8266 by ESP8266 Community" via le gestionnaire de cartes
- Utiliser la carte nommée "NodeMCU 1.0 (ESP-12E Module)" pendant l'envoi du code
Bibliothèque(s) à installer :
DFPlayerMini_Fast : Disponible dans le gestionnaire de bibliothèques Arduino ou ICI
Le nom du WiFi est EnceinteWiFilleX(où X est le numéro de l'enceinte)
Le mot de passe du WiFi est wifilles (Si il y a un message indiquant qu'il n'y a pas d'accès internet, c'est normal, il faut lui dire de rester connecté)
2. Ouvrir un navigateur web (Firefox, Chrome ou autre)
HerbBox est un système automatique permettant de contrôler la temperature et l'humidité de 3 plantes.
Ce système utilise deux microcontrolleurs discutant ensemble, un Arduino Nano et un NodeMCU v3. (Cela est dû au fait que nous les avions en stock, cette solution était donc plus pratique pour nous que d'acheter un microcontrolleur plus gros).
Cette documentation est une traduction de celle disponible avec le code source du projet, elle fait par ailleurs référence au code du projet à plusieurs endroits. Code disponible ICI
Contexte
Dans le cadre du projet Family Connection 2021, accompagné par le centre ressource Zoomacom, un groupe de jeunes de saint Jean Bonnefond a souhaité confectionner un jardin d'intérieur pour plantes aromatiques. Ils souhaitent qu'une carte Arduino gère le déclenchement automatique de l'arrosage et de la lumière de croissance des plantes. La première version du projet est documentée ici: HerbBox
Schematiques
Diagramme de principe
Schéma électronique
Liste du matériel
Nom
Description
Quantité
Prix Unitaire
Prix
Lolin NodeMCU v3
Microcontrolleur principal
1
7€
7€
Arduino Nano
Microcontrolleur secondaire
1
5€
5€
Arduino relay shield
Carte 4 relais
1
20€
20€
DHT11
Capteur de temperature et d'humidité
1
3€
3€
DS18B20
Capteur de temperature
3
4€
12€
Capacitive moisture sensor v1.2
Capteur d'humidité du sol
3
3€
9€
SSD1306
Ecran OLED 128x64 i2c
1
2€
2€
Bouton poussoir
Pour le contrôle manuel
3
1€
3€
Résistance 220 Ω
Pour le diviseur de tension
1
0.1€
0.1€
Résistance 430 Ω
Pour le diviseur de tension
1
0.1€
0.1€
Résistance 4.7 kΩ
Pour le bus OneWire
1
0.1€
0.1€
Pompe 12V
Pompe utilisée pour arroser les plantes
3
10€
30€
Lampe 220V pour la pousse des plantes
Lampe utilisée pour illuminer les plantes (Emet uniquement dans les spectres bleu et rouge)
1
5€
5€
Total
~96€
Note : Les prix sont des approximations de ce que vous pouvez trouver facilement en ligne, vous pouvez trouver ces composants pour un prix plus faible ou plus élevé en fonction des fournisseurs. Ils sont seulement ici pour vous donner une idée du prix du projet.
Note 2 : L'Arduino relay shield peut être remplacé par une autre carte de relais ou 4 relais séparés ce qui coutera sans doute moins cher.
- Ajouter la bibliothèque des cartes ESP8266 board dans Arduino IDE (http://arduino.esp8266.com/stable/package_esp8266com_index.json)
- Installer le paquet "esp8266 by ESP8266 Community" via le gestionnaire de cartes
- Utiliser la carte nommée "NodeMCU 1.0 (ESP-12E Module)" pendant l'envoi du code
Bibliothèques arduino requises
- DallasTemperature (Version installable via Arduino IDE)
- OneWire (Version installable via Arduino IDE)
- SimpleTimer (Cette version particulière est nécessaire : https://github.com/schinken/SimpleTimer)
- Utiliser la carte nommée "Arduino Nano" pendant l'envoi du code
Bibliothèques arduino requises
- ACROBOTIC SSD1306 (Version installable via Arduino IDE)
- Blynk (Version installable via Arduino IDE)
- DHT sensor library (Version installable via Arduino IDE)
- SimpleTimer (Cette version particulière est nécessaire : https://github.com/schinken/SimpleTimer)
Capteurs / Actionneurs reliés à la carte
- DHT11
- 3x bouton poussoir
- Écran OLED SSD1306
Blynk
Nous utilisons une application nommée Blynk pour afficher les valeurs des capteurs sur un smartphone.
Configuration de l'application
Pour connecter le NodeMCU à l'application Blynk, vous devrez générer un token dans l'application et le copier dans la constante BLYNK_TOKEN dans le fichier src/NodeMCU/constants.h . Vous devrez également connecter le NodeMCU à une connection WiFi via les constantes WIFI_SSID (Nom du WiFi) et WIFI_PASSWD (Mot de passe du WiFi).
Interface exposée
Le NodeMCU envoie les valeurs à Blynk sur les lignes virtuelles suivantes :
- V10 : Température de l'air
- V11 : Humidité de l'air
- V12 : Température du sol de la plante 1
- V13 : Humidité du sol de la plante 1
- V14 : Temperature du sol de la plante 2
- V15 : Humidité du sol de la plante 2
- V16 : Température du sol de la plante 3
- V17 : Humidité du sol de la plante 3
Il contrôle également 4 LEDs pour refleter les états des relais :
- V0 : Pompe 1
- V1 : Pompe 2
- V2 : Pompe 3
- V3 : Lampe
Exemple de configuration
Voici comment nous avons configuré Blynk. En haut, nous avons deux "Value Display" affichant les valeurs des capteurs de l'air, au milieu, nous avons six "Value Display" pour afficher les valeurs des capteurs des plantes et en bas, nous avons 4 "LED" pour afficher les états des pompes et de la lampe.
Contrôle manuel
Écran
L'écran OLED est utilisé pour afficher les valeurs des capteurs des trois plantes.
L'écran à 4 états différents (éteins, plante 1, plante 2 et plante 3).
Dans chaque état "plante", vous trouverez les valeurs suivantes :
Numéro de la plante
Température de l'air (Commune à toutes les plantes)
Humidité de l'air (Commune à toutes les plantes)
Temperature du sol (Spécifique à chaque plante)
Humidité du sol (Spécifique à chaque plante)
État de la pompe (Spécifique à chaque plante)
État de la lampe (Commune à chaque plante)
Bouttons
Le système comporte 3 boutons :
Bouton "capteurs" (Pin D6) : Utilisé pour changer l'état de l'écran (éteins -> plante 1 -> plante 2 -> plante 3 -> éteins -> ...)
Bouton "pompe" (Pin D4) : Change l'état de la pompe de la plante courante
Bouton "lampe" (Pin D5) : Change l'état de la lampe
Paramètres de contrôle automatique
Tout les paramètres de contrôle automatique sont stockés dans le fichier src/NodeMCU/constants.h . Cela signifie que le programme du NodeMCU doit être réuploadé quand vous voulez faire des changements dans les paramètres.
Paramètres du sol
- PLANT1_DRY_SOIL: Valeur de l'humidité du sol en dessous de laquelle le sol est considéré sec. Valeur entre 0% et 100% (Défaut : 66).
- PLANT1_WET_SOIL: Valeur de l'humidité du sol au dessus de laquelle le sol est considéré humide. Valeur entre 0% et 100% (Défaut : 85).
- PLANT1_TIME_PUMP_ON: Durée pendant laquelle la pompe sera active pour arroser la plante si le sol est sec. Valeur en ms avec un L à la fin (Défaut : 15000L).
Pour les plantes 2 et 3, utilisez les paramètres avec un 2 ou un 3 à la place du 1.
Paramètres de l'air
- COLD_TEMP: Valeur de la temperature de l'air en dessous de laquelle l'air est considéré froid. Valeur en degré Celsius (Défaut : 12).
- HOT_TEMP: Valeur de la temperature de l'air au dessus de laquelle l'air est considéré chaud. Valeur en degré Celsius (Défaut : 22).
- TIME_LAMP_ON: Durée pendant laquelle la lampe sera active pour réchauffer les plantes si la température est froide. Valeur en ms avec un L à la fin (Défaut : 15000L).
Comment le construire
La manière la plus simple de construire le système est d'ajouter les différents composants un par un jusqu'à ce que tout soit connecté. Nous allons d'abord nous concentrer sur l'Arduino Nano puis sur le NodeMCU.
Chaque partie ajoute un nouveau composant mais même si les composants déjà placés n'apparaissent pas sur le dessin, vous n'avez pas besoin de les enlever.
Arduino Nano
DS18B20s
D'abord, connectez les trois capteurs et la résistance à l'Arduino Nano comme montré sur le dessin :
Puis testez les capteurs avec le code présent dans le dossier src/Tests/ArduinoNano/DS18B20s et regardez les valeurs affichées sur le moniteur Série (Ctrl+Shift+M).
Vous devriez avoir quelque chose comme ça :
Sensor 1: 22.1 C
Sensor 2: 22.2 C
Sensor 3: 22.1 C
Capacitive Soil Moisture Sensors
D'abord, connectez les trois capteurs à l'Arduino Nano comme montré sur le dessin :
Puis testez les capteurs avec le code présent dans le dossier src/Tests/ArduinoNano/SoilMoistureSensors et regardez les valeurs affichées sur le moniteur Série (Ctrl+Shift+M).
Vous devriez avoir quelque chose comme ça :
Sensor 1: 65.2%
Sensor 2: 65.3%
Sensor 3: 65.3%
Relays
D'abord, connectez les quatre relais à l'Arduino Nano comme montré sur le dessin :
Puis testez les relais avec le code présent dans le dossier src/Tests/ArduinoNano/Relays.
Les relais vont être alimentés un par un pendant une seconde puis attendre 2 secondes avant de recommencer.
NodeMCU
DHT11
D'abord, connectez le capteur au NodeMCU comme montré sur le dessin :
Puis testez le capteur avec le code présent dans le dossier src/Tests/NodeMCU/DHT11 et regardez les valeurs affichées sur le moniteur Série (Ctrl+Shift+M).
Vous devriez avoir quelque chose comme ça :
Temperature : 22.1 C
Humidity : 65.1%
Push Buttons
D'abord, connectez les trois boutons au NodeMCU comme montré sur le dessin :
Puis testez les boutons avec le code présent dans le dossier src/Tests/NodeMCU/Buttons et regardez les valeurs affichées sur le moniteur Série (Ctrl+Shift+M) en appuyant dessus.
Vous devriez avoir quelque chose comme ça (en fonction des boutons appuyés):
D'abord, connectez l'écran au NodeMCU comme montré sur le dessin :
Puis testez les boutons avec le code présent dans le dossier src/Tests/NodeMCU/OLED et du texte devrait apparaitre à l'écran pendant 5s puis un nombre se mettra à jour rapidement.
Blynk
D'abord construisez l'interface de Blynk sur l'application comme expliqué plus haut puis envoyez le code présent dans le dossier src/Tests/NodeMCU/Blynk dans le NodeMCU (n'oubliez pas de mettre a jour les paramètres WiFi et Blynk au début du code) et vous devriez obtenir des values aléatoires dans l'application.
UART
Une fois que tout fonctionne correctement, envoyez le code principal dans chaque microcontrolleur (src/ArduinoNano et src/NodeMCU (n'oubliez pas les paramètres WiFi et Blynk dans constants.h)) et connectez les ensemble comme montré sur le dessin :
Attention : Ne connectez pas de cable USB à l'Arduino Nano, tout est alimenté par le NodeMCU !
Quelques secondes après avoir alimenté le système complet, vous devriez obtenir les valeurs de tous les capteurs sur l'écran (appuyez sur le bouton "capteurs" pour naviguer dans les menus) et le système de contrôle automatique devrait démarrer également.
Code de test
Plusieurs fichiers de code sont disponibles dans le dossier src/Tests pour tester les différentes parties du système. Pour plus d'informations, voir les instructions de construction.
Ce système permet de mesurer les taux de fumées, monoxydes de carbone et dioxyde de carbone dans l'air ainsi que la température et l'humidité.
Cela permet, par exemple, de s'assurer de ma qualité de l'air dans les locaux d'OpenFactory.
Les données sont transimise sur la plateforme ThingSpeak afin de pouvoir visualiser leur évolution dans le temps. Un système d'alertes sur téléphone est également mis en place grâce à l'application IFTTT en plus des alertes visuelles et sonores produitent par le système.
Contexte
Ce projet a été réalisé dans le cadre du stage d'Élisa, une étudiante en BTS Conception et Industrialisation en Microtechniques, à OpenFactory en juin/juillet 2021.
Il existe différentes versions des ESP32 WROOM avec des nombres de pins différents (30, 36, 38)
** Nous utilisons une puce (Cree XLamp XM-L) incluant 4 LEDs (Rouge, vert, bleu et blanc), elle peut être remplacée par des LEDs de puissance indépendantes.
- Ajouter la bibliothèque des cartes ESP8266 board dans Arduino IDE (http://arduino.esp8266.com/stable/package_esp8266com_index.json)
- Installer le paquet "esp8266 by ESP8266 Community" via le gestionnaire de cartes
- Utiliser la carte nommée "NodeMCU 1.0 (ESP-12E Module)" pendant l'envoi du code
Bibliothèques arduino requises
- DallasTemperature (Version installable via Arduino IDE)
- ThingSpeak (Version installable via Arduino IDE)
- MQUnifiedSensor (Version installable via Arduino IDE)
- ESP32 AnalogWrite (Version installable via Arduino IDE)
ThingSpeak est une plateforme d'analyse IoT qui vous permet d'agréger, de visualiser et d'analyser des flux de données en direct dans le cloud.
Nous utilisons cette plateforme pour visualiser l'évolution des taux de gaz, de la température et de l'humidité mesurée par le système au cours du temps.
IFTTT est un service web permettant à ses utilisateurs de créer des chaînes d'instruction simples appelées applets. Cela permet de réagir à des évenements en activant d'autres systèmes.
Nous l'utilisons pour envoyé des alertes sur téléphone quand les taux de gaz dépassent les seuils de danger défini dans le système.