Serwisy partnerskie:
Close icon
Serwisy partnerskie

Inteligentny system irygacji

Jest to system nawadniania oparty na Internecie Rzeczy (IoT), który automatycznie włącza pompę wodną, gdy wilgotność gleby na polu spadnie poniżej ustalonego poziomu progowego. Składa się on z trzech części - nadajnika, odbiornika i systemu IoT.
Article Image

Układ i działanie

Na rysunku 1 pokazano schemat blokowy. Oprócz układu IoT, układ składa się z nadajnika i odbiornika, których schematy przedstawiono odpowiednio na rysunku 2 i rysunku 3.

Rysunek 1. Schemat blokowy systemu irygacji
Rysunek 2. Schemat nadajnika
Rysunek 3. Schemat odbiornika

Nadajnik

Nadajnik zbudowany jest z modułu nadajnika RF 433 MHz (TX1), enkodera HT12E (IC1) oraz tranzystora BC547 (T1). Jest on instalowany na polu wraz z czujnikiem wilgotności gleby (SS1). Sygnał z czujnika jest przesyłany przez TX1 do odbiornika, który jest zainstalowany w pobliżu - w odległości kilku metrów od nadajnika. Nadajnik pracuje z zasilaniem 5 V DC.

Poziom progowy wilgotności gleby można ustawić za pomocą wbudowanego w moduł czujnika glebowego potencjometru. Gdy wilgotność gleby na polu spadnie poniżej poziomu progowego, czujnik wytwarza sygnał aktywny niski (0 V), który trafia do bazy tranzystora odwracającego T1. Enkoder IC1 odbiera sygnał aktywny wysoki na pin 10 (AD8) z kolektora T1 i generuje dane szeregowe na pin 17 (DOUT), przy czym jego piny adresowe A0 do A7 są połączone z masą.

Zmodulowany sygnał ASK RF z DOUT jest transmitowany przez moduł TX1 na częstotliwości 433 MHz. J1 jest używany do opcjonalnego wejścia czujnika dla opcjonalnego silnika w obwodzie odbiornika.

Odbiornik

Odbiornik składa się z modułu odbiornika RF 433 MHz (RX1), dekodera HT12D (IC2), dwóch tranzystorów BC317 (T2 i T3), przekaźnika 5 V z pojedynczą zmianą (RL1) oraz NodeMCU (Board1). Odbiornik ten działa również z zasilaniem 5 V DC.

Fotografia 4. Moduł NodeMCU

Sygnał z nadajnika jest odbierany przez moduł odbiornika 433 MHz RX1. Dekoder HT12D, którego piny adresowe A0 do A7 są połączone z masą, odbiera dane szeregowe na swoim pinie 14 z RX1. Pin danych D8 układu IC2 napędza przekaźnik poprzez tranzystory T2 i T3.

Fotografia 5. Moduł czujnika wilgotności gleby

Dioda 1N4007 (D2) podłączona w trybie odwrotnego biasu jest używana do ochrony obwodu przed skokami napięcia podczas włączania/wyłączania pompy wodnej. LED3 służy do sygnalizacji włączenia zasilania, LED4 do sygnalizacji sygnału RF, a LED1 do sygnalizacji stanu pracy silnika pompy wodnej. W przypadku zastosowania opcjonalnego czujnika na J1 w nadajniku, LED2 sygnalizuje stan opcjonalnego silnika.

System IoT

Sercem systemu IoT jest moduł Wi-Fi NodeMCU ESP32/8266. Pin danych D8 układu IC2 jest połączony z pinem D0 modułu NodeMCU (Board1), aby przekazywać stan włączenia/wyłączenia silnika na zdalny komputer lub smartfon poprzez chmurę. Platforma IoT firmy Adafruit jest używana do monitorowania stanu pompy wodnej online.

Wyłączanie pompy

Gdy gleba jest odpowiednio wilgotna, na wyjściu SS1 pin D0 jest niski, co powoduje, że tranzystor T1 przestaje przewodzić. Napięcie na kolektorze T1 staje się wysokie (5 V), które jest podłączone do pinu AD8 układu IC1. Nadajnik TX1 nadaje ten sygnał, który jest odbierany przez odbiornik RX1, dekodowany i przekazywany do tranzystora T2 przez rezystor R10. Tranzystor T2 przewodzi, przez co jego kolektor jest w stanie niskim, co powoduje wyłączenie tranzystora T3. Powoduje to odłączenie przekaźnika RL1 i wyłączenie podłączonej do niego pompy.

Włączenie pompy

Gdy gleba jest sucha, na wyjściu SS1 na styku D0 jest stan wysoki, co powoduje przewodzenie tranzystora T1. Napięcie kolektora T1 staje się niskie (0 V), jest podłączone do styku AD8 układu IC1.

Nadajnik TX1 nadaje ten sygnał, który jest odbierany przez odbiornik RX1, dekodowany i przekazywany do tranzystora T2. Dzięki temu tranzystor T3 przewodzi i załącza przekaźnik RL1, co powoduje włączenie pompy.

Platforma IoT firmy Adafruit

NodeMCU Wi-Fi jest podłączony do Adafruit.io open source cloud service, aby dostarczać dane w czasie rzeczywistym online. Kroki do zorganizowania panelu na platformie Adafruit.io IoT to:

  1. Otwórz stronę io.adafruit.com. Utwórz konto z unikalną nazwą użytkownika. Zapisz tę nazwę użytkownika, ponieważ będzie ona później używana w kodzie Arduino (program_soil.ino).
  2. Wygeneruj klucz i zanotuj go. Jest to długi, unikalny identyfikator, którego używasz do uwierzytelniania każdego urządzenia korzystającego z Twojego konta. Otrzymujesz jeden klucz na konto, ale w każdej chwili możesz go cofnąć i zregenerować.
  3. Po utworzeniu konta, musisz zarządzać swoimi kanałami do publikowania na pulpicie nawigacyjnym. (Feeds to w zasadzie zestaw danych, które możesz odczytywać lub zapisywać, jak określono w programie, zgodnie z Twoją aplikacją). W tym projekcie użyliśmy Relay1 na dashboardzie, jak pokazano na rysunkach 6 i 7.
Rysunek 6. Relay1 włączony
Rysunek 7. Relay1 wyłączony

Więcej szczegółów dotyczących konfiguracji z Adafruit IoT i NodeMCU jest podane w pliku dokumentu 'Interfacing with Adafruit and NodeMCU' w folderze z kodem źródłowym.

Oprogramowanie

Arduino IDE jest używane do programowania płytki NodeMCU (Board1). Kod Arduino 'program_soil.ino' należy wgrać na płytkę NodeMCU przed podłączeniem jej do obwodu odbiornika.

Podłącz NodeMCU do komputera PC/laptopa i wybierz odpowiedni port COM oraz nazwę płytki z menu Narzędzia w Arduino IDE. Nazwa płytki, której użyto w tym projekcie to "NodeMCU 1.0 ESP-12E Module". Nazwa płytki będzie zależała od modelu, który jest używany.

Przed kompilacją i załadowaniem kodu źródłowego, nie zapomnij dołączyć bibliotek ESP8266WiFi.h, Adafruit i MQTT z Library Manager. Należy również dodać pakiet 'package_esp8266com_index.json' w Preferencjach w Arduino IDE, jak pokazano na rysunku 8.

Rysunek 8. Dodanie pliku package_esp8266com_index.json w Arduino IDE

Następnie otwórz kod program_soil.ino z Arduino IDE i wprowadź kilka zmian, takich jak Wifi SSID, hasło, nazwę użytkownika Adafruit i klucz z własnymi danymi, jak pokazano w poniższym kodzie:

#include
#include
#include “Adafruit_MQTT.h”
#include “Adafruit_MQTT_Client.h”
#define S0 D0
#define WLAN_SSID “Samsungi” //
**Your wifi name ssid** change it(1)
#define WLAN_PASS “abcd123456” //
**Your WIFI password*** change it(2)
#define aio_server “io.adafruit.com”
//adafruit server
#define AIO_SERVERPORT 1883
#define aio_username “jitendra41085”
//** adafruit username** change it (3)
#define aio_key
“859813f4cb144ee5b0f9e124a239a3f4”
//**adafruit auth key**change it (4)
wificlient client;
Adafruit_MQTT_Client mqtt(&client, AIO_
SERVER, AIO_SERVERPORT, AIO_USERNAME,
AIO_KEY);
Adafruit_MQTT_Publish photocel3 =
Adafruit_MQTT_Publish(&mqtt, AIO_
USERNAME “/feeds/
Relay1”);
void MQTT_connect();
void setup(void)

Następnie należy skompilować i wgrać kod źródłowy na płytkę NodeMCU klikając na przycisk Upload.

Budowa i testowanie

Schemat ideowy płytki drukowanej dla przetwornika pokazano na rysunku 9, a rozmieszczenie jego elementów na rysunku 10. Po zmontowaniu układu na płytce należy podłączyć zasilanie 5 V do złącza CON1.

Rysunek 9. Układ płytki drukowanej nadajnika
Rysunek 10. Układ komponentów płytki drukowanej nadajnika

Na rysunku 11 przedstawiono schemat ideowy odbiornika, a na rysunku 12 - schemat ideowy jego elementów. Po zmontowaniu układu na płytce należy podłączyć kolejne zasilanie 5 V do złącza CON3. Jako przekaźnika RL1 użyć przekaźnika o napięciu 5 V i prądzie znamionowym 10 A. Ponieważ przekaźnik RL1 nie jest montowany na płytce drukowanej, podłącz jego cewkę do płytki drukowanej w miejscu oznaczonym RL1. Podłączyć włącznik/wyłącznik pompy wodnej do styków biegunowych i zwiernych przekaźnika.

Rysunek 11. Układ płytki drukowanej odbiornika
Rysunek 12. Układ komponentów płytki drukowanej odbiornika

Włącz obwody nadajnika i odbiornika. Zaloguj się na stronie io.adafruit.com i otwórz utworzony wcześniej panel. W zależności od poziomu wilgotności gleby na polu, zobaczysz stan przekaźników na panelu, jak pokazano na rysunkach 6 i 7. Gdy stan Relay1 wynosi 1, silnik jest włączony, a gdy stan Relay1 wynosi 0, silnik jest wyłączony. Stan przekaźnika będzie się zmieniał automatycznie w zależności od poziomu wilgotności gleby na polu.

Fotografia 13. Autorski prototyp nadajnika i odbiornika dla Inteligentnego Systemu Nawadniania

Do testowania/sprawdzania sygnałów

w obwodach nadajnika i odbiornika (rysunek 2 i rysunek 3), oczekiwane sygnały w różnych punktach są wymienione w tabeli 1.

Tabela 1.
Do pobrania
Download icon Schemat montażowy i PCB

Artykuł Smart Agriculture Irrigation System opracowano w wersji polskiej na podstawie współpracy z portalem www.electronicsforu.com.

Tematyka materiału: ESP8266, 433MHz, HT12E, HT12D, Wi-Fi, NodeMCU, czujnik wilgotności
AUTOR
Źródło
www.electronicsforu.com
Udostępnij
UK Logo