Sommario:
- Passaggio 1: requisiti
- Passaggio 2: Blynk
- Passaggio 3: IDE Arduino
- Passaggio 4: costruiscilo
- Passaggio 5: codice
Video: Plant Monitor utilizzando ESP32 Thing e Blynk: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
Panoramica
L'obiettivo di questo progetto è creare un dispositivo compatto in grado di monitorare le condizioni di una pianta d'appartamento. Il dispositivo consente all'utente di controllare il livello di umidità del suolo, il livello di umidità, la temperatura e la temperatura "sensibile" da uno smartphone utilizzando l'app Blynk. Inoltre, l'utente riceverà un'e-mail di avviso quando le condizioni diventano inadatte per l'impianto. Ad esempio, l'utente riceverà un promemoria per innaffiare la pianta quando i livelli di umidità del suolo scendono al di sotto di un livello adeguato.
Passaggio 1: requisiti
Questo progetto utilizza una cosa Sparkfun ESP32, un sensore DHT22 e un sensore di umidità del suolo di mattoni elettronici. Inoltre, sono necessarie una rete Wi-Fi e l'app Blynk. Preferibilmente, dovrebbe essere creato un involucro impermeabile per contenere la cosa ESP32. Sebbene questo esempio utilizzi una presa standard per una fonte di alimentazione, l'aggiunta di una batteria ricaricabile, un pannello solare e un controller di carica consentirebbe di alimentare il dispositivo tramite energia rinnovabile.
Passaggio 2: Blynk
Per essere, scarica l'app Blynk e crea un nuovo progetto. Prendi nota del token di autenticazione: verrà utilizzato nel codice. Crea nuovi widget di visualizzazione nell'app Blynk e seleziona i pin virtuali corrispondenti definiti nel codice. Imposta l'intervallo di aggiornamento su push. Ad ogni widget dovrebbe essere assegnato il proprio pin virtuale.
Passaggio 3: IDE Arduino
Scarica Arduino IDE. Segui le istruzioni per il download del driver ESP32 e la demo per garantire la connettività Wi-Fi. Scarica le librerie Blynk e DHT incluse nel codice. Inserisci il token di autenticazione, la password wifi, il nome utente wifi e l'e-mail nel codice finale. Utilizzare il codice demo per il sensore di umidità del suolo per trovare i valori minimo e massimo per il tipo di terreno. Registra e sostituisci questi valori nel codice finale. Sostituire i valori minimi per la temperatura, l'umidità del suolo e l'umidità per la pianta nel codice finale. Carica il codice.
Passaggio 4: costruiscilo
Innanzitutto, collegare il sensore di umidità del suolo a 3,3 V, terra e pin di ingresso 34. Nota, è integrato che l'interruttore sia impostato su A perché verrà utilizzata l'impostazione analogica per questo sensore. Quindi, collegare il sensore DHT a 3,3 V, massa e pin di ingresso 27. Il sensore DHT22 richiede un resistore da 10 K Ohm tra il VCC e il pin di uscita dati. Assicurati di controllare il diagramma DHT per assicurarti che sia cablato correttamente. Configura l'ESP32 all'interno di un involucro impermeabile con il sensore di umidità nel terreno e il sensore DHT sopra la superficie. Collegati a una fonte di alimentazione e goditi i dati sull'ambiente del tuo impianto.
Passaggio 5: codice
//Librerie incluse
#define BLYNK_PRINT seriale
#include #include #include #include "DHT.h"
//Informazioni sul sensore DHT
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Pin digitale collegato al sensore DHT DHT dht(DHTPIN, DHTTYPE); // Inizializza il sensore DHT.
//definire pin di input e output
int suolo_sensore = 34; // definisce il numero di pin dell'ingresso analogico collegato al sensore di umidità
int output_value;//definisci come output
int umiditàlevel;//definisci come output
int notificato = 0; //definire notificato come 0
int temporizzazione= 60000L; //imposta il timer per l'esecuzione ottieni i dati una volta ogni minuto o 60.000 millisecondi
//imposta i valori minimi per l'impianto
int min_umidità =20; int temperatura_min =75; int min_umidità =60;
// Dovresti ottenere il token di autenticazione nell'app Blynk.
char auth = "Auth_Token_Here";
// Le tue credenziali WiFi.
char ssid = "Wifi_Network_Here"; char pass = "Wifi_Password_Here";
Timer BlynkTimer;
// Questa funzione invia il tempo di attività di Arduino ogni secondo a Virtual Pin (5).
// Nell'app, la frequenza di lettura del widget dovrebbe essere impostata su PUSH. Ciò significa // che definisci la frequenza con cui inviare i dati all'app Blynk.
void Sensors () // funzione principale per leggere i sensori e inviare a blynk
{ output_value = analogRead(soil_sensor);// Legge il segnale analogico da soil_sensor e definisce come output_value //Mappa output_vlaue dai valori min, max a 100, 0 e vincola tra 0, 100 //Utilizza il codice di esempio e il monitor seriale per trovare min e valori massimi per singolo sensore e tipo di suolo per una migliore calibrazione umiditàlevel = constrain (map(output_value, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity(); // Legge l'umidità float t = dht.readTemperature(); // Legge la temperatura come Celsius (il valore predefinito) float f = dht.readTemperature(true); // Legge la temperatura come Fahrenheit (isFahrenheit = true) // Calcola l'indice di calore in Fahrenheit (predefinito) float hif = dht.computeHeatIndex(f, h); // Controlla se qualche lettura ha avuto esito negativo ed esci prima (per riprovare). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println(F("Impossibile leggere dal sensore DHT!")); Restituzione; } // Questo collega i vales ai pin virtuali definiti nei widget nell'app Blynk Blynk.virtualWrite(V5, umiditàlevel);// Invia il livello di umidità al pin virtuale 5 Blynk.virtualWrite(V6, f); // Invia la temperatura al virtual pin 6 Blynk.virtualWrite(V7, h);// Invia umidità al pin virtuale 7 Blynk.virtualWrite(V8, hif);// Invia indice di calore al pin virtuale 8
se (notificato==0)
{ if (livello di umidità <= min_moisture) // Se il livello di umidità è uguale o inferiore al valore minimo { Blynk.email("Email_Here", "Plant Monitor", "Water Plant!"); // Invia email all'impianto idrico } delay (15000); // Le email di Blynk devono essere distanziate di 15 secondi. Ritardo 15000 millisecondi if (f <= min_temperature) // Se la temperatura è uguale o inferiore al valore minimo { Blynk.email("Email_Here", "Plant Monitor", "Temperature Low!"); // Invia un'e-mail che la temperatura è bassa
}
ritardo (15000); // Le email di Blynk devono essere distanziate di 15 secondi. Ritardo 15000 millisecondi if (h <= min_humidity) // Se l'umidità è uguale o inferiore al valore minimo { Blynk.email("Emial_Here", "Plant Monitor", "Humidity Low!"); // Invia email che l'umidità è bassa } notificato = 1; timer.setTimeout(timedelay *5, resetNotified); // moltiplica il ritardo per il numero di minuti desiderati tra le email di avviso ripetute } }
void resetNotified() //funzione chiamata per ripristinare la frequenza delle email
{ notificato = 0; }
configurazione nulla()
{ Serial.begin(9600); // Console di debug Blynk.begin(auth, ssid, pass); // connettersi a blynk timer.setInterval(timedelay, Sensors); // Imposta una funzione da chiamare ogni minuto o quale timedelay è impostato su dht.begin(); //esegui il sensore DHT }
// Il loop vuoto dovrebbe contenere solo blynk.run e timer
void loop() { Blynk.run(); // Esegui blynk timer.run(); // Avvia BlynkTimer }
Consigliato:
Arduino Plant Monitor con sensore capacitivo del suolo - Tutorial: 6 passaggi
Arduino Plant Monitor con sensore capacitivo del suolo - Tutorial: In questo tutorial impareremo come rilevare l'umidità del suolo utilizzando un sensore di umidità capacitivo con display OLED e Visuino.Guarda il video
Smart Indoor Plant Monitor - Scopri quando la tua pianta ha bisogno di annaffiare: 8 passaggi (con immagini)
Smart Indoor Plant Monitor - Scopri quando la tua pianta ha bisogno di annaffiare: un paio di mesi fa, ho realizzato un bastoncino per il monitoraggio dell'umidità del suolo che è alimentato a batteria e può essere inserito nel terreno nel vaso della tua pianta da interno per darti alcune informazioni utili sul terreno livello di umidità e LED lampeggianti per dirti quando wa
Monitoraggio dell'accelerazione utilizzando Raspberry Pi e AIS328DQTR utilizzando Python: 6 passaggi
Monitoraggio dell'accelerazione utilizzando Raspberry Pi e AIS328DQTR Utilizzando Python: l'accelerazione è finita, penso che secondo alcune leggi della fisica.- Terry Riley Un ghepardo utilizza un'accelerazione straordinaria e rapidi cambiamenti di velocità durante la caccia. La creatura più veloce a terra di tanto in tanto utilizza il suo ritmo più alto per catturare la preda. Il
Neopixel Ws2812 Arcobaleno LED Glow con M5stick-C - Esecuzione di Rainbow su Neopixel Ws2812 utilizzando M5stack M5stick C Utilizzando Arduino IDE: 5 passaggi
Neopixel Ws2812 Arcobaleno LED Glow con M5stick-C | Esecuzione di Rainbow su Neopixel Ws2812 Utilizzo di M5stack M5stick C Utilizzo di Arduino IDE: Ciao ragazzi in questo tutorial impareremo come utilizzare i LED neopixel ws2812 o la striscia led o la matrice led o l'anello led con la scheda di sviluppo m5stack m5stick-C con Arduino IDE e faremo un motivo arcobaleno con esso
Iniziare con ESP32 CAM - Streaming video utilizzando ESP CAM tramite Wi-Fi - Progetto telecamera di sicurezza ESP32: 8 passaggi
Iniziare con ESP32 CAM | Streaming video utilizzando ESP CAM tramite Wi-Fi | Progetto telecamera di sicurezza ESP32: oggi impareremo come utilizzare questa nuova scheda CAM ESP32 e come possiamo codificarla e usarla come telecamera di sicurezza e ottenere un video in streaming tramite wifi