Arduino UNO - zalévač květin

V GME jsem zakoupil vývojový modul Arduino UNO, který je osazen procesorem ATMEGA 328P.  Arduino Uno je vývojová deska s mikroprocesorem ATMega328 určená, jak pro úplné začátečníky tak pro pokročilé. Tato deska je nástupce Arduina Duemilanove pro rok 2011. Lze se s ní naučit práci s mikroprocesory za použití speciálního jednoduchého jazyku Wiring.

arduino_kytka

 

Specifikace ARDUINA

Mikroprocesor: Atmel ATMega328, 16MHz takt, 32kB flash paměť, 2kB SRAM paměť, 1kB EEPROM paměť, Architektura, Atmel AVR.
Připojitelnost k PC: USB-RS-232 za použití převodníku úrovní.
Napájení: 5V USB (nebo 7-12V adaptér).
I/O piny: 14 digitálních, 0,1 - sériová linka, 2,3 - externí přerušení, 3,5,6,9,10,11 - PWM, 10,11,12,13 - SPI (s knihovnou SPI library), 4,5 - I2C (s knihovnou Wire library), 6 vstupních analogových.
Programovací jazyk: Wiring s Processing IDE (reference). Multiplatformní vývojové prostředí (Win/Linux/Mac/...)

 

O co jde...
Protože mám v práci kytičku, která již nejde normálně přenášet domů a zpět rozhodl jsem se vymyslet a postavit automatické zalévání květin.

 

Automat pro zalévání obsahuje tyto prvky:

a) LCD displej s nastavením kontrastu
b) dvě čidla vlhkosti (nerezové drátové elektrody) - dostatek vody v zásobníku - vlhkost půdy
c) čerpadlo na 230V (lépe bude osaditnapříklad čerpadlo na 12V a spínat ho například přes relé...
d) LED diodu signalizující nedostatek vody v zásobníku
e) Potenciometr pro nastavení max. času běhu čerpadla v případě poruchy
f) Potenciometr pro nastavení úrovně požadované vlhkosti
g) napájecí zdroj pro Arduino Uno

 

LCD displej zobrazuje následující stavové hlášky:

NAST CAS (sec) - xxxx 
(hodnota 0-1023 sekund tzn 0-17minut)
NAST PUDY (%) - xxx 
(hodnota 0-100 % požadovaná vlhkosti)
STAV NADRZE: hladina OK 
(pokud klesne hladina v zásobníku pod hranici elektrod skočí program do chybové hlášky ERROR 1 a vypíná čerpadlo)
STAV CERPADLA: start
(čerpadlo je zapnuté)
STAV CERPADLA: stop 
(čerpadlo je vypnuté)
ERROR 1: dosla voda!
(zastavení programu a informování o nedostatku vody, zároveň rozbliká pro indikaci červenou LED v zásobníku s vodou)
ERROR 2: max cas cerp!
(pokud je čerpadlo zapnuté a nedojde k zavlažení elektrod v půdě do určité nastavitelné doby, dojde k zobrazení hlášky ERROR 2 a zablokování obvodu)

 

 

 

Funkce:
Při zapnutí napájení automatu se na 3 vteřiny zobrazí reklama :-) www.pihrt.com a program skočí do smyčky, při které neustále načítá vstupy ze sond a nastavení potenciometrů (požadovaná hodnota). Na LCD displeji se zobrazují stavové hlášky automatu. Pokud v zásobníku dojde voda automat:
a) vypne čerpadlo (pokud zrovna čerpalo vodu)
b) rozbliká červenou LED v zásobníku vody
c) na LCD vypíše chybovou hlášku ERROR 1: dosla voda!
Tento stav setrvává do doby doplnění vody do zásobníku. Potenciometrem P1 lze nastavit požadovanou úroveň vlhkosti půdy v rozsahu 0-100% (100% = voda, 0% = vzduch). Pokud klesne vlhkost půdy pod nastavenou mez potenciometru P1 dojde k sepnutí čerpadla a zavlažování květiny. Potenciometrem P2 lze nastavit čas běhu čerpadla v rozsahu 0-1023 sekund (0-17 minut). Při zapnutí čerpadla se spustí vnitřní časovač v automatu do doby vypnutí čerpadla (při vypnutém čerpadlu je časovač vynulován). Pokud by z nějakého důvodu při zapnutí čerpadla nedošlo k zalití květiny dojde po uplynutí doby časovače k zablokování automatu (příklad prasklá hadice od čerpadla, nebo vadné čerpadlo: nastavený čas=dvě minuty, požadovaná vlhkost=60%, naměřená vlhkost na sondě=50%, čerpadlo zapne a dodává vodu, do dvou minut musí stoupnout vlhkost na sondě na požadovanou hodnotu, pokud do dvou minut nedojde k zavlažení vypne se čerpadlo, vypíše se chybová hláška ERROR 2 a dojde k zablokování obvodu).

 

Fotografie prototypu:
nádoba na vodu
Sonda pro měření vlhkosti půdy
Pohled na elektroniku automatu - prototyp
Automat - přední pohled
Pohled na zásobník s vodou
Pohled na květinu se sondou a hadičkou zalévání
Komplet sestava
Schema zapojení automatu (verze bez ethernetu)
 
Schema zapojení
Update 29.9.2012:
a) po dvouměsíční zkušenosti z provozu jsem zjistil, že bude potřeba vyřešit měření hladiny vody a vlhkosti kytky jiným způsobem než DC proudem (tušil jsem, že bude problém... Odcházejí dokonce i nerezové elektrody). Řešení: nahradit DC za AC měření - převodník kapacita/napětí.
b) připojit teplotní senzor Dalas...
c) dořešit připojení k LAN a Internetu pro možnost vzdáleného sledování stavu automatu