Table des matières:

Plant Monitor utilisant ESP32 Thing et Blynk : 5 étapes
Plant Monitor utilisant ESP32 Thing et Blynk : 5 étapes

Vidéo: Plant Monitor utilisant ESP32 Thing et Blynk : 5 étapes

Vidéo: Plant Monitor utilisant ESP32 Thing et Blynk : 5 étapes
Vidéo: Temperature and Humidity Monitor Using ESP32 and Blynk IOT | Blynk 2.0 Projects 2024, Juin
Anonim
Plant Monitor utilisant ESP32 Thing et Blynk
Plant Monitor utilisant ESP32 Thing et Blynk
Plant Monitor utilisant ESP32 Thing et Blynk
Plant Monitor utilisant ESP32 Thing et Blynk

Aperçu

L'objectif de ce projet est de créer un appareil compact capable de surveiller les conditions d'une plante d'intérieur. L'appareil permet à l'utilisateur de vérifier le niveau d'humidité du sol, le niveau d'humidité, la température et la température "de sensation" à partir d'un smartphone à l'aide de l'application Blynk. De plus, l'utilisateur recevra une alerte par e-mail lorsque les conditions deviennent inadaptées à l'usine. Par exemple, l'utilisateur recevra un rappel pour arroser la plante lorsque les niveaux d'humidité du sol tombent en dessous d'un niveau approprié.

Étape 1: Exigences

Conditions
Conditions
Conditions
Conditions
Conditions
Conditions

Ce projet utilise un objet Sparkfun ESP32, un capteur DHT22 et un capteur d'humidité du sol en brique électronique. De plus, un réseau wifi et l'application Blynk sont requis. De préférence, une enceinte étanche devrait être créée pour contenir la chose ESP32. Bien que cet exemple utilise une prise standard pour une source d'alimentation, l'ajout d'une batterie rechargeable, d'un panneau solaire et d'un contrôleur de charge permettrait à l'appareil d'être alimenté par une énergie renouvelable.

Étape 2: Blynk

Blynk
Blynk
Blynk
Blynk
Blynk
Blynk

Pour être, téléchargez l'application Blynk et créez un nouveau projet. Prenez note du jeton d'authentification - il sera utilisé dans le code. Créez de nouveaux widgets d'affichage dans l'application Blynk et sélectionnez les broches virtuelles correspondantes définies dans le code. Définissez l'intervalle d'actualisation pour pousser. Chaque widget doit se voir attribuer sa propre broche virtuelle.

Étape 3: IDE Arduino

IDE Arduino
IDE Arduino

Téléchargez l'IDE Arduino. Suivez les instructions de téléchargement du pilote de chose ESP32 et la démo pour assurer la connectivité wifi. Téléchargez les bibliothèques Blynk et DHT incluses dans le code. Remplissez le jeton d'authentification, le mot de passe wifi, le nom d'utilisateur wifi et l'e-mail dans le code final. Utilisez le code de démonstration du capteur d'humidité du sol pour trouver les valeurs minimales et maximales pour le type de sol. Enregistrez et remplacez ces valeurs dans le code final. Remplacez les valeurs minimales pour la température, l'humidité du sol et l'humidité de la plante dans le code final. Téléchargez le code.

Étape 4: Construisez-le

Construit le
Construit le
Construit le
Construit le
Construit le
Construit le

Tout d'abord, connectez le capteur d'humidité du sol à 3,3 V, à la terre et à la broche d'entrée 34. Notez qu'il est essentiel que le commutateur soit réglé sur A car le réglage analogique de ce capteur sera utilisé. Ensuite, connectez le capteur DHT à 3,3 V, à la terre et à la broche d'entrée 27. Le capteur DHT22 nécessite une résistance de 10K Ohm entre le VCC et la broche de sortie de données. Assurez-vous de vérifier le diagramme DHT pour vous assurer qu'il est correctement câblé. Configurez l'ESP32 à l'intérieur d'un boîtier étanche avec le capteur d'humidité dans le sol et le capteur DHT au-dessus de la surface. Connectez-vous à une source d'alimentation et profitez des données sur l'environnement de votre usine.

Étape 5: Coder

//Bibliothèques incluses

#define BLYNK_PRINT Série

#include #include #include #include "DHT.h"

//Informations du capteur DHT

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Broche numérique connectée au capteur DHT DHT dht(DHTPIN, DHTTYPE); // Initialiser le capteur DHT.

//définir les broches d'entrée et les sorties

int sol_sensor = 34; //définir le numéro de broche d'entrée analogique connecté au capteur d'humidité

int output_value;//définir comme sortie

int niveau d'humidité;//définir comme sortie

int notifié = 0; //définir notifié comme 0

temporisation int = 60000L; //définir la minuterie pour exécuter obtenir des données une fois par minute ou 60 000 millisecondes

//définir les valeurs minimales pour la plante

int min_humidité =20; int min_temperature =75; int min_humidité =60;

// Vous devriez obtenir le jeton d'authentification dans l'application Blynk.

char auth = "Auth_Token_Here";

// Vos identifiants WiFi.

char ssid = "Wifi_Network_Here"; char pass = "Wifi_Password_Here";

minuteur BlynkTimer;

// Cette fonction envoie le temps de fonctionnement d'Arduino chaque seconde à la broche virtuelle (5).

// Dans l'application, la fréquence de lecture du widget doit être définie sur PUSH. Cela signifie // que vous définissez la fréquence d'envoi des données à l'application Blynk.

void Sensors () // fonction principale pour lire les capteurs et pousser pour blynk

{ output_value = analogRead(soil_sensor);// Lire le signal analogique de Soil_sensor et définir comme output_value //Map output_vlaue des valeurs min, max à 100, 0 et contraindre entre 0, 100 //Utiliser un exemple de code et un moniteur série pour trouver min et valeurs maximales pour chaque capteur et type de sol pour un meilleur étalonnage niveau d'humidité = contrainte (map(output_value, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity(); // Lecture du flotteur d'humidité t = dht.readTemperature(); // Lecture de la température en Celsius (valeur par défaut) float f = dht.readTemperature(true); // Lire la température en Fahrenheit (isFahrenheit = true) // Calculer l'indice de chaleur en Fahrenheit (par défaut) float hif = dht.computeHeatIndex(f, h); // Vérifiez si des lectures ont échoué et quittez plus tôt (pour réessayer). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println(F("Échec de la lecture depuis le capteur DHT !")); revenir; } // Ceci connecte les valeurs aux broches virtuelles définies dans les widgets de l'application Blynk Blynk.virtualWrite(V5, wetlevel); // Envoie le niveau d'humidité à la broche virtuelle 5 Blynk.virtualWrite(V6, f); // Envoie la température à la broche virtuelle broche 6 Blynk.virtualWrite(V7, h);// Envoyer l'humidité à la broche virtuelle 7 Blynk.virtualWrite(V8, hif); // Envoyer l'indice de chaleur à la broche virtuelle 8

si (notifié==0)

{ if (moisturelevel <= min_moisture) // Si le niveau d'humidité est égal ou inférieur à la valeur min { Blynk.email("Email_Here", "Plant Monitor", "Water Plant!"); // Envoyer un e-mail à l'usine d'eau } delay (15000); // Les e-mails Blynk doivent être espacés de 15 secondes. Retard 15000 millisecondes if (f <= min_temperature) // Si la température est égale ou inférieure à la valeur min { Blynk.email("Email_Here", "Plant Monitor", "Temperature Low!"); // Envoyer un e-mail indiquant que la température est basse

}

retard (15000); // Les e-mails Blynk doivent être espacés de 15 secondes. Retard 15000 millisecondes if (h <= min_humidity) // Si l'humidité est égale ou inférieure à la valeur min { Blynk.email("Emial_Here", "Plant Monitor", "Humidity Low!"); // Envoyer un e-mail indiquant que l'humidité est faible } notifié = 1; timer.setTimeout(timedelay *5, resetNotified); // Multipy timedelay par le nombre de minutes souhaitées entre les e-mails d'avertissement répétés } }

void resetNotified() //fonction appelée pour réinitialiser la fréquence des e-mails

{ notifié = 0; }

void setup()

{ Serial.begin(9600); // Console de débogage Blynk.begin(auth, ssid, pass); // se connecte à blynk timer.setInterval(timedelay, Sensors); // Configurez une fonction à appeler toutes les minutes ou quel délai est défini sur dht.begin(); //exécuter le capteur DHT }

// La boucle vide ne doit contenir que blynk.run et timer

boucle vide() { Blynk.run(); // Exécutez blynk timer.run(); // Lance BlynkTimer }

Conseillé: