Kdy odjíždíte někam daleko na určitou dobu? Nemá kdo zalévat vaše pokojové květiny, takže musíte požádat o pomoc své sousedy, kteří to mohou být nedbalí. V důsledku toho se do vašeho příchodu rostliny budou cítit špatně. Abyste tomu zabránili, můžete vytvořit automatický zavlažovací systém. K tomuto účelu potřebujeme Arduino a senzor vlhkosti půdy. V článku se budeme zabývat příkladem připojení a práce se snímačem FC-28. Osvědčil se na pozitivní straně, s pomocí tisíců projektů byly vytvořeny.
O FC-28
Existuje velké množství senzorů pro určování vlhkosti země, ale nejoblíbenější je model FC-28. Má nízkou cenu, díky které je hojně využíván všemi radioamatéry ve svých projektech. Je použit senzor půdní vlhkosti s Arduino. Má dvě sondy, které vedou elektrický proud zemí. Ukazuje se, že pokud je půda mokrá, pak je odpor mezi sondami menší. U suché půdy je odpor větší. Arduino tyto hodnoty akceptuje, porovná a případně zapne např. pumpu. Snímač je schopen pracovat s digitálním i analogovým režimem, zvážíme obě možnosti připojení. FC-28 se používá hlavně v malých projektech, například při automatickém zavlažování jedné konkrétní rostliny, protože je nepohodlné ho používat ve velkém měřítku kvůli jeho velikosti a nevýhodám, které také zvážíme.
Kde koupit
Faktem je, že v ruských obchodech jsou senzory pro práci s Arduinem poměrně drahé. Průměrná cena tohoto senzoru v Rusku se pohybuje od 200 do 300 rublů, zatímco v Aliexpress stojí stejný senzor pouze 30-50. Značení je obrovské. Samozřejmě si stále můžete vyrobit čidlo pro měření vlhkosti půdy vlastníma rukama, ale o tom níže.
O připojení
Připojení senzoru vlhkosti k Arduinu je velmi snadné. Je dodáván s komparátorem a potenciometrem pro nastavení citlivosti snímače a také pro nastavení limitní hodnoty při připojení pomocí digitálního výstupu. Výstupní signál, jak je uvedeno výše, může být digitální a analogový.
Připojení s digitálním výstupem
Připojeno téměř stejným způsobem jako analogové:
- VCC – 5V na Arduinu.
- D0 – D8 na desce Arduino.
- GND -země.
Jak bylo uvedeno výše, komparátor a potenciometr jsou umístěny na modulu snímače. Vše funguje následovně: pomocí potenciometru nastavíme limitní hodnotu našeho senzoru. FC-28 porovná hodnotu s limitem a poté odešle hodnotu do Arduina. Řekněme, že hodnoty senzoru jsou nad prahem, v takovém případě senzor vlhkosti půdy na Arduinu přenáší 5V, pokud je méně - 0V. Vše je velmi jednoduché, ale analogový režim má přesnější hodnoty, proto se doporučuje jej používat.
Schéma zapojení vypadá jako na obrázku výše. způsob
Programovací kód pro Arduino při použití digitálního režimu je zobrazen níže.
int led_pin=13; int sensor_pin=8; void setup() { pinMode(led_pin, OUTPUT); pinMode(sensor_pin, INPUT); } void loop() { if(digitalRead(sensor_pin)==HIGH){ digitalWrite(led_pin, HIGH); } else { digitalWrite(led_pin, LOW); zpoždění(1000); }
Co dělá náš kód? Nejprve byly identifikovány dvě proměnné. První proměnná - led_pin - slouží k označení LED a druhá - k označení čidla zemní vlhkosti. Dále deklarujeme pin LED jako výstup a pin senzoru jako vstup. To je nezbytné, abychom mohli získat hodnoty a v případě potřeby rozsvítit LED, abychom vizuálně viděli, že hodnoty senzoru jsou nad prahovou hodnotou. Ve smyčce čteme hodnoty ze senzoru. Pokud je hodnota vyšší než limit, rozsviťte LED, pokud je nižší, vypněte ji. Místo LEDmožná pumpa, je to jen na tobě.
Analogový režim
Pro připojení pomocí analogového výstupu musíte pracovat s A0. Kapacitní senzor vlhkosti půdy v Arduinu nabývá hodnot od 0 do 1023. Senzor připojte následovně:
- VCC připojte 5V k Arduinu.
- GND na senzoru je propojeno s GND na desce Arduino.
- A0 připojit k A0 na Arduinu.
Dále napište kód níže v Arduinu.
int sensor_pin=A0; int vystupni_hodnota; void setup() { Serial.begin(9600); Serial.println("Čtení senzoru"); zpoždění (2000); } void loop() { output_value=analogRead(sensor_pin); výstupní_hodnota=mapa(výstupní_hodnota, 550, 0, 0, 100); Serial.print("Vlhkost"); Serial.print(výstupní_hodnota); Serial.println("%"); zpoždění(1000);
Co tedy tento kód dělá? Prvním krokem bylo nastavení proměnných. První proměnná je potřebná k určení kontaktu senzoru a druhá bude ukládat výsledky, které pomocí senzoru obdržíme. Dále čteme data. Ve smyčce zapíšeme hodnoty ze senzoru do proměnné output_value, kterou jsme vytvořili. Poté se vypočítá procento vlhkosti půdy a poté je zobrazíme na monitoru portu. Schéma zapojení je uvedeno níže.
DIY
Výše bylo diskutováno, jak připojit senzor vlhkosti půdy k Arduinu. Problémem těchto senzorů je, že mají krátkou životnost. Faktem je, že jsou velmi náchylnékoroze. Některé firmy vyrábí snímače se speciálním povlakem pro zvýšení životnosti, ale pořád to není ono. Zvažována je také možnost použití senzoru ne často, ale pouze v případě potřeby. Například existuje programový kód, kde každou sekundu snímač čte hodnoty vlhkosti půdy. Životnost prodloužíte, pokud jej zapnete například jednou denně. Ale pokud vám to nevyhovuje, můžete si udělat senzor vlhkosti půdy vlastníma rukama. Arduino nepocítí rozdíl. V zásadě je systém stejný. Jednoduše, místo dvou senzorů můžete dát vlastní a použít materiál, který je méně náchylný ke korozi. Ideálně samozřejmě použít zlato, ale vzhledem k jeho ceně to přijde hodně drahé. Obecně je nákup levnější, vzhledem k ceně FC-28.
Pro a proti
Článek pojednával o možnostech připojení snímače půdní vlhkosti k Arduinu a byly také uvedeny příklady programového kódu. FC-28 je opravdu dobrý senzor vlhkosti půdy, ale jaké jsou konkrétní výhody a nevýhody tohoto senzoru?
Výhody:
- Cena. Tento senzor má velmi nízkou cenu, takže každý radioamatér si bude moci koupit a postavit vlastní automatický zavlažovací systém pro rostliny. Při práci s velkými měřítky samozřejmě tento snímač není vhodný, ale není k tomu určen. Pokud potřebujete výkonnější senzor - SM2802B, budete za něj muset zaplatit poměrně vysokou částku.
- Jednoduchost. Zvládnutí práce s tímto senzorem vlhkosti půdy v Arduinu můžekaždý. Jen pár drátů, pár řádků kódu – a je to. Kontrola půdní vlhkosti provedena.
Nevýhody: