Table des matières:

Humidimètre solaire avec ESP8266 : 10 étapes (avec photos)
Humidimètre solaire avec ESP8266 : 10 étapes (avec photos)

Vidéo: Humidimètre solaire avec ESP8266 : 10 étapes (avec photos)

Vidéo: Humidimètre solaire avec ESP8266 : 10 étapes (avec photos)
Vidéo: solar sun tracker system with IOT Model 2024, Juillet
Anonim

Dans ce Instructable, nous fabriquons un moniteur d'humidité du sol à énergie solaire. Il utilise un microcontrôleur wifi ESP8266 exécutant un code à faible consommation, et tout est étanche pour qu'il puisse être laissé à l'extérieur. Vous pouvez suivre cette recette exactement, ou en tirer les techniques utiles pour vos propres projets.

Si vous débutez dans la programmation de microcontrôleurs, veuillez consulter ma classe Arduino et ma classe Internet des objets pour vous familiariser avec les bases du câblage, du codage et de la connexion à Internet.

Ce projet fait partie de ma classe solaire gratuite, où vous pouvez apprendre plus de façons d'exploiter l'énergie du soleil grâce à la gravure et aux panneaux solaires.

Pour suivre ce sur quoi je travaille, suivez-moi sur YouTube, Instagram, Twitter, Pinterest et abonnez-vous à ma newsletter.

Étape 1: ce dont vous aurez besoin

Ce dont vous aurez besoin
Ce dont vous aurez besoin

Vous aurez besoin d'une carte de charge de batterie solaire et d'une sortie ESP8266 telle que le NodeMCU ESP8266 ou Huzzah, ainsi que d'un capteur de sol, d'une batterie, d'un interrupteur d'alimentation, de fils et d'un boîtier pour mettre votre circuit à l'intérieur.

Voici les composants et les matériaux utilisés pour le moniteur d'humidité du sol:

  • Microcontrôleur ESP8266 NodeMCU (ou similaire, Vin doit tolérer jusqu'à 6V)
  • Carte de charge solaire Adafruit avec thermistance en option et résistance de 2,2K ohms
  • Batterie Li-ion 2200mAh
  • Carte perma-proto
  • Capteur d'humidité/température du sol
  • 2 presse-étoupes
  • Boîtier étanche
  • Paire de câbles d'alimentation CC étanches
  • Gaine thermorétractable
  • Panneau solaire 3,5 W
  • Interrupteur d'alimentation à bouton-poussoir
  • Ruban mousse double adhésif

Voici les outils dont vous aurez besoin:

  • Fer à souder et soudure
  • Outil coup de main
  • Pince à dénuder
  • Cisailles à ras
  • Pince à épiler (facultatif)
  • Pistolet à air chaud ou briquet
  • Multimètre (optionnel mais pratique pour le dépannage)
  • Câble USB A-microB
  • Ciseaux
  • Foret étagé

Vous aurez besoin de comptes gratuits sur les sites de données cloud io.adafruit.com et IFTTT.

En tant qu'associé Amazon, je gagne des achats éligibles que vous effectuez en utilisant mes liens d'affiliation.

Étape 2: Prototype de planche à pain

Prototype de planche à pain
Prototype de planche à pain

Il est important de créer un prototype de maquette sans soudure pour des projets comme celui-ci, afin de vous assurer que votre capteur et votre code fonctionnent avant d'établir des connexions permanentes.

Image
Image
Image
Image
Image
Image
Image
Image

Dans ce cas, le capteur de sol a des fils toronnés, il était nécessaire de fixer temporairement des en-têtes solides aux extrémités des fils du capteur à l'aide de soudure, de mains secourables et de tubes thermorétractables.

Image
Image

Suivez le schéma de circuit pour câbler l'alimentation, la terre, l'horloge et les broches de données du capteur (les données reçoivent également une résistance de rappel de 10K fournie avec le capteur de sol).

  • Fil vert du capteur vers GND
  • Fil rouge du capteur à 3.3V
  • Fil jaune du capteur vers la broche D5 du NodeMCU (GPIO 14)
  • Fil bleu du capteur vers la broche D6 du NodeMCU (GPIO 12)
  • Résistance pull-up 10K entre la broche de données bleue et 3,3 V

Vous pouvez traduire cela dans votre microcontrôleur préféré. Si vous utilisez un Arduino Uno ou similaire, votre carte est déjà prise en charge par le logiciel Arduino. Si vous utilisez l'ESP8266, veuillez consulter ma classe Internet des objets pour obtenir de l'aide étape par étape pour configurer ESP8266 dans Arduino (en ajoutant des URL supplémentaires au champ URL du gestionnaire de cartes supplémentaires dans les préférences d'Arduino, puis en recherchant et sélection de nouveaux tableaux à partir du gestionnaire de tableaux). J'ai tendance à utiliser le type de carte Adafruit ESP8266 Huzzah pour programmer la carte NodeMCU ESP8266, mais vous pouvez également installer et utiliser le support de carte générique ESP8266. Vous aurez également besoin du pilote de puce de communication USB SiLabs (disponible pour Mac/Windows/Linux).

Pour que le capteur soit opérationnel avec ma carte compatible Arduino, j'ai téléchargé la bibliothèque SHT1x Arduino à partir de la page github de Practical Arduino, puis j'ai décompressé le fichier et déplacé le dossier de la bibliothèque dans mon dossier Arduino/libraries, puis je l'ai renommé SHT1x. Ouvrez l'exemple d'esquisse ReadSHT1xValues et remplacez les numéros de broche par 12 (dataPin) et 14 (clockPin), ou copiez l'esquisse modifiée ici:

#comprendre

#define dataPin 12 // NodeMCU broche D6 #define clockPin 14 // NodeMCU broche D5 SHT1x sht1x(dataPin, clockPin); // instanciation de l'objet SHT1x void setup() { Serial.begin(38400); // Ouvrir la connexion série pour rapporter les valeurs à l'hôte Serial.println("Démarrage"); } boucle vide() { float temp_c; float temp_f; flotteur humidité; temp_c = sht1x.readTemperatureC(); // Lecture des valeurs du capteur temp_f = sht1x.readTemperatureF(); humidité = sht1x.readHumidity(); Serial.print("Température: "); // Imprime les valeurs sur le port série Serial.print(temp_c, DEC); Serial.print("C / "); Serial.print(temp_f, DEC); Serial.print("F. Humidité: "); Serial.print(humidité); Serial.println("%"); retard (2000); }

Téléchargez ce code sur votre carte et ouvrez le moniteur série pour voir le flux de données du capteur.

Si votre code ne se compile pas et se plaint que SHT1x.h n'est pas trouvé, vous n'avez pas installé correctement la bibliothèque de capteurs requise. Vérifiez votre dossier Arduino/libraries pour un dossier appelé SHT1x, et s'il se trouve ailleurs, comme votre dossier de téléchargements, déplacez-le dans votre dossier de bibliothèques Arduino et renommez-le si nécessaire.

Si votre code se compile mais ne se télécharge pas sur votre carte, vérifiez les paramètres de votre carte, assurez-vous que votre carte est branchée et sélectionnez le bon port dans le menu Outils.

Si votre code se télécharge mais que l'entrée de votre moniteur série est méconnaissable, vérifiez que votre débit en bauds correspond à celui spécifié dans votre croquis (38400 dans ce cas).

Si l'entrée de votre moniteur série ne semble pas correcte, vérifiez votre câblage par rapport au schéma de circuit. Votre résistance pull-up 10K est-elle en place entre la broche de données et 3,3 V ? Les données et l'horloge sont-elles connectées aux bonnes broches ? L'alimentation et la terre sont-elles connectées comme elles devraient l'être dans tout le circuit ? Ne continuez pas tant que ce simple croquis ne fonctionne pas !

L'étape suivante est spécifique à l'ESP8266 et configure la partie facultative de rapport de capteur sans fil de l'exemple de projet. Si vous utilisez un microcontrôleur compatible Arduino standard (non sans fil), continuez à développer votre croquis Arduino final et passez à la section Préparer la carte de charge solaire.

Étape 3: Configuration du logiciel

Configuration du logiciel
Configuration du logiciel

Pour compiler le code de ce projet avec l'ESP8266, vous devrez installer quelques bibliothèques Arduino supplémentaires (disponibles via le gestionnaire de bibliothèque):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Téléchargez le code joint à cette étape, puis décompressez le fichier et ouvrez Solar_Powered_Soil_Moisture_Monitor_Tutorial dans votre logiciel Arduino.

#comprendre

#include #include #include #include // Spécifie les connexions de données et d'horloge et instancie l'objet SHT1x #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x(dataPin, clockPin); // configurer le flux AdafruitIO_Feed *humidité = io.feed("humidité"); AdafruitIO_Feed *temperature = io.feed("temperature"); const int sleepTime = 15; // 15 minutes

void setup()

{ Serial.begin(115200); // Ouvrir la connexion série pour rapporter les valeurs à l'hôte Serial.println("Démarrage"); // se connecte à io.adafruit.com Serial.print("Connexion à Adafruit IO"); io.connect(); // attend une connexion while(io.status() < AIO_CONNECTED) { Serial.print("."); retard (500); } // nous sommes connectés Serial.println(); Serial.println(io.statusText()); }

boucle vide()

{ io.run(); // io.run(); maintient le client connecté et est requis pour tous les croquis. float temp_c; float temp_f; flotter l'humidité; temp_c = sht1x.readTemperatureC(); // Lecture des valeurs du capteur temp_f = sht1x.readTemperatureF(); humidité = sht1x.readHumidity(); Serial.print("Température: "); // Imprime les valeurs sur le port série Serial.print(temp_c, DEC); Serial.print("C / "); Serial.print(temp_f, DEC); Serial.print("F. Humidité: "); Serial.print(humidité); Serial.println("%"); humidité-> enregistrer (humidité); température->sauvegarder(temp_f); Serial.println("ESP8266 dort…"); ESP.deepSleep(sommeil * 1000000 * 60); // Dormir }

Ce code est un mashup du code du capteur de plus tôt dans ce didacticiel et un exemple de base du service de données cloud Adafruit IO. Le programme passe en mode basse consommation et dort la plupart du temps, mais se réveille toutes les 15 minutes pour lire la température et l'humidité du sol, et transmet ses données à Adafruit IO. Accédez à l'onglet config.h et remplissez votre nom d'utilisateur et votre clé Adafruit IO, ainsi que le nom et le mot de passe de votre réseau wifi local, puis téléchargez le code sur votre microcontrôleur ESP8266.

Image
Image

Vous devrez vous préparer un peu sur io.adafruit.com. Après avoir créé des flux pour la température et l'humidité, vous pouvez créer un tableau de bord pour votre moniteur comportant un graphique des valeurs des capteurs et les données des deux flux entrants. Si vous avez besoin d'un rappel sur la prise en main d'Adafruit IO, consultez cette leçon de mon cours sur l'Internet des objets.

Étape 4: Préparez la carte de charge solaire

Préparer la carte de charge solaire
Préparer la carte de charge solaire

Préparez la carte de charge solaire en soudant son condensateur et quelques fils aux plots de sortie de charge. Je personnalise le mien pour qu'il se charge à un rythme plus rapide avec une résistance supplémentaire en option (2,2 K soudés sur PROG) et je le rends plus sûr de laisser sans surveillance en remplaçant la résistance de montage en surface par une thermistance de 10 K attachée à la batterie elle-même. Cela limitera la charge à une plage de température sûre. J'ai couvert ces modifications plus en détail dans mon projet de chargeur USB solaire.

Étape 5: Construire un circuit de microcontrôleur

Construire un circuit de microcontrôleur
Construire un circuit de microcontrôleur
Image
Image
Image
Image

Soudez la carte du microcontrôleur et l'interrupteur d'alimentation sur une carte perma-proto.

Image
Image

Connectez la sortie d'alimentation du chargeur solaire à l'entrée de votre interrupteur, qui doit être évalué à au moins 1 amp.

Image
Image

Créez et soudez les connexions des fils de la maquette décrites dans le schéma de circuit ci-dessus (ou selon les spécifications de votre version personnelle), y compris la résistance pull-up 10K sur la ligne de données du capteur.

Les broches de charge du chargeur solaire fourniront une alimentation de batterie de 3,7 V en l'absence d'énergie solaire, mais seront alimentées directement par le panneau solaire s'il est branché et ensoleillé. Par conséquent, le microcontrôleur doit être capable de tolérer une variété de tensions, aussi basses que 3,7 V et jusqu'à 6 V CC. Pour ceux qui ont besoin de 5V, un PowerBoost (500 ou 1000, selon le courant requis) peut être utilisé pour moduler la tension de charge à 5V (comme indiqué dans le projet Solar USB Charger). Voici quelques cartes courantes et leurs plages de tension d'entrée:

  • NodeMCU ESP8266 (utilisé ici): 5V USB ou 3.7V-10V Vin
  • Arduino Uno: 5V USB ou 7-12V Vin
  • Adafruit Huzzah ESP8266 Breakout: 5V USB ou 3.4-6V VBat

Afin d'obtenir la durée de vie de la batterie la plus longue possible, vous devez prendre le temps de considérer et d'optimiser le courant total que votre courant consomme. L'ESP8266 dispose d'une fonction de veille profonde que nous avons utilisée dans le croquis Arduino pour réduire considérablement sa consommation d'énergie. Il se réveille pour lire le capteur et consomme plus de courant pendant qu'il se connecte au réseau pour signaler la valeur du capteur, puis se rendort pendant un laps de temps spécifié. Si votre microcontrôleur consomme beaucoup d'énergie et ne peut pas être facilement mis en veille, envisagez de porter votre projet sur une carte compatible qui consomme moins d'énergie. Posez une question dans les commentaires ci-dessous si vous avez besoin d'aide pour identifier quelle carte pourrait convenir à votre projet.

Étape 6: Installez les presse-étoupes

Image
Image

Pour créer des points d'entrée étanches pour le câble du panneau solaire et le câble du capteur, nous allons installer deux presse-étoupes sur le côté du boîtier étanche.

Image
Image
Image
Image

Testez l'ajustement de vos composants pour identifier le placement idéal, puis marquez et percez des trous dans un boîtier étanche à l'aide d'une perceuse étagée. Installez les deux presse-étoupes.

Image
Image

Étape 7: Terminer l'assemblage du circuit

Assemblage complet du circuit
Assemblage complet du circuit

Insérez le côté port d'un câble d'alimentation étanche dans l'un et soudez-le à l'entrée CC du chargeur solaire (rouge à + et noir à -).

Image
Image

Insérez le capteur de sol à travers l'autre presse-étoupe et connectez-le au perma-proto selon le schéma de circuit.

Image
Image

Collez la sonde à thermistance sur la batterie. Cela limitera la charge à une plage de température sûre pendant que le projet est laissé sans surveillance à l'extérieur.

Image
Image

Une charge trop chaude ou trop froide peut endommager la batterie ou déclencher un incendie. L'exposition à des températures extrêmes peut endommager et raccourcir la durée de vie de la batterie, alors ramenez-la à l'intérieur si elle est en dessous de zéro ou au-dessus de 45 /113 F.

Image
Image

Serrez les presse-étoupes pour créer un joint étanche autour de leurs câbles respectifs.

Étape 8: préparer le panneau solaire

Préparer le panneau solaire
Préparer le panneau solaire

Suivez mon Instructable pour épisser le câble de votre panneau solaire avec le côté prise de l'ensemble de câbles d'alimentation CC étanche.

Étape 9: Testez-le

Essaye-le
Essaye-le

Branchez votre batterie et allumez le circuit en appuyant sur l'interrupteur d'alimentation.

Image
Image

Testez-le et assurez-vous qu'il se connecte à Internet avant de fermer le boîtier et d'installer le capteur dans votre jardin d'herbes aromatiques, votre précieuse plante en pot ou tout autre sol à portée de signal de votre réseau wifi.

Image
Image

Une fois les données du capteur enregistrées en ligne, il est facile de configurer une recette d'alertes par e-mail ou par SMS sur le site de la passerelle API If This Then That. J'ai configuré le mien pour m'envoyer un e-mail si le niveau d'humidité du sol descend en dessous de 50.

Pour le tester sans attendre que ma plante sèche, j'ai entré manuellement un point de données dans mon alimentation en humidité sur Adafruit IO qui est tombé en dessous du seuil. Quelques instants plus tard, l'email arrive ! Si les niveaux du sol tombent en dessous du niveau spécifié, je reçois un e-mail chaque fois que le flux est mis à jour jusqu'à ce que j'arrose le sol. Pour ma santé mentale, j'ai mis à jour mon code pour échantillonner le sol beaucoup moins souvent que toutes les 15 minutes.

Étape 10: Utilisez-le à l'extérieur

Utilisez-le à l'extérieur !
Utilisez-le à l'extérieur !
Utilisez-le à l'extérieur !
Utilisez-le à l'extérieur !

Il s'agit d'un projet amusant à personnaliser en fonction des besoins d'hydratation de votre plante, et il est facile d'échanger ou d'ajouter des capteurs ou d'intégrer les fonctionnalités d'énergie solaire dans vos autres projets Arduino.

Merci d'avoir suivi ! J'aimerais entendre ce que vous en pensez; merci de poster dans les commentaires. Ce projet fait partie de ma classe solaire gratuite, où vous pouvez trouver des projets d'arrière-cour faciles et plus de leçons sur le travail avec des panneaux solaires. Vérifiez-le et inscrivez-vous!

Si vous aimez ce projet, vous pourriez être intéressé par certains de mes autres:

  • Classe Internet des objets gratuite
  • Compteur d'abonnés YouTube avec ESP8266
  • Affichage du suivi des statistiques sociales avec ESP8266
  • Affichage météo WiFi avec ESP8266
  • Internet Valentin

Pour suivre ce sur quoi je travaille, suivez-moi sur YouTube, Instagram, Twitter, Pinterest et Snapchat.

Conseillé: