Obsah:
- Zásoby
- Krok 1: Konstrukce zařízení
- Krok 2: Připojení startéru DOL
- Krok 3: Vytvořte si účet u Adafruit IO (io.adafruit.com)
- Krok 4: Sestavte a nainstalujte software
- Krok 5: Nainstalujte a nakonfigurujte aplikaci MQTT Dash APP na svůj mobilní telefon
- Krok 6: Poslední krok:-) Testování a doladění
Video: IOT Based DOL Starter Controller for Irrigation Pumpset: 6 Steps
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Dobrý den, přátelé
Tento návod je o tom, jak na dálku monitorovat a ovládat zavlažovací čerpadlo přes internet.
Příběh: Na své farmě mám napájení z místní sítě pouze asi 6 hodin denně. Načasování není pravidelné, dostupnost energie může být brzy ráno nebo pozdě večer nebo dokonce o půlnoci. Pokaždé, když jste šli do místa vrtání, abyste zkontrolovali dostupnost energie, bylo spuštění nebo zastavení motoru velmi bolestivý proces. Také jsem musel zajistit, aby motor běžel alespoň 2-3 hodiny každý den, abych dodal dostatečnou vodu pro kapací systém. Docela dlouho jsem zkoumal možnosti řešení tohoto problému dálkovým ovládáním motoru a také jsem poznal stav. Na trhu jsou k dispozici zařízení, která spustí motor, jakmile je k dispozici napájení, ale nemají funkci, která by zastavila motor, kdykoli chceme. A také neexistuje způsob, jak zjistit stav motoru ZAP/VYP v libovolném okamžiku. To obvykle vede k nadměrnému zavlažování, což vede ke ztrátě úrodnosti půdy a také k plýtvání elektřinou. Nakonec jsem sám vytvořil řešení, kde mohu vzdáleně spouštět a zastavovat motor z mobilu/tabletu/PC KDYKOLI … !!. Také mohu neustále sledovat dostupnost napájení z nosníku a také stav motoru (ON/OFF). Doufám, že to pomůže majitelům farem na straně země spravovat jejich zavlažovací systémy, aniž by museli neustále chodit na místo startéru.
Zásoby
Předpoklady:
Místo, kam chcete nainstalovat toto zařízení, musí mít dostupnost internetu (širokopásmové připojení s wifi/mobilním internetem)
Věci, které potřebujete:
- NodeMCU /ESP12
- Dvoukanálové relé
- WCS1700 - snímač proudu
- Modul nabíjení baterie TP4056
- LD313, kondenzátor - registr 1000uF - dva registry 5 k ohmů
- Jakýkoli (starý) smartphone s hotspotem /internetem.
Jak to funguje:
Je to jednoduché cloudové řešení IOT využívající NodeMCU/ESP12 a vzdáleného brokera MQTT. NodeMCU funguje jako brána IOT, také ovládá startér DOL. Připojuje se ke vzdálenému makléři MQTT přes internet. K brokerovi se připojuje aplikace běžící na mobilu Android, pomocí které můžeme neustále monitorovat a ovládat naši sadu zavlažovacích pump. Použil jsem zdarma dostupný broker MQTT od Adafruit IO. K dispozici je mnoho bezplatných brokerů, jako je mosquitto, cloudmqtt atd. Můžete si vybrat libovolného brokera za předpokladu, že v kódu změníte server a číslo portu. NodeMCU se připojuje k internetu pomocí WiFi z mobilního hotspotu. Yon může použít jakýkoli starý nebo levný mobil k poskytování přístupu k wifi prostřednictvím hotspotu nebo jakýmkoli jiným způsobem poskytování internetu prostřednictvím wifi. Mobil by měl být připojen k nabíječce tak, jak by měl být na 24X7.
NodeMCU je propojen se dvěma relé pro ovládání spuštění a zastavení motoru. Pro snímání proudu v motoru jsem použil proudový senzor WCS1700. Analogový výstup ze senzoru se používá k poznání, že motor je ZAPNUTO nebo VYPNUTO. Také snímá dostupnost energie ze sítě a zveřejňuje ji brokerovi, abychom mohli kdykoli znát stav sítě. Zařízení se přihlásí k odběru dvou kanálů, aby obdrželo požadavek na ZAPNUTÝ a VYPNUTÝ motor. Odesláním konkrétních hodnot do těchto kanálů můžeme ovládat motor na START nebo STOP.
Nakonec jsem do svého telefonu s Androidem nainstaloval aplikaci MQTT Dash a nakonfiguroval ji tak, aby se připojovala k brokerovi MQTT a používala kanály na jejím palubním panelu/gui. Aplikace má velmi dobré ikony s tlačítky, měřidlem, přepínačem atd., Které vytvářejí atraktivní řídicí panel. Můžete však použít jakoukoli mobilní aplikaci IOT pro domácí automatizaci, která podporuje protokol mqtt.
Jak WCS1700 funguje:
WCS1700 je v zásadě snímač s Hallovým efektem, který bude produkovat výstupní napětí úměrné magnetickému poli vytvářenému při průchodu proudu cívkou. Cívka je zde napájecí vedení, které bude připojeno k motoru. Může měřit střídavý proud až 70 ampérů. Provozní napětí je mezi 3,3 až 12 V. Podrobnější informace najdete v jeho technickém listu. Protože používám ESP12, použil jsem stejný zdroj 3,3 V jako provozní napětí pro WCS1700. Jak je uvedeno v datovém listu při 3,3 V, zařízení by mělo generovat rozdílové napětí asi 32 až 38 mV na ampér proudu cívkou. Může se však lišit podle velikosti cívky / vzduchové mezery a odchylek v zařízení. Proto jsem ho musel kalibrovat testováním pomocí Ampere Meter. Nejsem spokojen s přesností zařízení, ale je dost dobrý na to, aby rozhodl o stavu motoru jako ZAP/VYP. Výstupní pin WCS1700 je připojen k A0 ESP12. Pokud není k dispozici žádný proud, měl by ESP12 odečíst hodnotu kolem 556. Jak proud roste v cívce, napětí může být velmi na obou stranách podle toho, jak kabel prochází senzorem. V kódu jsem vzal rozdíl hodnot jako absolutní hodnotu (x - 556). Rozdělením výsledku na 15 jsem získal přibližný proud protékající senzorem. Budete muset experimentovat, abyste získali správné číslo pro vás. Jakékoli měření proudu zařízením nad 5 A považuji za zapnutý motor a pod 5 A, když je motor vypnutý. Experimentováním můžete použít správné číslo pro své zařízení. V kódu musíte odpovídajícím způsobem změnit WCS1700_CONST a MIN_CURRENT.
Krok 1: Konstrukce zařízení
Výše uvedený diagram poskytuje úplné podrobnosti o zapojení všech součástí.
Napájení: Použil jsem TP4056 k nabíjení baterií a LM313 k regulaci 3,7V - 4,2V výstupu baterie na 3,3 V pro napájení NodeMCU. K získání stabilního napájení 3,3 V byl použit kondenzátor 1000 mF mezi Vin a zemí LM313. K napájení TP4056 můžete použít běžnou USB mobilní nabíječku. Má ochranný obvod baterie, který chrání baterii před přebíjením.
Síťové snímání napájení: Dělič napětí 5 k ohmů sníží 5 V na 2,5 V. Pin D5 NodeMCU bude snímat napětí.
Výstupní kolík WCS1700 je připojen k A0 pro čtení analogového napětí ze snímače. Síťové vedení Grid Power musí projít otvorem pro měření proudu. Použil jsem kondenzátor 0,01 uF, abych získal stabilní čtecí formu WCS1700.
D1 a D2 NodeMCU, které mají být připojeny k IN0 a IN1 vstupních pinů relé.
Krok 2: Připojení startéru DOL
Vyladil jsem řídicí obvod startéru DOL, abych zavedl další sadu spínačů START a STOP. Tato změna neovlivní ruční spuštění/zastavení a budou fungovat tak, jak jsou.
Pozor !!!! Protože DOL startér je vysokonapěťové zařízení, zajistěte před otevřením krabice hlavní vypínač. Přímý kontakt s vodičem pod napětím může být nebezpečný. Pokud si nejste jisti, požádejte o pomoc elektrikáře
Jako spínač START a STOP jsem použil 2kanálový reléový modul 5 V. Tato relé budou řízena ESP12.
Relé - 0 bude fungovat jako spínač START - zapojeno jako NE (normálně rozepnuto).
Relé -1 bude fungovat jako spínač STOP - zapojeno jako NC (normálně sepnuto). Startér již bude mít vodič spojující horní stykač s NVC. Budete jej muset odstranit a nahradit vodiči relé -1, jak je znázorněno na obrázku.
Zajistěte, aby spojení mezi startérem a reléovými moduly byla z důvodu bezpečnosti zcela izolována. Naprogramoval jsem ESP, aby držel obě relé po dobu 2 sekund, aby emuloval stisknutí tlačítka START/STOP.
Krok 3: Vytvořte si účet u Adafruit IO (io.adafruit.com)
Použil jsem Adafruit io mqtt broker, který je zdarma k použití s několika omezeními, ale je v pořádku pro naše použití. Dávám to přednost, protože jsem to použil také v jiných projektech a našel jsem docela spolehlivý a má také mnoho dalších funkcí, jako je Dashboard s pěkným GUI a dokonce můžeme použít spouště. Chcete -li používat Adafruit io, musíte si vytvořit účet a poznamenat si uživatelské jméno a aktivní klíč.
Krok 4: Sestavte a nainstalujte software
Kompletní kód je k dispozici v náčrtu. Toto musíte otevřít v Arduino IDE a před kompilací a nahráním firmwaru provést několik změn. Vyberte typ desky jako NodeMCU 1.0. Instalace IDE a souvisejících knihoven není v rozsahu této dokumentace.
Upravte následující řádky v kódu jako ladem.
#define WLAN_SSID "xxx" // SSID WiFi vašeho mobilního hotspotu
#define WLAN_PASS "……" //
/************************** Nastavení Adafruit.io ******************** *************/
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883 // použijte 8883 pro SSL
#define AIO_USERNAME "xyz" // Uživatelské jméno vašeho účtu adafruit
#define AIO_KEY "abcd ……" // váš aktivní klíč …
O informačních kanálech MQTT: Zařízení a klient (mobilní aplikace) si vyměňují informace prostřednictvím kanálů zpráv pomocí submodelu pub prostřednictvím brokera MQTT. Jakýkoli klient nebo zařízení, aby obdržel zprávu, musí se přihlásit k odběru předdefinovaného zdroje a použít metodu publikování k odeslání zprávy do zdroje. Pro náš projekt požadujeme asi 5 zdrojů. Níže je vysvětlení každého kanálu, jak vidíte v kódu a jak funguje.
Stav sítě: Dostupnost napájení ze sítě je zveřejněna na feedu /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/feeds/grid");
0 znamená, že napájecí zdroj není k dispozici a 1 pro napájecí zdroj je k dispozici.
Stav motoru: Zařízení zveřejní stav motoru na feed…/feeds/grid.
Adafruit_MQTT_Publish motor_status = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/kanály/motor")
Hodnota 0 pro VYPNUTO a 1 pro ZAPNUTO
Tlačítko Motor ON: Tento posuv slouží k přijetí požadavku na spuštění motoru. Zařízení se přihlásí k odběru kanálu pro příjem požadavku na spuštění motoru s hodnotou = 1 a pomocí stejného zdroje zveřejní potvrzovací zprávu jako 0. Tímto způsobem můžeme potvrdit, že zpráva o požadavku na spuštění byla skutečně přijata zařízením.
Adafruit_MQTT_Subscribe motoronbutton = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/feeds/motor_on");
Tlačítko vypnutí motoru:
Podobně jako u požadavku na spuštění se tento zdroj používá k přijetí požadavku na zastavení motoru. Zařízení se přihlásí k odběru kanálu, aby obdrželo požadavek na zastavení s hodnotou = 1, a pomocí stejného zdroje zveřejní potvrzovací zprávu jako 0.
Adafruit_MQTT_Subscribe motoroffbutton = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/feeds/motor_off");
Spojení:
Toto je speciální kanál se zapnutou možností „poslední vůle“. Když zařízení funguje dobře v každém pevném intervalu, zveřejní připojení = 1, aby uživateli řeklo, že je vše v pořádku. V případě, že dojde k výpadku systému nebo dojde ke ztrátě připojení, zařízení nebude moci komunikovat s makléřem. V takových případech bude MQTT broker sám publikovat do kanálu jako connection = 0, aby dal uživateli vědět, že se něco pokazilo a zařízení není dostupné přes internet. Musíme fyzicky jít a zkontrolovat zařízení. Kód je velmi jednoduchý. Další podrobnosti o tom, jak funguje „Poslední vůle“, najdete v dokumentaci MQTT.
if (itr <= 0)
{
mqtt.publish (AIO_USERNAME "/kanály/připojení", "1", 1);
itr = CON_LIVE_ITR;
}
Zbytek kódu je samovysvětlující a nejsou nutné žádné úpravy. Neváhejte se vyjádřit v případě, že potřebujete více informací.
Krok 5: Nainstalujte a nakonfigurujte aplikaci MQTT Dash APP na svůj mobilní telefon
- Nainstalujte si MQTT Dash do telefonu Android a otevřete aplikaci
- Kliknutím na ikonu + v pravém horním rohu přidáte zařízení.
- Jak je znázorněno na prvním obrázku výše, pojmenujte zařízení názvem „MyFarm-IPSet“. Pole adresy jako io.adafruit.com a port jako 1883, uživatelské jméno by mělo být vaše uživatelské jméno pro adafruit a heslo by mělo být váš aktivní klíč od adafruit. Zbytek polí nechte tak, jak jsou. Nakonec klikněte na uložit.
- Nechali jste si vytvořit zařízení. Nyní na něj klikněte a přidejte na něj řídicí panel.
- Klikněte na + a vyberte typ jako přepínač/tlačítko. Jak je uvedeno výše, zadejte sys do pole názvu. a do pole tématu zadejte název zdroje. každý zdroj by měl začínat uživatelským jménem/kanály/. k tomu my /kanály /připojení. Zajistěte, aby byla zakázána možnost Povolit publikování. Kliknutím na ikonu pro zobrazení si můžete vybrat typ ikony, kterou chcete na palubní desce vypadat. Pro hodnotu 1 vyberte jednu z barev (řekněme zelenou) a pro hodnotu 0 vyberte barvu jako šedou nebo červenou. Nakonec klikněte na uložit v pravém horním rohu. Podobně vytvořte další dvě ikony, jednu pro Mřížku s uživatelským jménem/kanály/mřížkou jako téma a Motor s uživatelským jménem/kanály/motor. Zajistěte, aby byla zakázána možnost Povolit publikování.
- Nakonec vytvořte tlačítko Motor ON. Je to opět stejné jako typ jako přepínač/tlačítko. Tématem by mělo být /feeds /motor_on a zajistit, aby tentokrát byla povolena možnost Povolit publikování a QOS = 1. Podobně vytvořte další tlačítko pro Motor OFF. Téma by mělo být /feeeds /motor_off.
Krok 6: Poslední krok:-) Testování a doladění
- Abyste byli v bezpečí, musíte zařízení nejprve otestovat na funkce START a STOP, než připojíte relé ke startéru DOL. Povolte Hotspot na mobilu s povoleným internetem. Připojte notebook s vývojovým prostředím přímo k USB portu NodeMCU pomocí jiné nabíječky připojené k TP4056 současně. Pokud je zařízení úspěšně připojeno k internetu, mělo by se na smartphonu zobrazit 1 zařízení připojené k hotspotu.
- Na druhém smartphonu, kde jste nainstalovali MQTT Dash, otevřete hlavní panel aplikace. Měli byste vidět, že ikona NET zeleně a ikona mřížky také zeleně s jejich hodnotami 1. Ikona motoru by se měla zobrazovat jako motor vypnutý s hodnotou 0.
- Když kliknete na tlačítko Motor ON, startovací relé by mělo vydávat dva cvakavé zvuky v intervalu dvou sekund. Podobně také tlačítko Motor OFF.
- Z bezpečnostních důvodů nyní vypněte hlavní napájení spouštěče DOL a připojte relé k spouštěči DOL, jak je uvedeno výše v kroku 2. Ujistěte se, že je motor vypnutý. Stiskněte tlačítko reset na NodeMCU. Z výstupu sériového monitoru můžete vidět příkazy k ladění, které tisknou hodnoty ze senzoru WC1700, delta a vypočítaný proud v cívce. Při vypnutém motoru a „#define WCS1700_CONST 15“by maxCur měla být konzistentně menší než 2. Pokud se zobrazí větší než 2, zkuste použít vyšší hodnoty WCS1700_CONST. Pokaždé budete muset znovu zkompilovat kód a načíst firmware.
- Nyní zapněte motor a znovu vyhledejte aktuální hodnoty. Nechte motor ZAPNUTÝ asi 10 -15 minut a zaznamenejte si stabilní hodnoty proudu. Proud se může pohybovat zhruba mezi 10 až 20 ampéry a nemusí být přesný.
- Vraťte se ke kódu a nastavte „#define MIN_CURRENT X. Kde X je 40 procent maximálního proudu přiblíženého k číselné hodnotě. V mém případě jsem nastavil MIN_CURRENT na 5. Zkompilujte a znovu načtěte firmware do NodeMCU.
- Odpojte kabel USB z NodeMCU. Vypněte a zapněte zařízení pomocí USB nabíječky připojené k TP4056. Kliknutím na tlačítko Motor ON v mobilní aplikaci by se měl motor spustit. Jakmile je motor zapnutý, měl by se stav motoru na ovládacím panelu aplikace zobrazit jako ZAPNUTÝ. Kliknutím na tlačítko zastavení by se měl motor zastavit.
Užívat si !!!!
Doporučuje:
Crack the Code Game, Arduino Based Puzzle Box: 4 Steps (with Pictures)
Crack the Code Game, Arduino Based Puzzle Box: V tomto Instructable vám ukážu, jak si vytvořit vlastní crack kódovou hru, ve které pomocí otočného ovladače kodéru uhádnete náhodně generovaný kód do trezoru. Na přední straně trezoru je 8 LED diod, které vám řeknou, kolik z
My DIY Steampunk Operation Game, Arduino Based: 9 Steps (with Pictures)
My DIY Steampunk Operation Game, Arduino Based: Tento projekt je poměrně rozsáhlý. Nevyžaduje mnoho nástrojů ani předchozí znalosti, ale někoho (včetně mě) toho hodně naučí v mnoha různých odděleních výroby! Jako Captive-sensing s Arduino, multitasking s Arduino
Image-Based Modeling/Photogrammetry Portraiture: 4 Steps
Portréty založené na obrazovém modelování/fotogrametrie: Ahoj všichni, v tomto instruktážním videu vám ukážu postup, jak vytvářet 3D modely pomocí digitálních snímků. Tento proces se nazývá Photogrammetry, také známý jako Image-Based Modeling (IBM). Tento druh procesu se konkrétně používá k
Weather Based Music Generator (ESP8266 Based Midi Generator): 4 kroky (s obrázky)
Weather Based Music Generator (ESP8266 Based Midi Generator): Ahoj, dnes vám vysvětlím, jak si vytvořit vlastní malý generátor hudby na základě počasí. Je založen na ESP8266, což je něco jako Arduino, a reaguje na teplotu, déšť a intenzita světla. Nečekejte, že to udělá celé písně nebo akordový program
YABC - Yet Another Blynk Controller - IoT Cloud Temperature and Humidity Controller, ESP8266: 4 Steps
YABC - Yet Another Blynk Controller - IoT Cloud Temperature and Humidity Controller, ESP8266: Ahoj Makers, nedávno jsem začal pěstovat houby doma, houby Ústřice, ale už mám doma 3x tyto ovladače pro Fermenter Regulace teploty pro můj domácí nápoj, manželka nyní také dělá tuto věc Kombucha a jako termostat pro teplo