Spisu treści:

DIY - Automatyczne nawadnianie ogrodu - (Arduino / IOT): 9 kroków (ze zdjęciami)
DIY - Automatyczne nawadnianie ogrodu - (Arduino / IOT): 9 kroków (ze zdjęciami)

Wideo: DIY - Automatyczne nawadnianie ogrodu - (Arduino / IOT): 9 kroków (ze zdjęciami)

Wideo: DIY - Automatyczne nawadnianie ogrodu - (Arduino / IOT): 9 kroków (ze zdjęciami)
Wideo: The easiest way to make a homemade drip irrigation system ll DIY home drip irrigation system 2024, Lipiec
Anonim
DIY - Automatyczne nawadnianie ogrodu - (Arduino / IOT)
DIY - Automatyczne nawadnianie ogrodu - (Arduino / IOT)
DIY - Automatyczne nawadnianie ogrodu - (Arduino / IOT)
DIY - Automatyczne nawadnianie ogrodu - (Arduino / IOT)
DIY - Automatyczne nawadnianie ogrodu - (Arduino / IOT)
DIY - Automatyczne nawadnianie ogrodu - (Arduino / IOT)

Ten projekt pokaże Ci, jak zbudować sterownik nawadniania do przydomowego ogrodu. Potrafi mierzyć odczyty wilgotności gleby i aktywować nawadnianie z kranu ogrodowego, jeśli gleba stanie się zbyt sucha. Sterownik zawiera również czujnik temperatury i wilgotności. Sterownik nie uruchomi baterii ogrodowej, jeśli temperatura będzie zbyt niska. Odczyty czujników i statystyki dotyczące zużycia wody / czasów działania są rejestrowane na ThingsBoard IOT w celu wizualizacji i analiz. Alerty i wiadomości e-mail są wyzwalane, gdy sterownik nawadniania przestaje przesyłać dane, gleba staje się zbyt sucha lub zbyt nasycona.

Warunki wstępne

  • Znajomość Arduino obejmująca przynajmniej podstawowe kodowanie dla Arduino i lutowanie.
  • 1x ciśnieniowy kran ogrodowy

Zestawienie materiałów

  • Rury do nawadniania ogrodu, dysze, kroplowniki itp.
  • Elektroniczny zegar z dwoma pokrętłami (np. Elektroniczny cyfrowy zegar z kranu Aqua Systems)
  • Reduktor ciśnienia kranu 300kpa
  • Arduino Uno
  • Tarcza Lory Arduino
  • Brama Lora (nie jest potrzebna, jeśli masz w zasięgu lokalną bramę sieci Things Network)
  • Czujnik temperatury i wilgotności DHT11
  • Przekaźnik 5v
  • Kabel telefoniczny
  • Opaski
  • Samochodowe rury faliste dzielone
  • Samochodowe listwy zaciskowe do terminali
  • 2x ocynkowane gwoździe
  • 1x Rezystor
  • Krzem / Uszczelniacz
  • Cement PCV
  • Podkład PCV
  • Rura PVC 32mm szerokość x 60mm długość
  • Rura PVC 90mm szerokość x 30cm długość
  • 3x Zaślepki wciskane z PCV 90mm
  • 1x Zaślepka Śruby PCV 90mm
  • 1x gwintowana wkładka z PVC 90mm
  • 1x Zaślepki z PCV 32mm
  • 1x źródło zasilania 3,2 V (zegar kranu) [baterie, adapter AC multivolt]
  • 1x źródło zasilania 6-12V (arduino) [baterie, USB, zasilacz USB na AC]
  • taśma uszczelniająca gwint
  • Taśma elektryczna

Krok 1: Zainstaluj nawadnianie ogrodu

Zainstaluj nawadnianie ogrodu
Zainstaluj nawadnianie ogrodu
Zainstaluj nawadnianie ogrodu
Zainstaluj nawadnianie ogrodu

Ułóż rurę polietylenową, dopasuj dysze, linie kroplowe i kroplowniki. Sterownik nawadniania będzie współpracował z każdym wyposażeniem nawadniającym. Jego istotą jest pomiar odczytów wilgotności gleby i aktywowanie timera kranu, jeśli i kiedy gleba jest zbyt sucha. Sterownik można skalibrować, aby ustawić dolny punkt nasycenia, jak długo odliczanie ma być włączone i jak często sterownik powinien sprawdzać nasycenie.

Ustawienia te można zmienić na arduino i zapisać w pamięci EPROM. Ustawienia można również zaktualizować przez integrację IOT. Ten projekt będzie uruchamiał sterownik co cztery godziny i odkręcał kran na 3 minuty, jeśli gleba jest zbyt sucha. Może działać kilka razy z rzędu, jeśli jest sucho/gorąco lub raz dziennie lub dwa w inny sposób.

Krok 2: Dopasuj minutnik

Dopasuj minutnik
Dopasuj minutnik

Zamontuj wyłącznik czasowy i poeksperymentuj z regulowanymi pokrętłami, aby ustalić przybliżoną częstotliwość i czas pracy, które najlepiej pasują do Twojej instalacji nawadniającej. Usuniemy timer i zmodyfikujemy go do pracy z Arduino.

Krok 3: Kompilacja Arduino

Budowa Arduino
Budowa Arduino
Budowa Arduino
Budowa Arduino
Budowa Arduino
Budowa Arduino
Budowa Arduino
Budowa Arduino

Użyj schematu okablowania jako przewodnika do kompilacji. Na zdjęciach zastosowano okablowanie telefoniczne oraz listwy zaciskowe śrubowe do punktów połączeniowych. Wymagane jest trochę lutowania.

Dotknij Modyfikacja timera

Ostrożnie rozebrać timer kranu. Będziemy na twardym okablowaniu dwóch regulowanych pokręteł, aby mogły być sterowane przez arduino zamiast pokręteł ręcznych. Lewa tarcza częstotliwości będzie na stałe ustawiona w pozycji resetowania, dzięki czemu prawe tarcze będzie można przełączać między pozycją wł./wył. Prawa tarcza będzie miała jeden przewód wychodzący ze środkowego prawego styku i zewnętrznego prawego styku, jak pokazano. Domyślnie zegar będzie w pozycji wyłączonej. Jeśli dwa przewody zetkną się, timer włączy się. Dzięki dwóm przewodom podłączonym do przekaźnika 5 V, arduino może następnie zamknąć / otworzyć styk między dwoma przewodami. Z jednym przewodem we wspólnym zacisku przekaźnika, a drugim w zacisku normalnie zamkniętym upewnimy się, że timer jest wyłączony, gdy arduino jest wyłączone. Ustawienie pinu przekaźnika na WYSOKI włączy timer; ustawienie go na LOW spowoduje wyłączenie timera.

Sonda gleby

W tym projekcie dwa gwoździe są przylutowane do przewodu podłączonego do zacisków śrubowych. Końcówka jednego gwoździa idzie prosto do ziemi. Drugi łączy się z wejściem analogowym w arduino i rezystorem. Rezystor łączy się z sygnałem arduino 5v. Pokazano na schemacie wykręcania.

Czujnik temperatury/wilgotności

Czujnik temperatury/wilgotności DHT11 jest podłączony do 5 V arduino, uziemienia i cyfrowego pinu w arduino.

Tarcza Lory

W tym projekcie wykorzystano również tarczę Dragino Lora (nie pokazaną na schemacie elektrycznym).

Podstawa PCV

Podstawa PVC dla arduino użytego w tym projekcie została zaprojektowana tak, aby czujnik temperatury/wilgotności mógł być wyeksponowany, a wszystkie inne elementy były zabezpieczone wewnątrz wodoodpornej obudowy PVC. Mały otwór jest wywiercony/wycięty na czujnik, a silikon służy do utrzymywania go na miejscu, jednocześnie zapobiegając przedostawaniu się wilgoci do arduino. Pokazano na schemacie.

Krok 4: Programowanie Arduino

Programowanie Arduino
Programowanie Arduino

Połącz komponenty razem za pomocą płytki stykowej lub listew zaciskowych w celu programowania i testowania

Konfiguracja EPROM

Najpierw musimy zapisać zmienne konfiguracyjne do pamięci EPROM. Uruchom następujący kod na swoim arduino:

Kod dostępny na Github

Tutaj DRY_VALUE jest ustawiona na 960. 1024 oznacza, że gleba jest całkowicie sucha, 0 oznacza całkowite nasycenie, 960 było dobrym poziomem nasycenia dla rezystora, długości kabla i użytych gwoździ. Może się to różnić w zależności od własnej konfiguracji.

VALVE_OPEN jest ustawiony na 180000 milisekund (3 minuty). Gdy/jeśli zegar kranu jest włączony, pozostanie on otwarty przez 3 minuty.

RUN_INTERVAL jest ustawiony na 14400000 milisekund (4 godziny). Oznacza to, że sterownik będzie sprawdzał wilgotność gleby co cztery godziny i włączy zegar kranu na 3 minuty, jeśli nasycenie jest niskie (powyżej 960).

Powyższy kod można w każdej chwili zmienić i te wartości zmodyfikować.

Kod programu

Kod dostępny na Github

Zależności:

  • CzasowaAkcja
  • Szef radia

W tym przykładzie użyto tarczy Dragino Lora, a konkretnie równoległego przykładu Lora z tarczą łączącą się bezpośrednio z bramą Dragino Lora.

Można to dostosować do korzystania z Things Network, usuwając kod w sekcji „BEGIN: lora vars” i zmieniając program tak, aby zawierał następujący przykład Dragino lub przystosowany do pracy z innymi nakładkami radia/wifi itp.

Dostarczony kod zakłada, że DHT11_PIN to cyfrowy pin 4, RELAY_PIN to cyfrowy pin 3, a analogowy pin wilgotności gleby to wejście analogowe 0.

Zmienna debugowania może mieć wartość true, dzięki czemu komunikaty debugowania szeregowego mogą być rejestrowane z szybkością transmisji 9600.

Krok 5: Budowa obudowy

Budowa obudowy
Budowa obudowy

Przytnij rurkę PVC, aby pasowała do timera kranu i podstawy Arduino. Wywierć otwory na złączkę kranu z wyłącznikiem czasowym i złączkę węża. Wywierć otwory w rurze wystarczająco szerokie dla przewodu samochodowego, wsuń w nie 10cm odcinki przewodu i wyciągnij przewody z arduino i kranu. Powinno to obejmować:

Z Arduino

  • Przewody zasilające i/lub kabel usb z portu USB arduino.
  • Kable do pomiaru wilgotności gleby (VCC, GND, A0)
  • Dwa przewody z zacisków śrubowych NC i wspólnych przekaźnika

Z timera kranu

  • Kable zasilające
  • Dwa przewody od prawych kontaktów wybierania

Krok 6: Testuj kontroler przed klejeniem

Testuj kontroler przed klejeniem
Testuj kontroler przed klejeniem
Testuj kontroler przed klejeniem
Testuj kontroler przed klejeniem

Upewnij się, że wszystko działa, zanim wszystko zapieczętujesz.

Powyższe zdjęcia pokazują przykładowy układ w esky, w którym sonda wilgotności gleby została umieszczona w doniczce, a zegar kranu był wyposażony w wodę pochodzącą z butelki po napoju.

Do kranu dołączony był jeden dripper.

To był dobry sposób na sprawdzenie, czy konfiguracja nie podlewa ani nie podlewa rośliny.

Ten przykład można uruchomić tak długo, jak jest to konieczne do kalibracji sterownika.

Krok 7: Klej / Wodoodporne Obudowy

Klej / Wodoodporne Obudowy
Klej / Wodoodporne Obudowy

Użyj podkładu PVC i cementu PVC, aby zabezpieczyć zaślepki i złącza.

Użyj masy uszczelniającej/silikonu, aby wypełnić wszelkie szczeliny wokół przewodów automatycznych i łączników wyłącznika czasowego.

W tym przypadku na obudowie arduino zastosowano nakrętkę końcową, aby zapewnić dostęp.

Krok 8: Zainstaluj

zainstalować
zainstalować
zainstalować
zainstalować
zainstalować
zainstalować

Zainstaluj w pogodny dzień. Elementy i przewody muszą pozostać suche, zanim zostaną uszczelnione.

Umieść sterownik gdzieś pośrodku pomiędzy miejscem, w którym znajduje się kran ogrodowy, a miejscem, w którym zostanie umieszczona sonda gruntowa.

Zamontuj zegar kranu i upewnij się, że nie jest on zasilany do czasu zakończenia instalacji.

Zamontuj sondę gruntową.

Podłącz zaciski taśmowe do każdego komponentu, a następnie ułóż kabel telefoniczny od zacisków śrubowych każdego komponentu, upewniając się, że kabel jest pokryty kanałem automatycznym. Łącząc wszystko razem

Uszczelnij wszystkie zaciski i wszelkie inne odsłonięte części taśmą uszczelniającą gwint, a następnie taśmą elektryczną.

Uszczelnij wszelkie luźne/odsłonięte obszary przepustu kablowego taśmą uszczelniającą gwint, a następnie taśmą elektryczną.

Podłącz timer do źródła zasilania 3.2V. Albo do akumulatora, albo do zasilacza 3,2 V DC - AC podłączonego do gniazdka sieciowego.

Podłącz Arduino do źródła zasilania 6-12 V DC. Albo do akumulatora, albo do zasilacza USB / DC-AC podłączonego do gniazdka sieciowego.

Włącz i przetestuj!

Krok 9: Integracja ThingsBoard - monitorowanie i raportowanie

Integracja ThingsBoard - monitorowanie i raportowanie
Integracja ThingsBoard - monitorowanie i raportowanie

W tym przykładzie użyto tarczy Dragino Lora połączonej z bramą Dragino Lora. Niezależnie od tego, czy używasz tej konfiguracji, innej konfiguracji Lora, czy jakiejkolwiek innej łączności IOT, dane zebrane przez kontroler nawadniania mogą być przekazywane na platformę IOT, taką jak Thingsboard. Domyślnie program przesyła następujący ciąg danych, w którym każdy bajt znaku jest zakodowany szesnastkowo:

TXXXHXXXSXXXXRX

Gdzie po T następuje temperatura, po H następuje wilgotność, po S następuje poziom nasycenia, a po R następuje pojedyncza cyfra odnosząca się do działania wykonanego w ostatnim przedziale czasowym. Może to być 0-5, gdzie każda cyfra oznacza:

0: Trwa inicjalizacja programu1: Usterka czujnika temperatury2: Temperatura była zbyt niska do uruchomienia3: Wilgotność gleby zbyt sucha, więc zegar kranu został aktywowany4: Wilgotność gleby drobna, więc zegar kranu nie został aktywowany5: Sterownik nawadniania został dezaktywowany

Istnieje kilka sposobów zainstalowania kopii Thingsboard na własnym sprzęcie lub możesz założyć darmowe konto na naszej instalacji ThingsBoard tutaj.

Skonfiguruj swoje urządzenie w Thingsboard

Postępuj zgodnie z tymi instrukcjami, aby dodać nowe urządzenie w Thingsboard, nazywając je „Kontrolerem nawadniania”.

Prześlij dane telemetryczne z urządzenia

Postępuj zgodnie z tymi instrukcjami, aby skonfigurować metodę przesyłania danych telemetrycznych z urządzenia do Thingboard przez MQTT, HTTP lub CoAp.

Na naszym serwerze przesyłamy następujący JSON do https://thingsboard.meansofproduction.tech/api/v1/… co cztery godziny, gdy urządzenie jest uruchomione (z danymi na żywo):

Ponadto okresowo przekazujemy następujące atrybuty do https://thingsboard.meansofproduction.tech/api/v1/… z danymi o tym, kiedy węzeł był ostatnio widziany:

Służy do alertów, które są wyzwalane, gdy urządzenie przestaje przesyłać dane.

Utwórz pulpit nawigacyjny

Utwórz pulpit nawigacyjny zgodnie z opisem tutaj. Nasze widżety obejmują:

Prosty widżet karty utworzony z pola telemetrii lastRunResult. Pionowy wskaźnik cyfrowy dla pola telemetrii temperaturyTabela Timeseries utworzona z pola telemetrii lastRunResult pokazująca dane z ostatnich dni. Poziomy pasek pokazujący pole telemetrii nasycenia. Wykorzystuje to funkcję przetwarzania końcowego danych:

zwróć 1024-wartość;

I ustawia minimalną i maksymalną wartość 0-100. W ten sposób poziom nasycenia może być wyrażony w procentach. Wskaźnik pokazujący wartość wilgotności. Wykres słupkowy szeregu czasowego, który zawiera temperaturę, wilgotność i wynik pracy, pogrupowane w 5-godzinne okresy z ostatniego tygodnia, zagregowane w celu pokazania wartości maksymalnych. To daje nam jeden pasek na czterogodzinną imprezę biegową. Funkcja przetwarzania końcowego danych służy do wyrażenia wyniku przebiegu jako 0 lub 120 w zależności od tego, czy przeprowadzono analizę wody. Daje to łatwą wizualną informację zwrotną, aby zobaczyć, jak często woda płynie w ciągu tygodnia. Statyczna karta HTML, która pokazuje obraz ogrodu.

Powiadomienia email

Wykorzystaliśmy reguły do skonfigurowania alertów e-mail dla kontrolera nawadniania. Wszystkie używają filtrów wiadomości i akcji wtyczki Wyślij pocztę.

Aby wysłać alert e-mail, jeśli sterownik nawadniania nie prześle danych, użyliśmy „Filtru atrybutów urządzenia” z następującym filtrem:

typeof cs.secondsSinceLastSeen !== 'undefined' && cs.secondsSinceLastSeen > 21600

Aby wysłać wiadomość e-mail, jeśli gleba stanie się zbyt sucha, użyj następującego filtra telemetrycznego

typeof saturation != "undefined" && saturation > 1010

Aby wysłać wiadomość e-mail, jeśli gleba stanie się zbyt wilgotna, użyj następującego filtra telemetrycznego

typeof saturation != "undefined" && saturation

Zalecana: