Obsah:
- Zásoby
- Krok 1: Konštrukcia zariadenia
- Krok 2: Pripojenie štartéra DOL
- Krok 3: Vytvorte si účet u Adafruit IO (io.adafruit.com)
- Krok 4: Zostavte a nainštalujte softvér
- Krok 5: Nainštalujte a nakonfigurujte aplikáciu MQTT Dash APP na svojom mobile
- Krok 6: Posledný krok:-) Testovanie a doladenie
Video: Štartovací ovládač DOL na báze IOT pre zavlažovaciu pumpu: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
Dobrý deň, priatelia
Tento návod je na tému diaľkového monitorovania a ovládania súpravy zavlažovacieho čerpadla cez internet.
Príbeh: Na svojej farme mám napájanie z miestnej siete iba asi 6 hodín denne. Načasovanie nie je pravidelné, dostupnosť energie môže byť skoro ráno alebo neskoro večer alebo dokonca polnoc. Zakaždým, keď idete do miesta vrtu, aby ste skontrolovali dostupnosť energie, spustenie alebo zastavenie motora bolo veľmi bolestivým procesom. Tiež som musel zaistiť chod motora najmenej 2-3 hodiny každý deň, aby som dodával primeranú vodu pre odkvapkávací systém. Docela dlho som skúmal možnosti vyriešenia tohto problému diaľkovým ovládaním motora a tiež poznal stav. Na trhu sú k dispozícii zariadenia, ktoré naštartujú motor hneď, ako dôjde k napájaniu, ale nemajú funkciu zastavenia motora, kedykoľvek chceme. A tiež neexistuje spôsob, ako zistiť stav ZAPNUTÉ/VYPNUTÉ na motore v ľubovoľnom čase. To zvyčajne vedie k nadmernému zavlažovaniu, čo vedie k strate úrodnosti pôdy a tiež k plytvaniu elektrickou energiou. Nakoniec som sám zostavil riešenie, kde môžem motor kdekoľvek a na diaľku štartovať a vypínať z mobilu/tabletu/PC KEDYKOĽVEK … !!. Tiež môžem neustále monitorovať dostupnosť napájania z nosníka, ako aj stav motora (ON/OFF). Dúfam, že to pomôže majiteľom fariem na vidieku spravovať ich zavlažovacie systémy bez toho, aby museli neustále chodiť na miesto štartéra.
Zásoby
Predpoklady:
Miesto, kde chcete nainštalovať toto zariadenie, musí mať dostupnosť internetu (širokopásmové pripojenie s wifi/mobilným internetom)
Veci, ktoré potrebujete:
- NodeMCU /ESP12
- Dvojkanálové relé
- WCS1700 - snímač prúdu
- Modul nabíjania batérie TP4056
- LD313, kondenzátor - register 1000uF - dva registre 5 kOhm
- Akýkoľvek (starý) smartphone s hotspotom /internetom.
Ako to funguje:
Je to jednoduché cloudové riešenie IOT využívajúce NodeMCU/ESP12 a vzdialeného brokera MQTT. NodeMCU funguje ako brána IOT, tiež ovláda štartér DOL. Pripojí sa k vzdialenému brokerovi MQTT cez internet. K brokerovi sa pripája aplikácia spustená na mobilnom zariadení s Androidom, pomocou ktorej môžeme neustále monitorovať a ovládať našu súpravu zavlažovacích čerpadiel. Použil som bezplatný dostupný broker MQTT od spoločnosti Adafruit IO. K dispozícii je mnoho bezplatných brokerov, ako sú mosquitto, cloudmqtt atď. Môžete si vybrať akéhokoľvek brokera za predpokladu, že v kóde zmeníte server a číslo portu. NodeMCU sa pripája k internetu pomocou WiFi z mobilného hotspotu. Yon môže použiť akýkoľvek starý alebo lacný mobilný telefón na zabezpečenie prístupu na wifi prostredníctvom hotspotu alebo akýmkoľvek iným spôsobom poskytovania internetu prostredníctvom wifi. Mobil by mal byť pripojený k nabíjačke tak, ako by mal byť na 24X7.
NodeMCU je prepojený s dvoma relé na ovládanie štartu a zastavenia činnosti motora. Na snímanie prúdu v motore som použil prúdový snímač WCS1700. Analógový výstup zo snímača slúži na zistenie, či je motor ZAPNUTÝ alebo VYPNUTÝ. Tiež sníma dostupnosť energie zo siete a zverejňuje ju maklérovi, aby sme mohli kedykoľvek poznať stav siete. Zariadenie sa prihlási na odber dvoch kanálov, aby prijalo požiadavku na zapnutý a vypnutý motor. Odoslaním konkrétnych hodnôt do týchto kanálov môžeme ovládať motor na ŠTART alebo STOP.
Nakoniec som si do telefónu s Androidom nainštaloval aplikáciu MQTT Dash a nakonfiguroval som ju tak, aby sa pripojila k maklérovi MQTT a používala kanály na jej palubnej doske/GUI. Aplikácia má veľmi dobré ikony s tlačidlami, rozchodom, prepínačom atď. Na vytvorenie atraktívneho palubného panela. Môžete však použiť akúkoľvek mobilnú aplikáciu pre domácu automatizáciu IOT, ktorá podporuje protokol mqtt.
Ako WCS1700 funguje:
WCS1700 je v podstate snímač s Hallovým efektom, ktorý bude produkovať výstupné napätie úmerné magnetickému poľu vytvorenému pri prúde prúdu cievkou. Cievka je tu napájacie vedenie, ktoré bude pripojené k motoru. Dokáže merať striedavý prúd až 70 ampérov. Prevádzkové napätie je medzi 3,3 až 12 V. Podrobnejšie informácie nájdete v jeho technickom liste. Pretože používam ESP12, použil som rovnaký zdroj 3,3 V ako prevádzkové napätie pre WCS1700. Ako je uvedené v dátovom liste pri 3,3 V, zariadenie by malo vytvárať diferenčné napätie približne 32 až 38 mV na ampér prúdu cievkou. Môže sa však líšiť v závislosti od veľkosti cievky / vzduchovej medzery a variácií v zariadení. Preto som ho musel kalibrovať testovaním pomocou ampérmetra. Nie som spokojný s presnosťou zariadenia, ale je dosť dobrý na to, aby rozhodol o stave motora ako ZAPNUTÉ/VYPNUTÉ. Výstupný pin WCS1700 je pripojený k A0 ESP12. Keď nie je žiadny prúd, ESP12 by mal odčítať hodnotu okolo 556. Ako sa prúd zvyšuje v cievke, napätie môže byť úplne na oboch stranách podľa toho, ako kábel prechádza senzorom. V kóde som vzal rozdiel hodnôt ako absolútnu hodnotu (x - 556). Rozdelením výsledku na 15 som získal približný prúd pretekajúci senzorom. Budete to musieť experimentovať, aby ste získali správne číslo. Akékoľvek meranie prúdu zariadením nad 5 ampérov považujem za zapnutý motor a pod 5 ampér, keď je motor vypnutý. Experimentovaním môžete použiť správne číslo svojho zariadenia. V kóde musíte zodpovedajúcim spôsobom zmeniť WCS1700_CONST a MIN_CURRENT.
Krok 1: Konštrukcia zariadenia
Vyššie uvedený diagram poskytuje úplné informácie o zapojení všetkých komponentov.
Napájanie: TP4056 som používal na nabíjanie batérií a LM313 na reguláciu 3,7 V - 4,2 V výstupu z batérie na 3,3 V na napájanie NodeMCU. Na zaistenie stabilného napájania 3,3 V bol použitý kondenzátor 1000 mF medzi Vin a uzemnením LM313. Na napájanie TP4056 môžete používať bežnú mobilnú nabíjačku USB. Má ochranný obvod batérie, ktorý chráni batériu pred nabíjaním.
Sieťové snímanie napájacieho zdroja: Delič napätia 5 k ohmov zníži 5 V na 2,5 V. Pin D5 NodeMCU bude snímať napätie.
Výstupný kolík WCS1700 je pripojený k A0 na čítanie analógového napätia zo snímača. Sieťové vedenie Grid Power musí prechádzať otvorom na meranie prúdu. Použil som kondenzátor 0,01 uF, aby som získal stabilný čítací formulár WCS1700.
D1 a D2 NodeMCU sa majú pripojiť k IN0 a IN1 vstupných pinov relé.
Krok 2: Pripojenie štartéra DOL
Vyladil som ovládací obvod štartéra DOL, aby som predstavil ďalšiu sadu spínačov ŠTART a STOP. Táto zmena neovplyvní manuálne spustenie/zastavenie a budú fungovať tak, ako sú.
Pozor !!!! Pretože štartér DOL je vysokonapäťové zariadenie, pred otvorením krabice skontrolujte, či je hlavný vypínač vypnutý. Priamy kontakt so živým vodičom môže byť nebezpečný. Ak si nie ste istí, spojte sa s pomocou elektrikára
Ako spínač START a STOP som použil 2kanálový reléový modul 5 V. Tieto relé budú riadené systémom ESP12.
Relé - 0 bude fungovať ako spínač START - zapojené ako NO (normálne otvorené).
Relé -1 bude fungovať ako spínač STOP - zapojený ako NC (normálne zatvorený). Štartér už bude mať vodič spájajúci horný stýkač s NVC. Budete ho musieť odstrániť a nahradiť vodičmi relé -1, ako je znázornené na obrázku.
Zaistite, aby boli spojenia medzi štartérom a reléovými modulmi z dôvodu bezpečnosti úplne izolované. Naprogramoval som ESP, aby podržal obe relé na 2 sekundy, aby emulovali stlačenie tlačidla START/STOP.
Krok 3: Vytvorte si účet u Adafruit IO (io.adafruit.com)
Použil som makléra Adafruit io mqtt, ktorý je zadarmo na použitie s niekoľkými obmedzeniami, ale je v poriadku na naše použitie. Preferujem to, pretože som to použil aj v iných projektoch a považujem to za celkom spoľahlivé a má tiež mnoho ďalších funkcií, ako je Dashboard s pekným grafickým rozhraním a dokonca môžeme používať spúšťače. Ak chcete používať Adafruit io, musíte si vytvoriť účet a zaznamenať používateľské meno a aktívny kľúč.
Krok 4: Zostavte a nainštalujte softvér
Kompletný kód je k dispozícii v náčrte. Toto musíte otvoriť v Arduino IDE a vykonať niekoľko zmien pred kompiláciou a odoslaním firmvéru. Vyberte typ dosky ako NodeMCU 1.0. Inštalácia IDE a súvisiacich knižníc nie je v rozsahu tejto dokumentácie.
Nasledujúce riadky v kóde upravte ako úhor.
#define WLAN_SSID "xxx" // SSID WiFi vášho mobilného hotspotu
#define WLAN_PASS "……" //
/************************* Adafruit.io Nastavenie ******************* *************/
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883 // použite 8883 pre SSL
#define AIO_USERNAME "xyz" // Používateľské meno vášho účtu adafruit
#define AIO_KEY "abcd ……" // váš aktívny kľúč …
O kanáloch MQTT: Zariadenie a klient (mobilná aplikácia) si vymieňajú informácie prostredníctvom kanálov správ pomocou submodelu pub prostredníctvom brokera MQTT. Každý klient alebo zariadenie, aby mohol prijať správu, musí sa prihlásiť na odber preddefinovaného kanála a na odoslanie správy do kanála musí použiť metódu publikovania. Pre náš projekt požadujeme asi 5 kanálov. Nasleduje vysvetlenie ku každému z kanálov, ako vidíte v kóde a ako funguje.
Stav siete: Dostupnosť napájania zo siete je zverejnená na kanáli /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/feeds/grid");
0 znamená, že napájanie nie je k dispozícii a 1 pre napájanie je k dispozícii.
Stav motora: Zariadenie zverejní stav motora na kanáli feed…/feeds/grid.
Adafruit_MQTT_Publish motor_status = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/kanály/motor")
Hodnota 0 pre VYPNUTÉ a 1 pre ZAPNUTÉ
Motor ON Button: Tento kanál slúži na prijatie požiadavky na štart motora. Zariadenie sa prihlási na odber kanála, aby prijalo požiadavku na štart motora s hodnotou = 1, a pomocou rovnakého kanála zverejní potvrdzujúcu správu ako 0. Tak môžeme potvrdiť, že správa o požiadavke na štart bola skutočne prijatá zariadením.
Adafruit_MQTT_Subscribe motoronbutton = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/feeds/motor_on");
Tlačidlo vypnutia motora:
Tento kanál sa podobne ako požiadavka na štart používa na prijatie požiadavky na zastavenie motora. Zariadenie sa prihlási na odber kanála, aby prijalo žiadosť o zastavenie s hodnotou = 1, a pomocou rovnakého kanála zverejní potvrdzujúcu správu ako 0.
Adafruit_MQTT_Subscribe motoroffbutton = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/feeds/motor_off");
Pripojenie:
Toto je špeciálny kanál s povolenou možnosťou „posledná vôľa“. Keď zariadenie funguje správne v každom pevnom intervale, zverejní pripojenie = 1, aby používateľovi oznámil, že je všetko v poriadku. V prípade, že systém vypadne alebo sa stratí spojenie, zariadenie nebude môcť komunikovať s maklérom. V takýchto prípadoch samotný broker MQTT zverejní v kanáli ako connection = 0, aby informoval používateľa, že sa niečo pokazilo a zariadenie nie je dostupné cez internet. Musíme fyzicky ísť a skontrolovať zariadenie. Kód je veľmi jednoduchý. Bližšie informácie o tom, ako funguje „Posledná vôľa“, nájdete v dokumentácii MQTT.
if (itr <= 0)
{
mqtt.publish (AIO_USERNAME "/kanály/pripojenie", "1", 1);
itr = CON_LIVE_ITR;
}
Zvyšok kódu je sám osebe vysvetľujúci a nie sú potrebné žiadne úpravy. V prípade potreby ďalších informácií neváhajte komentovať.
Krok 5: Nainštalujte a nakonfigurujte aplikáciu MQTT Dash APP na svojom mobile
- Nainštalujte MQTT Dash do svojho telefónu s Androidom a otvorte aplikáciu
- Pridajte zariadenie kliknutím na ikonu + v pravom hornom rohu.
- Ako je znázornené na prvom obrázku vyššie, dajte svojmu zariadeniu nejaký názov, napríklad „MyFarm-IPSet“. Pole adresy ako io.adafruit.com a port ako 1883, používateľské meno by malo byť vaše používateľské meno adafruit a heslo by malo byť váš aktívny kľúč od adafruit. Ostatné polia nechajte tak, ako sú. Nakoniec kliknite na uložiť.
- Nechali ste svoje zariadenie vytvoriť. Teraz naň kliknite, ak chcete doň pridať informačný panel.
- Kliknite na + a ako prepínač/tlačidlo vyberte typ. Ako je uvedené vyššie, zadajte sys do poľa s názvom. a do poľa s témou zadajte názov informačného kanála. každý kanál by mal začínať používateľským menom/kanálmi/. na to my /kanály /pripojenie. Zaistite, aby bola možnosť Povoliť publikovanie zakázaná. Kliknutím na ikonu, ktorá sa má zobraziť, si môžete vybrať typ ikony, ktorá má na paneli vyzerať. Pre hodnotu 1 vyberte jednu z farieb (povedzme zelenú) a pre hodnotu 0 vyberte farbu ako sivú alebo červenú. Nakoniec kliknite na uložiť v pravom hornom rohu. Podobne vytvorte ďalšie dve ikony pre mriežku s témou používateľské meno/informačné kanály/mriežka a motor s používateľským menom/informačné kanály/motor. Zaistite, aby bola možnosť Povoliť publikovanie zakázaná.
- Nakoniec vytvorte tlačidlo Motor ON. Je opäť rovnaký ako typ ako prepínač/tlačidlo. Téma by mala byť /feeds /motor_on a zaistiť, aby bola tentokrát povolená možnosť Povoliť zverejnenie a QOS = 1. Podobne vytvorte ďalšie tlačidlo pre vypnutie motora. Téma by mala byť /feeeds /motor_off.
Krok 6: Posledný krok:-) Testovanie a doladenie
- Aby ste boli v bezpečí, musíte zariadenie pred pripojením relé k štartéru DOL najskôr otestovať na činnosti ŠTART a STOP. Povoliť Hotspot v mobile s povoleným internetom. Pripojte prenosný počítač s vývojovým prostredím priamo k portu USB NodeMCU s ďalšou nabíjačkou súčasne pripojenou k TP4056. Ak je zariadenie úspešne pripojené k internetu, v smartfóne by sa malo zobraziť 1 zariadenie pripojené k hotspotu.
- Na druhom smartfóne, do ktorého ste nainštalovali MQTT Dash, otvorte ovládací panel aplikácie. Mali by ste vidieť, že ikona NET zelene a ikona mriežky tiež zelene s ich hodnotami 1. Ikona motora by sa mala zobrazovať ako vypnutý motor s hodnotou 0.
- Keď kliknete na tlačidlo Motor ON, štartovacie relé by malo vydávať dva cvakavé zvuky v intervale dvoch sekúnd. Podobne aj tlačidlo Motor OFF.
- Z bezpečnostných dôvodov teraz vypnite hlavné napájanie štartéra DOL a pripojte relé k štartéru DOL, ako je to znázornené vyššie v kroku 2. Zaistite, aby bol motor vypnutý. Na NodeMCU stlačte tlačidlo reset. Z výstupu sériového monitora môžete vidieť ladiace príkazy, ktoré tlačia hodnoty zo senzora WC1700, delta a vypočítaný prúd v cievke. Pri vypnutom motore a „#define WCS1700_CONST 15“by maxCur mala byť konzistentne menšia ako 2. Ak sa zobrazí viac ako 2, skúste použiť vyššie hodnoty WCS1700_CONST. Zakaždým budete musieť znova skompilovať kód a načítať firmvér.
- Teraz zapnite motor a znova vyhľadajte aktuálne hodnoty. Nechajte motor zapnutý asi 10 -15 minút a zaznamenajte si stabilné hodnoty prúdu. Prúd sa môže pohybovať zhruba od 10 do 20 ampérov a nemusí byť presný.
- Vráťte sa ku kódu a nastavte „#define MIN_CURRENT X. Kde X je 40 percent maximálneho prúdu približného číselnej hodnote. V mojom prípade som nastavil MIN_CURRENT na 5. Skompilovajte a znova načítajte firmvér do NodeMCU.
- Odpojte kábel USB z NodeMCU. Vypnite a zapnite zariadenie pomocou nabíjačky USB pripojenej k TP4056. Motor by sa mal naštartovať kliknutím na tlačidlo Motor ON v mobilnej aplikácii. Keď je motor zapnutý, stav motora by sa mal na paneli aplikácií zobraziť ako ZAPNUTÝ. Kliknutím na tlačidlo zastavenia by sa mal motor zastaviť.
Užite si to !!!!
Odporúča:
Diaľkový ovládač na báze LoRa - Ovládajte spotrebiče z veľkých vzdialeností: 8 krokov
Diaľkový ovládač na báze LoRa | Ovládajte zariadenia na veľké vzdialenosti: Hej, čo sa deje, chlapci! Akarsh tu od CETech. V tomto projekte vytvoríme diaľkové ovládanie, ktoré bude možné použiť na ovládanie rôznych nástrojov, ako sú LED diódy, motory, alebo ak hovoríme o svojom každodennom živote, môžeme ovládať domáceho spotrebiteľa.
[Wearable Mouse] Ovládač nositeľnej myši na báze Bluetooth pre Windows 10 a Linux: 5 krokov
[Wearable Mouse] Ovládač nositeľnej myši s podporou Bluetooth pre Windows 10 a Linux: Vytvoril som ovládač myši na báze Bluetooth, ktorý je možné použiť na ovládanie ukazovateľa myši a vykonávanie operácií súvisiacich s počítačom s myšou za behu, bez toho, aby ste sa museli dotýkať akéhokoľvek povrchu. Elektronické obvody zabudované v rukavici je možné použiť na sledovanie
DIY herný ovládač založený na Arduine - Herný ovládač Arduino PS2 - Hra Tekken s gamepadom DIY Arduino: 7 krokov
DIY herný ovládač založený na Arduine | Herný ovládač Arduino PS2 | Hranie Tekkenu s gamepadom pre domácich majstrov Arduino: Dobrý deň, chlapci, hranie hier je vždy zábavné, ale hranie s vlastným ovládačom pre vlastnú potrebu je zábavnejšie. Preto v tomto návode vytvoríme herný ovládač pomocou arduino pro micro
Automatický štartovací generátor domu: 4 kroky
Automatický štartovací generátor: Tieto informácie slúžia len na informačné účely. Vaše nastavenie a požiadavky budú s najväčšou pravdepodobnosťou odlišné a s najväčšou pravdepodobnosťou nebudete môcť kopírovať presne to, čo som urobil. Nebuďte blázni a zapojte niečo nezákonne, pretože to môže niektorých zabiť
Sériový ovládač na báze Arduino: 6 krokov
Sériový radič na báze Arduino: Jedná sa o jednoduchý sériový radič pre viac serv na základe Arduina. (Tiež môj prvý pokyn :)) Väčšina práce v tomto smere pochádzala z toho, že sa softvér porozprával s arduino a urobil protokol na prenos údajov. Ako f