Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Budowa urządzenia
- Krok 2: Połączenia początkowe DOL
- Krok 3: Utwórz konto w Adafruit IO (io.adafruit.com)
- Krok 4: Zbuduj i zainstaluj oprogramowanie
- Krok 5: Zainstaluj i skonfiguruj aplikację MQTT Dash na telefonie komórkowym
- Krok 6: Ostatni krok:-) Testowanie i dostrajanie
Wideo: Sterownik rozruchowy DOL oparty na IOT do zestawu pomp irygacyjnych: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Cześć przyjaciele
Ta instrukcja dotyczy zdalnego monitorowania i sterowania zestawem pomp irygacyjnych przez Internet.
Opis: W mojej farmie zasilanie z lokalnej sieci otrzymuję tylko przez około 6 godzin dziennie. Czasy nie są regularne, dostępność zasilania może być wczesnym rankiem lub późnym wieczorem, a nawet o północy. Za każdym razem chodzenie do miejsca odwiertu w celu sprawdzenia dostępności zasilania, uruchomienia lub zatrzymania silnika było bardzo bolesnym procesem. Musiałem również zapewnić, że silnik pracuje co najmniej 2-3 godziny dziennie, aby dostarczyć odpowiednią wodę do systemu kroplowego. Dość długo szukałem możliwości rozwiązania tego problemu poprzez zdalną obsługę silnika, a także poznanie stanu. Na rynku dostępne są urządzenia, które uruchomią silnik, gdy tylko pojawi się zasilanie, ale nie mają funkcji zatrzymania silnika w dowolnym momencie. A także nie ma możliwości sprawdzenia stanu włączenia/wyłączenia silnika w dowolnym momencie. Zwykle prowadzi to do nadmiernego nawadniania, co prowadzi do utraty żyzności gleby, a także marnowania energii elektrycznej. W końcu sam zbudowałem rozwiązanie, w którym mogę zdalnie uruchamiać i zatrzymywać silnik z telefonu komórkowego / tabletu / komputera PC W DOWOLNYM CZASIE, GDZIEKOLWIEK…!!. Mogę również przez cały czas monitorować dostępność zasilania z sieci oraz stan silnika (ON/OFF). Mam nadzieję, że pomoże to właścicielom gospodarstw na wsi w zarządzaniu systemami nawadniania bez konieczności ciągłego odwiedzania miejsca startowego.
Kieszonkowe dzieci
Wymagania wstępne:
Lokalizacja, w której chcesz zainstalować to urządzenie, musi mieć dostęp do Internetu (szerokopasmowy z Wi-Fi / internet mobilny)
Rzeczy, których potrzebujesz:
- WęzełMCU /ESP12
- Przekaźnik dwukanałowy
- WCS1700 – Czujnik prądu
- Moduł ładowania akumulatora TP4056
- LD313, Kondensator – Rejestr 1000uF – Dwa rejestry 5k ohm
- Dowolny (stary) smartfon z hotspotem/internetem.
Jak to działa:
Jest to proste rozwiązanie IOT oparte na chmurze, wykorzystujące NodeMCU/ESP12 i zdalny broker MQTT. NodeMCU działa jako brama IOT, kontroluje również starter DOL. Łączy się ze zdalnym brokerem MQTT przez Internet. Z brokerem łączy się aplikacja działająca na telefonie z systemem Android, dzięki której możemy cały czas monitorować i kontrolować nasz zestaw pomp nawadniających. Skorzystałem z darmowego dostępnego brokera MQTT od Adafruit IO. Dostępnych jest wiele darmowych brokerów, takich jak mosquitto, cloudmqtt itp. Możesz wybrać dowolnego brokera pod warunkiem, że zmienisz serwer i numer portu w kodzie. NodeMCU łączy się z Internetem za pomocą Wi-Fi z mobilnego punktu dostępowego. Yon może użyć dowolnego starego lub taniego telefonu komórkowego, aby zapewnić dostęp do Wi-Fi za pośrednictwem hotspotu lub dowolnego innego sposobu dostarczania Internetu przez Wi-Fi. Telefon komórkowy powinien być podłączony do ładowarki tak, jak powinien być w trybie 24X7.
NodeMCU jest połączony z dwoma przekaźnikami do sterowania uruchamianiem i zatrzymywaniem pracy silnika. Aby wyczuć prąd w silniku użyłem czujnika prądu WCS1700. Wyjście analogowe z czujnika służy do sprawdzenia, czy silnik jest WŁĄCZONY lub WYŁĄCZONY. Wykrywa również dostępność mocy z sieci i publikuje ją brokerowi, dzięki czemu możemy w dowolnym momencie poznać stan sieci. Urządzenie subskrybuje dwa kanały, aby otrzymać żądanie włączenia silnika i wyłączenia silnika. Wysyłając określone wartości do tych kanałów możemy sterować silnikiem na START lub STOP.
Na koniec zainstalowałem aplikację MQTT Dash na moim telefonie z Androidem i skonfigurowałem ją do łączenia się z brokerem MQTT i korzystania z kanałów na jego pulpicie nawigacyjnym/gui. Aplikacja ma bardzo dobre ikony z przyciskami, wskaźnikiem, przełącznikiem itp., Aby stworzyć atrakcyjny pulpit nawigacyjny. Możesz jednak użyć dowolnej aplikacji mobilnej IOT do automatyki domowej, która obsługuje protokół mqtt.
Jak działa WCS1700:
WCS1700 to w zasadzie czujnik Halla, który wytwarza napięcie wyjściowe proporcjonalne do pola magnetycznego wytworzonego podczas przepływu prądu przez cewkę. Cewka tutaj jest linią zasilającą, która będzie podłączona do silnika. Może mierzyć prąd AC do 70 amperów. Napięcie robocze wynosi od 3,3 do 12 V. Więcej informacji można znaleźć w arkuszu danych. Ponieważ używam ESP12, użyłem tego samego zasilacza 3,3V co napięcie robocze dla WCS1700. Jak podano w karcie katalogowej przy napięciu 3,3 V, urządzenie powinno wytwarzać napięcie różnicowe około 32 do 38 mV na 1 amper prądu przepływającego przez cewkę. Ale może się różnić w zależności od rozmiaru cewki / szczeliny powietrznej i zmian w urządzeniu. Dlatego musiałem go skalibrować, testując go amperomierzem. Nie jestem zadowolony z dokładności urządzenia, ale jest wystarczająco dobry, aby decydować o stanie silnika jako ON/OFF. Pin wyjściowy WCS1700 jest podłączony do A0 ESP12. Gdy nie ma prądu, ESP12 powinien odczytać wartość około 556. Wraz ze wzrostem prądu w cewce napięcie może być bardzo po obu stronach, w zależności od tego, jak kabel przechodzi przez czujnik. W kodzie wziąłem różnicę wartości jako wartość bezwzględną (x - 556). Dzieląc wynik przez 15 otrzymałem przybliżony prąd przepływający przez czujnik. Będziesz musiał z tym poeksperymentować, aby uzyskać odpowiednią dla siebie liczbę. Każdy pomiar prądu przez urządzenie powyżej 5 A uważam za włączony silnik i poniżej 5 A, ponieważ silnik jest wyłączony. Możesz użyć odpowiedniego numeru dla swojego urządzenia, eksperymentując. Musisz odpowiednio zmienić WCS1700_CONST i MIN_CURRENT w kodzie.
Krok 1: Budowa urządzenia
Powyższy schemat zawiera szczegółowe informacje na temat okablowania wszystkich komponentów.
Zasilanie: użyłem TP4056 do ładowania akumulatorów i LM313 do regulacji napięcia wyjściowego akumulatora 3,7 V - 4,2 V do 3,3 V do zasilania NodeMCU. Użyto kondensatora 1000mF między Vin a masą LM313, aby uzyskać stabilne zasilanie 3,3V. Do zasilania TP4056 można użyć zwykłej przenośnej ładowarki USB. Posiada obwód zabezpieczający baterię, aby chronić baterię przed nadmiernym ładowaniem.
Wykrywanie zasilania sieci: Dzielnik napięcia 5 kΩ zmniejszy napięcie 5 V do 2,5 V. Pin D5 NodeMCU wykryje napięcie.
Pin wyjściowy WCS1700 jest podłączony do A0, aby odczytać napięcie analogowe z czujnika. Linia Grid Power musi przejść przez otwór, aby zmierzyć prąd. Użyłem kondensatora 0,01 uF, aby uzyskać stabilny odczyt z WCS1700.
D1 i D2 NodeMCU należy podłączyć do IN0 i IN1 pinów wejściowych przekaźnika.
Krok 2: Połączenia początkowe DOL
Poprawiłem obwód sterowania rozrusznika DOL, aby wprowadzić kolejny zestaw przełączników START i STOP. Ta zmiana nie wpłynie na ręczną operację uruchamiania/zatrzymywania i będą one nadal działać bez zmian.
Ostrożność !!!! Ponieważ rozrusznik DOL jest urządzeniem wysokiego napięcia, upewnij się, że główny wyłącznik jest wyłączony przed otwarciem pudełka. Bezpośredni kontakt z przewodem pod napięciem może być niebezpieczny. Jeśli nie masz pewności, skorzystaj z pomocy elektryka, aby wykonać połączenia
Użyłem 2-kanałowego modułu przekaźnika 5 V jako przełącznika START i STOP. Te przekaźniki będą sterowane przez ESP12.
Przekaźnik – 0 będzie działał jako przełącznik START - podłączony jako NO (normalnie otwarty).
Przekaźnik-1 będzie działał jako wyłącznik STOP - podłączony jako NC (Normalnie Zamknięty). Rozrusznik będzie już miał przewód łączący od górnego stycznika do NVC. Będziesz musiał go usunąć i zastąpić przewodami przekaźnika -1, jak pokazano.
Upewnij się, że połączenia między rozrusznikiem a modułami przekaźnikowymi są całkowicie izolowane dla bezpieczeństwa. Zaprogramowałem ESP, aby trzymał oba przekaźniki przez 2 sekundy, aby zasymulować naciśnięcie przycisku START/STOP.
Krok 3: Utwórz konto w Adafruit IO (io.adafruit.com)
Użyłem brokera Adafruit io mqtt, który jest darmowy z kilkoma ograniczeniami, ale jest OK dla naszego użytku. Wolę to, ponieważ używałem go również w innych projektach i okazało się, że jest całkiem niezawodny, a także ma wiele innych funkcji, takich jak Dashboard z ładnym GUI, a nawet możemy używać wyzwalaczy. Aby korzystać z Adafruit io, musisz utworzyć konto i zanotować nazwę użytkownika i klucz aktywny.
Krok 4: Zbuduj i zainstaluj oprogramowanie
Pełny kod jest dostępny w szkicu. Musisz otworzyć to w Arduino IDE i wprowadzić kilka zmian przed skompilowaniem i przesłaniem oprogramowania. Wybierz typ płytki jako NodeMCU 1.0. Instalacja IDE i powiązanych bibliotek nie jest objęta zakresem tej dokumentacji.
Zmodyfikuj następujące wiersze w kodzie jako odłogi.
#define WLAN_SSID "xxx" // Twój mobilny hotspot WiFi SSID
#define WLAN_PASS „……” //
/************************* Konfiguracja Adafruit.io ******************** *************/
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883 // użyj 8883 dla SSL
#define AIO_USERNAME "xyz" // Twoja nazwa użytkownika konta adafruit
#define AIO_KEY "abcd……" // Twój aktywny klucz…
Informacje o kanałach MQTT: Urządzenie i klient (aplikacja mobilna) wymieniają informacje za pośrednictwem kanałów wiadomości przy użyciu podmodelu pubu za pośrednictwem brokera MQTT. Każdy klient lub urządzenie, aby otrzymać wiadomość, musi zasubskrybować predefiniowany kanał i musi użyć metody publikowania, aby wysłać wiadomość do kanału. Do naszego projektu potrzebujemy około 5 kanałów. Poniżej znajduje się wyjaśnienie każdego kanału, jak widać w kodzie i jak one działają.
Status sieci: Dostępność zasilania z sieci jest publikowana w kanale /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/grid");
0 wskazuje, że zasilanie jest niedostępne, a 1 oznacza, że zasilanie jest dostępne.
Stan silnika: Urządzenie opublikuje stan silnika w kanale …/feeds/grid.
Adafruit_MQTT_Publish motor_status = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/motor")
Wartość 0 dla WYŁ i 1 dla WŁ
Przycisk włączenia silnika: Ten kanał służy do odbierania żądania uruchomienia silnika. Urządzenie zasubskrybuje kanał, aby otrzymać żądanie uruchomienia silnika o wartości = 1 i użyje tego samego kanału do opublikowania wiadomości potwierdzenia jako 0. W ten sposób możemy potwierdzić, że wiadomość żądania uruchomienia została faktycznie odebrana przez urządzenie.
Adafruit_MQTT_Subscribe motoronbutton = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/motor_on");
Przycisk wyłączania silnika:
Podobnie jak w przypadku żądania Start ten kanał jest używany do odbierania żądania zatrzymania silnika. Urządzenie zasubskrybuje kanał, aby otrzymać żądanie zatrzymania o wartości = 1 i użyje tego samego kanału do opublikowania komunikatu potwierdzającego jako 0.
Adafruit_MQTT_Subscribe motoroffbutton = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/motor_off");
Połączenie:
Jest to specjalny kanał z włączoną opcją „ostatniej woli”. Gdy urządzenie działa prawidłowo w każdym ustalonym odstępie czasu, opublikuje połączenie=1, aby poinformować użytkownika, że wszystko jest w porządku. W przypadku awarii systemu lub utraty połączenia urządzenie nie będzie mogło komunikować się z brokerem. W takich przypadkach sam broker MQTT publikuje w kanale jako connection=0, aby poinformować użytkownika, że coś poszło nie tak i urządzenie nie jest dostępne przez Internet. Musimy fizycznie iść i sprawdzić urządzenie. Kod jest bardzo prosty. Więcej informacji na temat działania „Ostatniej woli” można znaleźć w dokumentacji MQTT.
jeśli(itr <= 0)
{
mqtt.publish(AIO_USERNAME "/feeds/connection", "1", 1);
itr = CON_LIVE_ITR;
}
Pozostała część kodu jest oczywista i nie wymaga żadnych modyfikacji. Zachęcamy do komentowania, jeśli potrzebujesz więcej informacji.
Krok 5: Zainstaluj i skonfiguruj aplikację MQTT Dash na telefonie komórkowym
- Zainstaluj MQTT Dash na telefonie z Androidem i otwórz aplikację
- Kliknij ikonę + w prawym górnym rogu, aby dodać urządzenie.
- Jak pokazano na pierwszym obrazku powyżej, nadaj urządzeniu nazwę, powiedz „MyFarm-IPSet”. Pole adresu jako io.adafruit.com i port jako 1883, nazwa użytkownika powinna być twoją nazwą użytkownika adafruit, a hasło powinno być twoim kluczem aktywnym z adafruit. Pozostałe pola pozostaw bez zmian. Na koniec kliknij Zapisz.
- Masz utworzone urządzenie. Teraz kliknij go, aby dodać do niego pulpit nawigacyjny.
- Kliknij na + i wybierz typ jako przełącznik/przycisk. Jak pokazano powyżej, wpisz sys w polu nazwy. i wpisz nazwę kanału w polu tematu. każdy kanał powinien zaczynać się od nazwy użytkownika/feeds/. w tym celu /feeds/connection. Upewnij się, że opcja Włącz publikowanie jest wyłączona. Klikając ikonę do wyświetlenia, możesz wybrać rodzaj ikony, która ma wyglądać na pulpicie nawigacyjnym. Dla wartości 1 wybierz jeden z kolorów (powiedzmy zielony), a dla wartości 0 wybierz kolor szary lub czerwony. Na koniec kliknij Zapisz w prawym górnym rogu. Podobnie utwórz dwie dodatkowe ikony, jedną dla sieci z nazwą użytkownika/kanałami/siecią jako tematem i silnikiem z nazwą użytkownika/kanałami/silnikiem. Upewnij się, że opcja Włącz publikowanie jest wyłączona.
- Na koniec utwórz przycisk Motor ON. Jest znowu taki sam jak typ przełącznika/przycisku. Tematem powinien być /feeds/motor_on i upewnić się, że tym razem włączona jest opcja Enable Publish oraz QOS =1. W podobny sposób utwórz kolejny przycisk wyłączania silnika. Temat powinien brzmieć /feeds/motor_off.
Krok 6: Ostatni krok:-) Testowanie i dostrajanie
- Ze względów bezpieczeństwa należy najpierw przetestować urządzenie pod kątem działania START i STOP przed podłączeniem przekaźników do rozrusznika DOL. Włącz Hotspot na telefonie komórkowym z włączonym Internetem. Podłącz laptopa posiadającego środowisko programistyczne bezpośrednio do portu USB NodeMCU z inną ładowarką podłączoną jednocześnie do TP4056. Jeśli urządzenie zostało pomyślnie połączone z Internetem, na smartfonie powinno być widoczne 1 urządzenie połączone z hotspotem.
- Na drugim smartfonie, na którym zainstalowałeś MQTT Dash, otwórz pulpit nawigacyjny aplikacji. Powinieneś zobaczyć, że ikona NET w kolorze zielonym, a ikona Grid również w kolorze zielonym z ich wartościami 1. Ikona silnika powinna pokazywać silnik wyłączony z wartością 0.
- Po kliknięciu przycisku Motor ON przekaźnik startowy powinien wydać dwa dźwięki kliknięcia w odstępie dwóch sekund. Podobnie przycisk Wyłącz silnik również.
- Ze względów bezpieczeństwa wyłącz teraz główne zasilanie rozrusznika DOL i podłącz przekaźniki do rozrusznika DOL, jak pokazano powyżej w kroku 2. Upewnij się, że silnik jest wyłączony. Naciśnij przycisk resetowania na NodeMCU. Z wyjścia monitora szeregowego można zobaczyć instrukcje debugowania, które drukują wartości z czujnika WC1700, deltę i obliczony prąd w cewce. Przy wyłączonym silniku i " #define WCS1700_CONST 15 " maxCur powinien być konsekwentnie mniejszy niż 2. Jeśli pokazuje więcej niż 2, spróbuj z wyższymi wartościami WCS1700_CONST. Za każdym razem będziesz musiał przekompilować kod i załadować oprogramowanie.
- Teraz włącz silnik i ponownie poszukaj aktualnych odczytów. Pozostaw silnik włączony na około 10-15 minut i zanotuj stabilny odczyt prądu. Prąd może wahać się w przybliżeniu od 10 do 20 A i nie musi być dokładny.
- Wróć do kodu i ustaw " #define MIN_CURRENT X. Gdzie X to 40 procent maksymalnego prądu zbliżonego do wartości liczbowej. W moim przypadku ustawiłem MIN_CURRENT na 5. Skompiluj i ponownie załaduj firmware do NodeMCU.
- Odłącz kabel USB od NodeMCU. Wyłącz i włącz urządzenie z ładowarką USB podłączoną do TP4056. Kliknięcie przycisku Motor ON w aplikacji mobilnej powinno uruchomić silnik. Gdy silnik jest włączony, stan silnika powinien odzwierciedlać się na desce rozdzielczej aplikacji jako WŁĄCZONY. Kliknięcie przycisku stop powinno zatrzymać silnik.
Cieszyć się !!!!
Zalecana:
Jak utworzyć dysk rozruchowy systemu Linux (i jak z niego korzystać): 10 kroków
Jak utworzyć dysk rozruchowy systemu Linux (i jak z niego korzystać): Jest to proste wprowadzenie do rozpoczęcia pracy z systemem Linux, a konkretnie z Ubuntu
Sterownik LED Step-Down 3A oparty na ATTiny84: 7 kroków (ze zdjęciami)
Sterownik LED 3A Step-Down oparty na technologii ATTiny84: Jeśli chcesz zasilać diody LED o mocy 10 W, możesz użyć tego sterownika LED 3A. Z 3 diodami Cree XPL możesz osiągnąć 3000 lumenów
Generator muzyki oparty na pogodzie (generator Midi oparty na ESP8266): 4 kroki (ze zdjęciami)
Generator muzyki oparty na pogodzie (Generator Midi oparty na ESP8266): Cześć, dzisiaj wyjaśnię, jak zrobić własny mały generator muzyki oparty na pogodzie. Jest oparty na ESP8266, który jest trochę jak Arduino i reaguje na temperaturę, deszcz i intensywność światła.Nie oczekuj, że sprawi, że całe utwory lub akordy będą pro
Jak utworzyć rozruchowy dysk USB bez użycia oprogramowania: 3 kroki
Jak utworzyć rozruchowy dysk USB bez użycia żadnego oprogramowania: Aby ręcznie utworzyć rozruchowy dysk USB, użyjemy wiersza polecenia jako domyślnego programu systemu Windows. Oto krok po kroku, aby utworzyć rozruchowy dysk USB jako nośnik instalacyjny systemu Windows. Aby utworzyć rozruchowy dysk USB jako instalację systemu Windows, ja
Jak zainstalować półprzewodnikowy dysk rozruchowy: 9 kroków
Jak zainstalować półprzewodnikowy dysk rozruchowy: Wraz z postępem technologicznym w tempie, w jakim jest to wszystko, teraz wszystko przenosi się do królestwa komputerów i mediów cyfrowych. Wraz z tą zmianą widzimy, że coraz więcej osób wchodzi w dziedziny edukacji dotyczące takich tematów, jak informatyka lub