- Wymagane komponenty do projektu systemu nawadniania roślin Arduino
- Objaśnienie obwodu:
- Objaśnienie robocze:
- Objaśnienie programowania:
Ilekroć wyjeżdżaliśmy na kilka dni za miasto, zawsze martwiliśmy się o nasze rośliny, które regularnie potrzebują wody. Więc tutaj tworzymy automatyczny system nawadniania roślin wykorzystujący Arduino, który automatycznie dostarcza wodę do twoich roślin i informuje cię na bieżąco, wysyłając wiadomość na twój telefon komórkowy.
W tym nawadniania systemu roślin, gleby czujnika wilgotności sprawdza poziom wilgoci w glebie, jeśli poziom wilgoci jest niska, wtedy Ciężki włącza pompę wody, aby dostarczyć wodę do roślin. Pompa wodna wyłącza się automatycznie, gdy system znajdzie wystarczającą ilość wilgoci w glebie. Za każdym razem, gdy system włącza lub wyłącza pompę, wysyłany jest do użytkownika komunikat poprzez moduł GSM, aktualizujący stan pompy wodnej i wilgotność gleby. Ten system jest bardzo przydatny w gospodarstwach rolnych, ogrodach, domach itp. System ten jest całkowicie zautomatyzowany i nie ma potrzeby jakiejkolwiek interwencji człowieka.
Wymagane komponenty do projektu systemu nawadniania roślin Arduino
- Arduino Uno
- Moduł GSM
- Tranzystor BC547 (2)
- Przewody łączące
- LCD 16x2 (opcjonalnie)
- Zasilacz 12v 1A
- Przekaźnik 12v
- Pompa chłodnicy wody
- Czujnik wilgotności gleby
- Rezystory (1k, 10k)
- Zmienny Resister (10k, 100k)
- Złącze końcowe
- Regulator napięcia IC LM317
Moduł GSM:
Tutaj użyliśmy modułu TTL SIM800 GSM. SIM800 to kompletny czterozakresowy moduł GSM / GPRS, który może być łatwo wbudowany przez klienta lub hobbysty. Moduł SIM900 GSM zapewnia interfejs zgodny ze standardami branżowymi; SIM800 zapewnia wydajność GSM / GPRS 850/900/1800 / 1900MHz dla głosu, SMS-ów i danych przy niskim zużyciu energii. Konstrukcja tego modułu SIM800 GSM jest smukła i kompaktowa. Jest łatwo dostępny na rynku lub online w serwisie eBay.
- Czterozakresowy moduł GSM / GPRS o niewielkich rozmiarach.
- Włączony GPRS
- Wyjście TTL
Dowiedz się więcej o module GSM i poleceniach AT tutaj. Sprawdź również nasze różne projekty wykorzystujące GSM i Arduino, aby poprawnie zrozumieć ich interfejs.
Objaśnienie obwodu:
W tym systemie nawadniania roślin użyliśmy domowej roboty sondy czujnika wilgotności gleby, aby wykryć poziom wilgotności gleby. Aby wykonać sondę, wycięliśmy i wytrawiliśmy pokrytą miedzią płytkę zgodnie z poniższym rysunkiem. Jedna strona sondy jest bezpośrednio podłączona do Vcc, a druga końcówka sondy jest podłączona do podstawy tranzystora BC547. Potencjometr jest podłączony do podstawy tranzystora, aby wyregulować czułość czujnika.
Arduino służy do sterowania całym procesem tego automatycznego systemu nawadniania roślin. Wyjście obwodu czujnika gleby jest bezpośrednio podłączone do cyfrowego pinu D7 Arduino. W obwodzie czujnika zastosowano diodę LED, stan tej diody LED WŁĄCZONY wskazuje na obecność wilgoci w glebie, a stan WYŁĄCZENIA wskazuje na brak wilgoci w glebie.
Moduł GSM służy do wysyłania wiadomości SMS do użytkownika. Tutaj użyliśmy modułu GSM TTL SIM800, który bezpośrednio przekazuje i pobiera logikę TTL (użytkownik może użyć dowolnego modułu GSM). Regulator napięcia LM317 służy do zasilania modułu SIM800 GSM. LM317 jest bardzo wrażliwy na napięcie znamionowe i przed użyciem zaleca się przeczytanie jego arkusza danych. Jego napięcie robocze wynosi od 3,8 V do 4,2 V (do obsługi należy preferować 3,8 V). Poniżej znajduje się schemat obwodu zasilania podany dla modułu GSM TTL sim800:
Jeśli użytkownik chce użyć modułu SIM900 TTL, powinien użyć 5 V, a jeśli użytkownik chce użyć modułu SIM900, należy przyłożyć 12 V do gniazda DC Jack na płycie.
Przekaźnik 12 V służy do sterowania małą pompą wodną 220 VAC. Przekaźnik jest sterowany tranzystorem BC547, który jest dodatkowo podłączony do cyfrowego pinu 11 Arduino.
Opcjonalny wyświetlacz LCD służy również do wyświetlania stanu i komunikatów. Piny sterujące LCD, RS i EN są podłączone do pinów 14 i 15 Arduino, a piny danych LCD D4-D7 są bezpośrednio podłączone do pinów 16, 17, 18 i 19 Arduino. Wyświetlacz LCD jest używany w trybie 4-bitowym i jest sterowany przez wbudowaną bibliotekę LCD Arduino.
Poniżej znajduje się schemat obwodu tego systemu nawadniającego z arduino i czujnikiem wilgotności gleby:
Objaśnienie robocze:
Działanie tego automatycznego systemu nawadniania roślin jest dość proste. Przede wszystkim jest to całkowicie zautomatyzowany system i nie ma potrzeby posiadania siły roboczej do sterowania systemem. Arduino służy do sterowania całym procesem, a moduł GSM służy do wysyłania komunikatów alarmowych do użytkownika na jego telefonie komórkowym.
Jeśli wilgoć jest obecna w glebie, pomiędzy dwiema sondami czujnika wilgotności gleby występuje przewodzenie i z powodu tego przewodzenia tranzystor Q2 pozostaje w stanie wyzwolony / włączony, a styk Arduino D7 pozostaje niski. Kiedy Arduino odczyta sygnał LOW na D7, wysyła SMS-a do użytkownika o „Wilgotność gleby jest normalna. Silnik wyłączony ”, a pompa wodna pozostaje w stanie wyłączenia.
Teraz, jeśli w glebie nie ma wilgoci, tranzystor Q2 staje się wyłączony, a pin D7 staje się wysoki. Następnie Arduino odczytuje Pin D7 i włącza silnik wodny, a także wysyła wiadomość do użytkownika o „Wykryto niską wilgotność gleby. Silnik włączony ”. Silnik wyłączy się automatycznie, gdy w glebie będzie wystarczająca ilość wilgoci. Następnie zapoznaj się z filmem demonstracyjnym i kodem (podanym na końcu), aby lepiej zrozumieć proces pracy nad projektem.
Objaśnienie programowania:
Kod tego programu jest łatwo zrozumiały. Przede wszystkim włączyliśmy bibliotekę SoftwareSerial, aby stworzyć pin 2 i 3 jako Rx i Tx, a także dołączono LiquidCrystal dla LCD. Następnie zdefiniowaliśmy zmienne dla silnika, czujnika wilgotności gleby, diody LED itp.
#zawierać
Następnie w funkcji void setup () , komunikacja szeregowa jest inicjowana z prędkością 9600 bps i kierunki są podawane do różnych pinów. W celu zainicjowania modułu GSM wywoływana jest funkcja gsmInit .
Serial1.begin (9600); Serial.begin (9600); pinMode (led, WYJŚCIE); pinMode (silnik, WYJŚCIE); pinMode (czujnik, INPUT_PULLUP); lcd.print ("Water Irrigaton"); lcd.setCursor (4,1); opóźnienie (2000); lcd.clear (); lcd.print ("Circuit Digest"); lcd.setCursor (0,1); lcd.print ("Z zadowoleniem przyjmuje"); opóźnienie (2000); gsmInit ();
Następnie czujnik jest odczytywany w funkcji void loop () , a silnik jest włączany lub wyłączany zgodnie ze stanem czujnika, a także wysyłany jest SMS do użytkownika za pomocą funkcji sendSMS . Sprawdź różne funkcje w pełnym kodzie podanym na końcu.
void loop () {lcd.setCursor (0,0); lcd.print ("Tryb automatyczny"); if (digitalRead (czujnik) == 1 && flag == 0) {opóźnienie (1000); if (digitalRead (czujnik) == 1) {digitalWrite (led, HIGH); sendSMS ("Wykryto niską wilgotność gleby. Silnik włączony"); lcd.begin (16,2); lcd.setCursor (0,1);…………………
Tutaj funkcja gsmInit () jest ważna i użytkownicy przeważnie mają trudności z jej poprawnym ustawieniem. Służy do inicjalizacji modułu GSM, gdzie najpierw sprawdza się, czy moduł GSM jest podłączony, czy nie, wysyłając polecenie „AT” do modułu GSM. Jeśli otrzymano odpowiedź OK, oznacza to, że jest gotowa. System sprawdza, czy moduł jest gotowy lub do otrzymania „OK”. Następnie ECHO jest wyłączane przez wysłanie komendy ATE0, w przeciwnym razie moduł GSM powtórzy wszystkie komendy. W końcu dostępność sieci jest sprawdzana przez „AT + CPIN?” polecenie, jeśli włożona karta jest kartą SIM i obecny jest kod PIN, daje odpowiedź GOTOWE. Jest to również sprawdzane wielokrotnie, aż do znalezienia sieci. Można to wyraźnie zrozumieć na poniższym filmie.
void gsmInit () {lcd.clear (); lcd.print ("Znajdowanie modułu.."); boolean at_flag = 1; while (at_flag) {Serial1.println ("AT"); while (Serial1.available ()> 0) {if (Serial1.find ("OK")) at_flag = 0; } opóźnienie (1000); }……………….
Dzięki temu automatycznemu systemowi nawadniania nie musisz martwić się o swoje rośliny, gdy jesteś z dala od domu. Można go dodatkowo ulepszyć w celu obsługi i monitorowania przez Internet.