Spisu treści:
Wideo: Monitor roślin za pomocą ESP32 Thing i Blynk: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
Przegląd
Celem tego projektu jest stworzenie kompaktowego urządzenia zdolnego do monitorowania warunków rośliny doniczkowej. Urządzenie umożliwia użytkownikowi sprawdzenie poziomu wilgotności gleby, poziomu wilgotności, temperatury i „odczuwalnej” temperatury ze smartfona za pomocą aplikacji Blynk. Dodatkowo użytkownik otrzyma powiadomienie e-mail, gdy warunki staną się nieodpowiednie dla zakładu. Na przykład użytkownik otrzyma przypomnienie o podlewaniu rośliny, gdy poziom wilgotności gleby spadnie poniżej odpowiedniego poziomu.
Krok 1: Wymagania
Ten projekt wykorzystuje element Sparkfun ESP32, czujnik DHT22 i elektroniczny czujnik wilgotności gleby w cegle. Dodatkowo wymagana jest sieć Wi-Fi i aplikacja Blynk. Najlepiej stworzyć wodoodporną obudowę, aby pomieścić ESP32. Chociaż ten przykład wykorzystuje standardowe gniazdko dla źródła zasilania, dodanie akumulatora, panelu słonecznego i kontrolera ładowania umożliwiłoby zasilanie urządzenia energią odnawialną.
Krok 2: Blynk
Aby być, pobierz aplikację Blynk i utwórz nowy projekt. Zanotuj token uwierzytelniający - zostanie użyty w kodzie. Utwórz nowe widżety wyświetlania w aplikacji Blynk i wybierz odpowiednie wirtualne szpilki zdefiniowane w kodzie. Ustaw interwał odświeżania do wypychania. Każdy widżet powinien mieć przypisany własny wirtualny pin.
Krok 3: IDE Arduino
Pobierz Arduino IDE. Postępuj zgodnie z instrukcjami pobierania sterownika ESP32 i wersji demonstracyjnej, aby zapewnić łączność Wi-Fi. Pobierz biblioteki Blynk i DHT zawarte w kodzie. Wpisz token uwierzytelniający, hasło Wi-Fi, nazwę użytkownika Wi-Fi i adres e-mail w końcowym kodzie. Użyj kodu demonstracyjnego czujnika wilgotności gleby, aby znaleźć minimalne i maksymalne wartości dla typu gleby. Zapisz i zastąp te wartości w końcowym kodzie. Zastąp minimalne wartości temperatury, wilgotności gleby i wilgotności dla rośliny w końcowym kodzie. Prześlij kod.
Krok 4: Zbuduj to
Najpierw podłącz czujnik wilgotności gleby do 3,3 V, uziemienia i styku wejściowego 34. Zauważ, że jest integralną częścią przełącznika ustawionego na A, ponieważ zostanie użyte ustawienie analogowe dla tego czujnika. Następnie podłącz czujnik DHT do styku 3,3 V, masy i wejścia 27. Czujnik DHT22 wymaga rezystora 10K Ohm między VCC a stykiem wyjścia danych. Pamiętaj, aby sprawdzić schemat DHT, aby upewnić się, że jest prawidłowo podłączony. Skonfiguruj ESP32 w wodoodpornej obudowie z czujnikiem wilgoci w glebie i czujnikiem DHT nad powierzchnią. Podłącz się do źródła zasilania i ciesz się danymi o środowisku zakładu.
Krok 5: Kod
//Dołączone biblioteki
#define BLYNK_PRINT Serial
#include #include #include #include "DHT.h"
//Informacje z czujnika DHT
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Cyfrowy pin podłączony do czujnika DHT DHT dht(DHTPIN, DHTTYPE); // Zainicjuj czujnik DHT.
//zdefiniuj piny wejściowe i wyjścia
int czujnik_gleby = 34; //zdefiniuj numer pinu wejścia analogowego podłączonego do czujnika wilgotności
int output_value;//zdefiniuj jako output
int wilgotność;//zdefiniuj jako wyjście
int powiadomiony = 0; //zdefiniuj powiadomienie jako 0
int opóźnienie czasowe= 60000L; //ustaw timer, aby uruchomić pobieranie danych raz na minutę lub 60 000 milisekund
//ustaw minimalne wartości dla rośliny
int min_wilgotność =20; int min_temperatura =75; int min_wilgotność =60;
// Powinieneś uzyskać Auth Token w aplikacji Blynk.
char auth = "Auth_Token_Here";
// Twoje dane logowania do Wi-Fi.
char ssid = "Tutaj_sieć_Wi-Fi"; char pass = "Wifi_Password_Here";
Zegar BlynkTimer;
// Ta funkcja wysyła czas działania Arduino co sekundę do Virtual Pin (5).
// W aplikacji częstotliwość czytania widgetu powinna być ustawiona na PUSH. Oznacza to // że określasz, jak często wysyłać dane do aplikacji Blynk.
void Sensors () //główna funkcja odczytu czujników i push to blynk
{ output_value = analogRead(soil_sensor);// Odczytaj analogowy sygnał z czujnika gleby i zdefiniuj go jako output_value //Odwzoruj wartość_wyjściową od min, max wartości do 100, 0 i ogranicz między 0, 100 //Użyj kodu próbki i monitora szeregowego, aby znaleźć min i max wartości dla poszczególnych czujników i rodzaju gleby dla lepszej kalibracji poziom wilgotności = ograniczenie (map(output_value, 1000, 4095, 100, 0), 0, 100); float h = dht.odczytWilgotność(); // Odczyt wilgotności float t = dht.readTemperature(); // Odczytaj temperaturę w stopniach Celsjusza (domyślnie) float f = dht.readTemperature(true); // Odczytaj temperaturę w stopniach Fahrenheita (isFahrenheit = true) // Oblicz wskaźnik ciepła w stopniach Fahrenheita (domyślnie) float hif = dht.computeHeatIndex(f, h); // Sprawdź, czy jakiekolwiek odczyty nie powiodły się i wyjdź wcześniej (aby spróbować ponownie). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println(F("Nie udało się odczytać z czujnika DHT!")); powrót; } //To łączy wartości z wirtualnymi pinami zdefiniowanymi w widżetach w aplikacji Blynk Blynk.virtualWrite(V5, poziom wilgoci);// Wyślij poziom wilgotności do wirtualnego pinu 5 Blynk.virtualWrite(V6, f);// Wyślij temperaturę do wirtualnego pin 6 Blynk.virtualWrite(V7, h);// Wyślij wilgotność do wirtualnego pinu 7 Blynk.virtualWrite(V8, hif);// Wyślij indeks ciepła do wirtualnego pinu 8
jeśli (powiadomiony==0)
{ if (poziom wilgoci <= min_moisture) // Jeśli poziom wilgotności jest równy lub niższy od wartości minimalnej { Blynk.email("Email_Here", "Monitor roślin", "Fabryka wodna!"); // Wyślij email do wodociągu } delay (15000); // E-maile Blynk muszą być oddalone od siebie o 15 sekund. Opóźnienie 15000 milisekund if (f <= min_temperature) // Jeśli temperatura jest równa lub niższa od wartości min { Blynk.email("Email_Here", "Monitor roślin", "Niska temperatura!"); // Wyślij e-mail, że temperatura jest niska
}
opóźnienie (15000); // E-maile Blynk muszą być oddalone od siebie o 15 sekund. Opóźnienie 15000 milisekund if (h <= min_humidity) // Jeśli wilgotność jest równa lub niższa od wartości min { Blynk.email("Emial_Here", "Plant Monitor", "Humidity Low!"); // Wyślij e-mail, że wilgotność jest niska } notified = 1; timer.setTimeout(opóźnienie czasowe *5, resetNotified); // pomnóż opóźnienie czasowe przez liczbę minut pomiędzy kolejnymi ostrzeżeniami } }
void resetNotified() //funkcja wywoływana w celu zresetowania częstotliwości e-maili
{ powiadomiony = 0; }
pusta konfiguracja()
{ Szeregowy.początek(9600); // Debuguj konsolę Blynk.begin(auth, ssid, pass); // połącz się z blynk timer.setInterval(timedelay, Sensors); // Ustaw funkcję, która ma być wywoływana co minutę lub z opóźnieniem ustawionym na dht.begin(); //uruchom czujnik DHT }
//Pętla Void powinna zawierać tylko blynk.run i timer
void loop() { Blynk.run(); // Uruchom blynk timer.run(); // Inicjuje BlynkTimer }
Zalecana:
Automatyczny system nawadniania roślin za pomocą Micro:bit: 8 kroków (ze zdjęciami)
Automatyczny system nawadniania roślin przy użyciu Micro:bit: W tej instrukcji pokażę, jak zbudować automatyczny system nawadniania roślin przy użyciu Micro:bit i kilku innych małych elementów elektronicznych. Micro:bit wykorzystuje czujnik wilgoci do monitorowania poziomu wilgoci w glebie rośliny i
Jak zbudować system nawadniania roślin za pomocą Arduino: 7 kroków
Jak zbudować system nawadniania roślin za pomocą Arduino: W tym samouczku dowiemy się, jak stworzyć system nawadniania roślin za pomocą czujnika wilgoci, pompy wody i migania zielonej diody LED, jeśli wszystko jest w porządku, oraz wyświetlacza OLED i Visuino. Obejrzyj wideo
Monitor roślin Arduino z czujnikiem pojemnościowym gleby - samouczek: 6 kroków
Arduino Plant Monitor z pojemnościowym czujnikiem gleby - samouczek: W tym samouczku nauczymy się wykrywać wilgotność gleby za pomocą pojemnościowego czujnika wilgotności z wyświetlaczem OLED i Visuino. Obejrzyj wideo
Jak wykrywać choroby roślin za pomocą uczenia maszynowego: 6 kroków
Jak wykrywać choroby roślin za pomocą uczenia maszynowego: Proces wykrywania i rozpoznawania chorych roślin zawsze był ręcznym i żmudnym procesem, który wymaga od ludzi wzrokowej inspekcji ciała rośliny, co często może prowadzić do błędnej diagnozy. Przewiduje się również, że jako globalny w
Podlewanie roślin domowych za pomocą NodeMCU, lokalnego serwera Blynk i Blynk Apk, regulowany punkt nastawczy: 3 kroki
Podlewanie roślin domowych za pomocą NodeMCU, lokalnego serwera Blynk i Blynk Apk, regulowany punkt nastawczy: Zbudowałem ten projekt, ponieważ moje rośliny domowe muszą być zdrowe, nawet gdy jestem na wakacjach przez dłuższy czas i podoba mi się ten pomysł kontrolować lub przynajmniej monitorować wszystkie możliwe rzeczy, które dzieją się w moim domu przez internet