V tomto návode sa naučíme, ako používať SunFounder ESP32 spolu so senzorom vlhkosti pôdy na meranie úrovne vlhkosti v pôde, čo môže pomôcť pri automatizácii zavlažovacích systémov. Sledovaním úrovní vlhkosti môžeme spustiť bzučiak, keď vlhkosť klesne pod určitú hranicu, čo signalizuje, že rastliny potrebujú zalievanie. Tento projekt je hodnotný pre udržanie zdravia rastlín a môže byť rozšírený pre rôzne aplikácie snímania životného prostredia. (vo videu o 00:00)
soil_mositure_module
Použijeme kapacitný senzor vlhkosti pôdy, ktorý funguje na princípe merania zmeny kapacity medzi dvoma doskami, ktorá sa mení na základe obsahu vlhkosti okolitého prostredia. Tento senzor poskytne analógový výstup, ktorý odráža úroveň vlhkosti, čo nám umožní robiť rozhodnutia na základe nameraných hodnôt. ESP32 prečíta analógový výstup a aktivuje bzučiak, ak je pôda príliš suchá.
Vysvetlenie hardvéru
Pre tento projekt sú hlavnými komponentmi mikrokontrolér SunFounder ESP32, kapacitný senzor vlhkosti pôdy a bzučiak. ESP32 má vstavané Wi-Fi a Bluetooth, čo umožňuje diaľkové monitorovanie a ovládanie. Senzor vlhkosti pôdy pozostáva z dvoch dosiek, ktoré merajú kapacitu, ktorá sa mení v závislosti od úrovne vlhkosti v pôde. Táto zmena kapacity mení výstupné napätie, ktoré ESP32 číta cez svoj analógový vstup. Bzučiak nás upozorní, keď úroveň vlhkosti klesne pod nastavenú hranicu.
soil_mositure_module_schematic
Podrobnosti z datasheetu
Výrobca
SunFounder
Označenie dielu
Senzor vlhkosti pôdy
Prevádzkové napätie
3,3 až 5 V
Typ výstupu
Analógový
Rozsah signálu
0 až 3,3 V
Čas odozvy
Rýchly
Rozmery
Približne 60 x 20 mm
Poznámky / varianty
Kapacitný typ senzora
Uistite sa, že senzor nie je úplne ponorený vo vode, aby nedošlo k poškodeniu.
V prípade potreby použite vhodné pull-up rezistory pre stabilné hodnoty.
Kalibrujte senzor pre váš konkrétny typ pôdy pre presné merania vlhkosti.
Udržiavajte správne zapojenie vodičov, aby nedošlo k strate signálu.
Buďte opatrní s napájaním, aby nedošlo k prepätiu.
Pokyny na zapojenie
ESP32-24-soild-moisture-wiring
Na zapojenie senzora vlhkosti pôdy k ESP32 pripojte pin VCC senzora na pin 3,3V na ESP32. Potom pripojte pin GND senzora na pin GND na ESP32. Analógový výstupný pin zo senzora vlhkosti pôdy by mal byť pripojený na analógový pin 35 na ESP32. Pre bzučiak pripojte kladný pin na digitálny pin 13 na ESP32 a záporný pin na GND. Uistite sa, že všetky spojenia sú pevné, aby sa predišlo občasným problémom počas prevádzky.
Príklady kódu a vysvetlenie
Nižšie je krátky výňatok z kódu, ktorý inicializuje sériovú komunikáciu a číta hodnotu senzora vlhkosti:
void setup() {
// Inicializácia sériovej komunikácie rýchlosťou 115200 bitov za sekundu:
Serial.begin(115200);
}
Tento úryvok nastaví sériovú komunikáciu, čo nám umožní zobraziť hodnoty zo senzora vlhkosti v sériovom monitore.
Ďalej máme hlavnú slučku, kde sa číta analógová hodnota zo senzora:
void loop() {
// Prečítanie analógovej hodnoty
int analogValue = analogRead(35);
// Výpis hodnôt
Serial.printf("Analógová hodnota = %d\n",analogValue);
delay(300); // oneskorenie medzi čítaniami pre jasné čítanie v sériovom monitore
}
V tejto slučke kód nepretržite číta analógovú hodnotu z pinu 35 a vypisuje ju do sériového monitora každých 300 milisekúnd. To nám umožňuje sledovať úroveň vlhkosti v reálnom čase.
Demonštrácia / Čo očakávať
Keď je senzor vlhkosti umiestnený v suchej pôde, analógová hodnota bude vyššia, čo indikuje nízku vlhkosť. Naopak, keď je senzor vložený do vlhkej pôdy, hodnota výrazne klesne. Ak hodnota klesne pod definovanú hranicu (napr. 2000), bzučiak pripojený na pin 13 sa aktivuje, čo signalizuje, že rastlina potrebuje zalievanie. Buďte opatrní s plávajúcimi vstupmi a uistite sa, že senzor nie je vystavený vode nad odporúčané limity (vo videu o 02:30).
823-ESP32 Tutorial 24/55- Arduino code for soil moisture measurement
Jazyk: C++
void setup() {
// Initialize serial communication at 115200 bits per second:
Serial.begin(115200);
}
void loop() {
// Read the analog value
int analogValue = analogRead(35);
// Print out the values
Serial.printf("Analog value = %d\n",analogValue);
delay(300); // delay between reads for clear read from serial monitor
}
Vyhlásenie: Ako partner Amazon zarábame na kvalifikovaných nákupoch. To znamená, že môžeme dostať malú províziu, ak kliknete na odkaz a uskutočníte nákup bez ďalších nákladov pre vás.