logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Sterownik nawadniania ogrodu zintegrowany z siecią HomeAutomation protokołem mySensors.

jroger 25 Paź 2024 20:16 3318 6

TL;DR

  • Sterownik nawadniania ogrodu oparto na ESP8266 na klonie Wemos D1 i zintegrowano z automatyką domową przez mySensors jako zamiennik sterownika Hunter.
  • Układ zasila 24V AC, obniża je przetwornicą LM2675M-3.3 do 3,3V DC, a trzy zawory 24V AC przełącza przez optoMOS Panasonic AQY212 z separacją galwaniczną.
  • Sensor deszczu z kontaktronem NC odcina jeden biegun zasilania zaworów, a ACS711 mierzy prąd i pozwala wykryć stan „RAIN STOP”.
  • Interfejs MySensors wystawia 8 logicznych urządzeń: trzy sekcje, trzy czasy podlewania, flagę „RAIN STOP” i pomiar prądu, a cała logika działa w kontrolerze automatyki.
  • Przyciski lokalne pozwalają ręcznie włączyć lub wyłączyć sekcję, a EEPROM chroni przed niekończącym się podlewaniem po utracie łączności z kontrolerem.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
📢 Słuchaj (AI):
  • Witajcie,

    Chciałem pokazać Wam swój sterownik nawodnienia, który zbudowałem w oparciu o ESP8266 ma klonie płytki WemosD1. Jest on spięty z automatyką domową za pomocą biblioteki MySensors [ref. 3].

    W skrócie chodzi o to, by wszystkie urządzenia były zarządzane z jednej aplikacji (bez znaczenia, czy jest to klimatyzacja, wentylacja, pompa ciepła, rolety, zasłony, światło, woda, kamery, …) i jej się trzymam. Sterownik miał być i jest zamiennikiem sterownika Hunter, który nie miał integracji z automatyką domową (moduł WiFi trzeba dokupić a potem pozostawała kwestia integracji z moim obecnym system i wymaganiami).

    Sterownik nawodnienia może być zapakowany w dwa modele obudowy Kradex: Z101 i ZD1006 - gotowe nawiercenia płytek pod obydwie obudowy.

    Ten sterownik to taki trochę bardziej ubogi klon sterownika użytkownika @tmf (https://www.elektroda.pl/rtvforum/topic3667909.html), niemniej jego „ubogość” w moim przypadku jego super zaletą.


    Sterownik nawodnienia oparty na ESP8266 z trzema podświetlanymi przyciskami.




    Na końcu wpisu dorzuciłem linki referencyjne do wpisów. Sam z nich korzystałem, jeśli kogoś temat interesuje to zaoszczędzi czasu.

    Funkcjonalności.

    Funkcjonalności jakie urządzenie posiada:

    1. Zasilanie całego urządzenia za pomocą 24V AC (z przetwornicą LM2675 do poziomu 3.3V DC, które jest niezbędne do modułu WiFi ESP8266)
    2. Sterowanie 3 zaworami 24V AC (za pomocą optoMOS, co daje separację galwaniczną)
    3. Wyłączanie podlewania przez sensor opadu deszczu (odcięcie jednego bieguna zasilania zaworów za pomocą kontaktronu w sensorze deszczu)
    4. Wykrywanie czy faktycznie przez zawory płynie prąd (za pomocą ACS711)
    5. Interfejs użytkownika w postaci (3 podświetlane przyciski i 2 diody sygnalizacyjne).
    6. Interfejs MySensors służący do wymiany informacji i komend z kontrolerem za pomocą sieci WiFi.

    Szczegóły rozwiązania i poszczególnych funkcji.


    Schemat elektroniczny do sterownika nawodnienia z ESP8266. Schematy przewodów sterownika nawodnienia na dwóch kolorowych płytkach PCB.


    Zasilanie.

    Moduł zasilania oparłem o układ LM2675M-3.3, który jest popularnie używany. Podpatrzyłem go na forum w kilku projektach.
    Celem modułu było zamiana prądu przemiennego 24V AC na 3.3V DC, który jest potrzebny do zasilania ESP8266. Urządzenie jest zasilane 24V AC, ponieważ taki prąd znamionowy ma być doprowadzony do elektrozaworów.

    Moduł wykonałem jako skrzyżowanie informacji z DS oraz archiwalnych wątków, w których wypowiadał się użytkownik @-RoMan- oraz rad, które udzielił mi użytkownik @ArturAVS.

    Moduł zasilania ma dwa zabezpieczenia. Pierwsze zabezpieczenie to bezpiecznik polimerowy 1A na ścieżce, która idzie do mostka prostowniczego, chodzi o to, żeby do przetwornicy nie puścić za dużo prądu. 
    Drugie zabezpieczenie do bezpiecznik topnikowy (cylindryczny) 1A, który zabezpiecza elektrozawory. Nie spodziewam się używać więcej niż jednego zaworu na raz, więc to zabezpieczenie jest więcej niż OK (prąd cewki mojego elektrozaworu przy starcie nie powinien przekraczać 0.5A, a w trakcie pracy 0.2A). Ewentualne dodatkowe zabezpieczenie to programowe zabraniające uruchomienia więcej niż jednego zaworu.

    Sterowanie 3 zaworami 24V AC

    Sterowanie odbywa się za pomocą przekaźników SSR optoMOS (Panasonic AQY212). Wykorzystałem je, bo technologia, w której są wykonane gwarantuje separację galwaniczną pomiędzy obwodem płytki i obwodem zaworów.
    Sterowanie następuje z trzech pinów układu ESP8266. Piny te służą też podświetlaniu przycisków, zatem stan wysoki pinu powoduje oświetlenie diody w przekaźniku (i zamknięcie go, w konsekwencji uruchomienie zaworu) i oświetlenie diody w przycisku na obudowie. Fajny efekt.

    Wyłączanie podlewania przez sensor opadu deszczu

    To funkcja, którą skopiowałem ze sterownika Hunter. Czujnik opadu deszczu zawiera kontaktron (NC), który rozłącza obwód gdy pada deszcz. Bez wnikania w szczegóły dlaczego, ale pozostawiłem tę funkcję taką jaka jest. Przez przewód z kontaktronem w czujniku zalania płynie jeden biegun 24V AC zasilania zaworów. Jeśli włączone są spryskiwacze i jednocześnie jest opad deszczu, to następuje rozłączenie obwodu przez kontaktron i spryskiwacze się wyłączają. Generalnie funkcja działa, ale dziś bym jej nie zrobił - moja integracja z pogodą załatwia sprawę (jeśli przewidywany jest opad, to podlewanie danego dnia się nie odbędzie).

    Wykrywanie czy faktycznie przez zawory płynie prąd (za pomocą ACS711)

    Zgodnie z tym co powyżej, może się zdarzyć sytuacja, że jest zlecenie pryskania wodą, a jednocześnie następuje rozłączenie obwodu elektrozaworów przez czujnik opadu deszczu. Tę sytuację wykrywam za pomocą czujnika Halla (układ ACS711). Jest on wpięty w obwód elektrozaworów i dokonuje on pomiaru natężenia prądu w tym obwodzie, analogowy pomiar z tego czujnika przekazywany jest do ESP8266, a ten go za pomocą pinu z przetwornikiem ADC (pin A0).

    Za pomocą tej funkcji wykrywam sytuację „RAIN STOP”, czyli zatrzymania podlewania z uwagi na opad deszczu (logicznie: JEŚLI elektrozawór jest otwarty ORAZ nie płynie przez niego prąd TO sygnalizuj RAIN STOP).

    BARDZO WAŻNA UWAGA: korzystając z bibliotek WiFi na ESP8266 musicie wiedzieć, że pin A0 (a dokładniej ADC) jest wykorzystywany przez ESP w procesie monitoringu jakości sygnału WiFi. Odczyt wartości natężenia prądu z ACS należy wykonywać w interwałach – ja korzystam z 50ms i jest OK. Odczyt non-stop, bez interwału spowoduje zgubienie sygnału (i moduł już nie odzyska połączenia). Dla wnikliwych odsyłam do referencji (ref 4., ref 5.)

    Poniżej wklejam krótki kod dla Framework Arduino dla inspiracji.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Interfejs użytkownika.
    Interfejs realizowany jest przez 3 podświetlane przyciski i 2 diody sygnalizacyjne.

    3 podświetlane przyciski służą do manualnego włączania/wyłączania zaworów, a fakt podświetlenia informuje że dany elektrozawór jest otwarty (czyli: dana sekcja jest nawadniania). Przyciskiem można wyłączyć sekcję jeśli akurat ona w danej chwili pracuje. Generalnie przyciski zostawiłem w razie, gdyby z jakiś przyczyn nie było połączenia z centralą automatyki (sam sterownik nie jest zbyt „inteligentny”, nie zna harmonogramów).

    Z punktu widzenia urządzenia, przyciski są spięte z pinami wejściowymi ESP8266, każdy pin wejściowy jest podciągnięty do 3V3 rezystorem 10k (PULL UP). Naciśnięcie przycisku zwiera pin wejściowy z masą i ten sygnał jest interpretowany przez ESP.

    Z uwagi na to, że przyciski połączone są z płytką za pomocą przewodów, istnieje ryzyko generowania przez nie zakłóceń (mogą one działać jak anteny). Z tego względu zastosowałem dodatkowo kondensatory 100nF na pinach wejściowych ESP8266.

    Uruchomienie podlewania danej sekcji trwa tyle minut, ile zostało mu nakazane przez kontroler. Informacja o czasie podlewania sekcji przechowywana jest w EEPROM ESP8266, zatem ta informacja nie ginie przy braku połączenia z kontrolerem. Chodzi o zabezpieczenie przed sytuacją, że kontroler zleca podlewanie, połączenie z kontrolerem ginie, a woda leje się bez końca – i to jest element drobnej inteligencji samego urządzenia.

    Są 2 diody sygnalizacyjne. Jedna (RX CMD) informuje o odebraniu komendy z przycisku lub z urządzenia zarządzającego automatyką, a druga informuje o zatrzymaniu podlewania z uwagi na informację z sensora deszczu („RAIN STOP”, pisałem o tym powyżej).

    Interfejs MySensors
    Urządzenie komunikuje się ze światem zewnętrznym po protokole TCP/IP na zaprogramowanym porcie (np. 5003). Interfejs komunikacyjny oparty jest o bibliotekę mySensors.
    Na tę chwilę urządzenie „wystawia” interfejs dla 8 logicznych urządzeń (włącznik sekcji, długość podlewania każdej sekcji – x3 sekcje to 6 urządzeń), flaga „RAIN STOP” oraz natężenie prądu płynącego przez układ ACS711. Komunikacja jest oczywiście dwustronna.

    Dzięki bardzo sprawnej i niezawodnej komunikacji cała logika podlewania rezyduje w kontrolerze systemu automatyki domowej. Sama część integracyjna jest bardzo ciekawa, ale też dość obszerna i odbiega od konstrukcji samego urządzenia.
    Jako przykład poglądowy wrzucam poniżej screen-a jak nawadnianie wygląda z mojego kontrolera (domoticz). Dzięki temu, że wszystko jest w jednym miejscu można osiągnąć szybko ciekawe efekty (np. zapobieganie podlewania w przypadku zapowiadanych na dany dzień opadów, etc.).


    Zrzut ekranu interfejsu terminala z danymi dotyczącymi sterownika nawodnienia.





    Referencje:
    1. Zasilanie LM2675: https://www.elektroda.pl/rtvforum/topic2311352.html
    2. Sterownik nawodnienia użytkownika @tmf: https://www.elektroda.pl/rtvforum/topic3667909.html
    3. MySensors: https://www.mysensors.org/
    4. Problem analogRead() w bibliotece WiFi dla ESP8266 („analogRead forces WiFi to disconnect #1634”) https://github.com/esp8266/Arduino/issues/1634
    5. Dokładna inwestygacja problemu analog read(), świetny materiał
    https://github.com/krzychb/EspScopeA0/tree/master/Bravo#results

    Fajne? Ranking DIY
    O autorze
    jroger
    Poziom 10  
    Offline 
  • #2 21276826
    gulson
    Administrator Systemowy
    Posty: 29416
    Pomógł: 150
    Ocena: 6082
    Dziękuję za podzielenie się rozwiązaniem!
    Widzę, że byłaby również możliwość integracji z Home Assistant, skoro masz połączenie do MySensors.
    Dobrze kombinuję? https://www.home-assistant.io/integrations/mysensors/
    Bo dla niektórych to właśnie Home Assistant jest tym centrum wszystkiego.
    Dobra robota, jeśli pozwolisz później przetłumaczę temat na angielski dla całego świata!
    Podaj mi proszę Paczkomat na PW a wyślę mały upominek.
  • #3 21276838
    jroger
    Poziom 10  
    Posty: 24
    Ocena: 22
    Hej @gulson,

    Tak, mySensors integruje się z HomeAssistant bez problemu, chociaż ja z Home Assistant nie korzystałem, zatem o szczegółach nie jestem w stanie dyskutować (korzystam wyłącznie z Domoticz-a).

    J

    Dodano po 2 [minuty]:

    gulson napisał:
    Dziękuję za podzielenie się rozwiązaniem!
    Widzę, że byłaby również możliwość integracji z Home Assistant, skoro masz połączenie do MySensors.
    Dobrze kombinuję? https://www.home-assistant.io/integrations/mysensors/
    Bo dla niektórych to właśnie Home Assistant jest tym centrum wszystkiego.
    Dobra robota, jeśli pozwolisz później przetłumaczę temat na angielski dla całego świata!


    Jasne, nie ma problemu z tłumaczeniem, proszę bardzo.
  • #4 21279072
    Oddawajsanki
    Poziom 8  
    Posty: 84
    Ocena: 7
    ciekawy projekt :D
  • #5 21279684
    Konto nie istnieje
    Poziom 1  
  • #6 21284298
    Kuniarz
    Moderator Projektowanie
    Posty: 4520
    Pomógł: 371
    Ocena: 825
    Świetny projekt i wykonanie !

    jroger napisał:
    Interfejs użytkownika w postaci (3 podświetlane przyciski i 2 diody sygnalizacyjne).

    Przydałyby się opisy przy tych przyciskach i diodach.
    Ty wiesz do czego służą, może wie też ktoś z rodziny, ale jak spojrzy na sterownik kompletnie obca osoba, to nie będzie wiedziała co jest do czego ;-)
    Drukowałeś tą trawę w tle, mógłbyś dorzucić opisy jako wiśniówkę na torcie ;-)
    Pomogłem? Kup mi kawę.
  • #7 21285032
    jroger
    Poziom 10  
    Posty: 24
    Ocena: 22
    Hej @Kuniarz,

    Dzieki.

    Mam kilka projektow naklejek, rowniez z opisami, etc. Wybralem sobie taka, bo mi najbardziej odpowiadala - rzecz gustu.

    Rodzina wie co nacisnac, zeby sie polalo. Z doswiadczenia wiem, ze uzywaja przyciskow dzieciaki, zeby komus zrobic psikusa- i wlasnie to sklania w strone odpiecia przyciskow ;-)

    Co do obcych osob, to niech chcialbym by sie bawily “infrastruktura krytyczna” ogrodka, zatem w tym przypadku brak opisow to zaleta :-) sam sterownik jest schowany, zeby nie rzucal sie w oczy i nie bylo pokusy zabawy kolorowymi guzikami.

    J
📢 Słuchaj (AI):

Podsumowanie tematu

✨ Użytkownik zaprezentował swój projekt sterownika nawadniania ogrodu, zbudowanego na bazie ESP8266 i klonu Wemos D1, zintegrowanego z systemem automatyki domowej za pomocą biblioteki MySensors. Celem projektu jest centralne zarządzanie różnymi urządzeniami domowymi, w tym klimatyzacją, wentylacją i oświetleniem. Sterownik ma być alternatywą dla urządzenia Hunter, które nie oferuje integracji z automatyką domową. Użytkownik wskazał na możliwość użycia obudów Kradex: Z101 i ZD1006. W dyskusji poruszono również kwestie integracji z Home Assistant oraz bezpieczeństwa układów elektronicznych.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA