środa, 9 listopada 2016

Automatyczne nawadnianie szklarni na Arduino

Dzisiaj opiszę jak wykonać sterownik na Arduino do automatycznego podlewania małej szklarni.

Do swojego projektu wykorzystałem:

Sterownik:

1. Arduino Mini Pro 5V 16 MHz - koszt 9,90 zł -> Link
2. Wyświetlacz LCD 16x2 niebieski - koszt 9,90 zł -> Link
3. Czujnik wilgotności gleby - koszt 9,90 zł -> Link
4. Czujnik temperatury DS18B20 - koszt 4,50 zł -> Link
5. Potencjometr obrotowy 10k - koszt 2,50 zł -> Link
6. Płytka uniwersalna do zmontowania układu, ja wykorzystałem 2 płytki uniwersalne jakie miałem w domu, ale taka płytka powinna być dobra -> Link - koszt 3,50 zł
7. Obudowa czarna z okienkiem - koszt 5,70 zł -> Link

Będą jeszcze potrzebne 3 diody led, ja wykorzystałem jedną czerwoną, zieloną i żółtą oraz 3 rezystory 200 ohm do podłączenia diod i jeden rezystor podciągający 4,7k do czujnika DS18B20.

Koszt sterownika razem z obudową powinien się zamknąć w kwocie około 45 zł.

Pozostałe elementy:

Do włączania pompki wykorzystałem moduł przekaźnika 5v - koszt 6,40 zł -> Link

Woda będzie pobierana z beczki w ogrodzie, do pompowania wody wykorzystałem pompkę wymontowaną z starej uszkodzonej zmywarki.


Do zasilania Arduino wykorzystałem zasilacz 5v - koszt na Allegro około 5 zł.

Schemat połączeń wygląda jak niżej.


Do wyświetlacza LCD zostały podłączone następujące piny Arduino:
VSS - GND
VDD - VCC
V0 - środkowa nóżka potencjometru 10K
RS - pin 12
RW - GND
E - pin 11
D4 - pin 5
D5 - pin 4
D6 - pin 3
D7 - pin 2
A - VCC
K - GND

Czujnik temperatury DS18B20 został podłączony do pinu 13 Arduino

Czujnik wilgotności gleby:
pin A0 czujnika do A0 Arduino
VCC czujnika do pinu 6 Arduino
GND czujnika do GND Arduino

Diody led:
Czerwona przez rezystor 200 ohm - pin 7 Arduino
Żółta przez rezystor 200 ohm - pin 8 Arduino
Zielona przez rezystor 200 ohm - pin 9 Arduino

Przekaźnik został podłączony do pinu 10 Arduino

Kod programu do wgrania do Arduino jest do pobrania tu -> Link

W kodzie programu wilgotność została ustawiona na 55 %, jeżeli wartości wilgotności będzie mniejsza niż 55% to włącza się pompa, zapala się czerwona dioda led informująca o włączeniu pompy oraz żółta dioda led informująca, że jest sucho.

Określono to w 74 linijce kodu:
if(moistureLevel < 55)


Jeżeli wilgotność będzie większa lub równa 55% wyłącza się pompa, czerwona i żółta dioda led i zapala się zielona dioda led informująca, że jest mokro.

Określono to 53 linijce kodu:
if(moistureLevel >= 55)

Na wyświetlaczu jest pokazywana aktualna wilgotność gleby oraz temperatura.

Działanie widać na poniższym filmie.


Działanie z podłączoną pompą.

13 komentarzy:

  1. Potencjometr do czego służy?

    OdpowiedzUsuń
  2. Do regulacji widocznosci liter na wyswietlaczu.

    OdpowiedzUsuń
  3. Witam
    Podalbys nazwę lub wymiary tej obudowy?
    Z góry dziękuję i pozdrawiam

    OdpowiedzUsuń
  4. Witam
    Podalbys nazwę lub wymiary tej obudowy?
    Z góry dziękuję i pozdrawiam

    OdpowiedzUsuń
  5. Jest podany link do sklepu wraz z wymiarami.

    OdpowiedzUsuń
  6. Okienko jest troche za duze na wyswietlacz, ale mozna czyms podkleic.

    OdpowiedzUsuń
  7. Cześć a dałbyś radę zrobić takawersje 2.0 tak aby te parametry były widoczne w domoticz i mozna było zdalnie włączyć pompe ?

    OdpowiedzUsuń
  8. Nie da rady do tego dodać jeszcze moduł NRF24L01, bo piny do podłączenia modułu NRF wykorzystane są przez wyświetlacz. Trzeba by napisać całkiem nowy program w wersji bez wyświetlacza, a warunek włączania pompy najlepiej zdefiniować sobie w zdarzeniach w Domoticz. Jak pisać programy dla MySensors napisałem w tym wpisie http://projektpimalina.blogspot.com/2016/11/instalacja-starych-i-nowych-bibliotek.html

    OdpowiedzUsuń
  9. Ja nie mam czasu pisania dla każdego programów, dlatego opisałem jak odbywa się przesyłanie danych MySensors, aby każdy mógł sobie sam napisać program.

    OdpowiedzUsuń
  10. Interesuje mnie twój projekt i chce sobie też taki zrobić pytanie czy od 2016 zrobiłeś jakieś zmiany co do niego?

    OdpowiedzUsuń
  11. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
  12. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń