Kazalo:

Starterski krmilnik DOL na osnovi IOT za namakalno črpalko: 6 korakov
Starterski krmilnik DOL na osnovi IOT za namakalno črpalko: 6 korakov

Video: Starterski krmilnik DOL na osnovi IOT za namakalno črpalko: 6 korakov

Video: Starterski krmilnik DOL na osnovi IOT za namakalno črpalko: 6 korakov
Video: Все о покраске валиком за 20 минут. ПЕРЕДЕЛКА ХРУЩЕВКИ от А до Я #32 2024, November
Anonim
Starterski krmilnik DOL na osnovi IOT za namakalno črpalko
Starterski krmilnik DOL na osnovi IOT za namakalno črpalko
Starterski krmilnik DOL na osnovi IOT za namakalno črpalko
Starterski krmilnik DOL na osnovi IOT za namakalno črpalko

Pozdravljeni prijatelji

Ta navodila govorijo o tem, kako na daljavo nadzirati in upravljati namakalno črpalko prek interneta.

Story: Na moji kmetiji dobivam elektriko iz lokalnega omrežja le približno 6 ur na dan. Urniki niso redni, moč je lahko zgodaj zjutraj ali pozno zvečer ali celo polnoč. Vsakič, ko je šel na lokacijo vrtine preveriti razpoložljivost električne energije, je bil zagon ali ustavitev motorja zelo boleč proces. Prav tako sem moral zagotoviti, da motor deluje vsaj 2-3 ure vsak dan, da zagotovim ustrezno vodo za sistem kapljanja. Kar nekaj časa sem raziskal možnosti za rešitev tega problema z daljinskim upravljanjem motorja in tudi vedel stanje. Na trgu so na voljo naprave, ki bodo zaganjale motor takoj, ko bo prišlo do napajanja, vendar nimajo funkcije, da zaustavijo motor, kadar koli želimo. Prav tako ni mogoče v nobenem trenutku vedeti stanja vklop/izklop motorja. To običajno vodi do prekomernega namakanja, kar vodi do izgube rodovitnosti tal in izgube električne energije. Nazadnje sem tudi sam zgradil rešitev, kjer lahko kadar koli in kjerkoli kadar koli zaženem in ustavim motor na mobilnem telefonu/tabličnem računalniku … !!. Prav tako lahko ves čas spremljam razpoložljivost napajanja iz pasu in stanje motorja (ON/OFF). Upam, da bo lastnikom kmetij na podeželju pomagalo pri upravljanju njihovih namakalnih sistemov, ne da bi morali ves čas hoditi na začetno lokacijo.

Zaloge

Predpogoji:

Mesto, kamor želite namestiti to napravo, mora imeti dostop do interneta (širokopasovna povezava z wifi/mobilnim internetom)

Stvari, ki jih potrebujete:

  1. NodeMCU /ESP12
  2. Dvokanalni rele
  3. WCS1700 - Senzor toka
  4. Modul za polnjenje baterije TP4056
  5. LD313, Kondenzator - 1000uF register - Dva registra po 5k ohm
  6. Vsak (star) pametni telefon s dostopno točko /internetom.

Kako deluje:

Je preprosta rešitev IOT v oblaku, ki uporablja NodeMCU/ESP12 in oddaljenega posrednika MQTT. NodeMCU deluje kot prehod IOT, nadzoruje tudi zaganjalnik DOL. Po internetu se poveže z oddaljenim posrednikom MQTT. Aplikacija, ki deluje na mobilnem telefonu Android, se poveže s posrednikom, prek katerega lahko ves čas spremljamo in nadzorujemo našo namakalno črpalko. Uporabil sem brezplačni posrednik MQTT iz Adafruit IO. Na voljo je veliko brezplačnih posrednikov, kot so mosquitto, cloudmqtt itd. Izberete lahko katerega koli posrednika, če spremenite strežnik in številko vrat v kodi. NodeMCU se poveže z internetom prek WiFi prek mobilne dostopne točke. Yon lahko uporablja kateri koli stari ali poceni mobilni telefon za dostop do wifi prek vroče točke ali kateri koli drug način zagotavljanja interneta prek wifi. Mobilni telefon mora biti priključen na polnilnik, kot bi moral biti na 24X7.

NodeMCU je povezan z dvema relejema za nadzor zagona in ustavitve delovanja motorja. Za zaznavanje toka v motorju sem uporabil senzor toka WCS1700. Analogni izhod senzorja se uporablja za ugotavljanje, ali je motor vklopljen ali izklopljen. Prav tako zazna razpoložljivost električne energije iz omrežja in jo objavi posredniku, tako da lahko kadar koli ugotovimo stanje omrežja. Naprava se naroči na dva vira, da sprejme zahtevo za vklop motorja in izklop motorja. S pošiljanjem določenih vrednosti v te vire lahko nadzorujemo motor na START ali STOP.

Nazadnje sem na telefon android namestil aplikacijo MQTT Dash in jo konfiguriral za povezavo z posrednikom MQTT in uporabo virov na njeni nadzorni plošči/gui. Aplikacija ima zelo dobre ikone z gumbi, merilnikom, stikalom itd. Za ustvarjanje privlačne armaturne plošče. Lahko pa uporabite katero koli mobilno aplikacijo IOT za domačo avtomatizacijo, ki podpira protokol mqtt.

Kako deluje WCS1700:

WCS1700 je v bistvu Hall -ov senzor, ki bo proizvedel izhodno napetost, sorazmerno z magnetnim poljem, ki nastane, ko tok teče skozi tuljavo. Tuljava je napajalni vod, ki bo priključen na motor. Lahko meri izmenični tok do 70 amperov. Delovna napetost je med 3,3 do 12 V. Za več podrobnosti glejte njegov podatkovni list. Ker uporabljam ESP12, sem uporabil isti napajalnik 3,3 V kot delovno napetost za WCS1700. Kot je navedeno v podatkovnem listu pri 3,3 V, mora naprava ustvariti diferencialno napetost približno 32 do 38 mV na amp toka skozi tuljavo. Lahko pa se razlikuje glede na velikost tuljave / zračno režo in razlike v napravi. Zato sem ga moral umeriti tako, da sem ga preizkusil z ampermetrom. Nisem zadovoljen z natančnostjo naprave, vendar je dovolj dobra, da se odloči o stanju motorja kot VKLOP/IZKLOP. Izhodni pin WCS1700 je priključen na A0 ESP12. Kadar ni toka, mora ESP12 prebrati vrednost okoli 556. Ker se tok povečuje v tuljavi, se lahko napetost zelo obrne na obe strani glede na to, kako kabel prehaja skozi senzor. V kodi sem razliko vrednosti upošteval kot absolutno vrednost (x - 556). Z delitvijo rezultata s 15 sem dobil približen tok, ki teče skozi senzor. To boste morali eksperimentirati, da boste dobili pravo številko za vas. Kakršne koli meritve toka, ki jih naprava opravi nad 5 amperov, štejem za VKLOPLJEN motor in pod 5 amperov, ker je motor v IZKLOPLJENEM položaju. S poskusom lahko uporabite pravo številko za svojo napravo. V kodi morate ustrezno spremeniti WCS1700_CONST in MIN_CURRENT.

1. korak: Konstrukcija naprave

Konstrukcija naprav
Konstrukcija naprav
Konstrukcija naprav
Konstrukcija naprav

Zgornji diagram prikazuje popolne podrobnosti o tem, kako povezati vse komponente.

Napajanje: Uporabil sem TP4056 za polnjenje baterij in LM313 za uravnavanje 3,7 V - 4,2 V izhoda baterije na 3,3 V za napajanje NodeMCU. Za stabilno napajanje 3.3V sem uporabil 1000mF kondenzator med Vin in ozemljitvijo LM313. Za napajanje TP4056 lahko uporabite običajni mobilni polnilnik USB. Ima zaščitno vezje za zaščito akumulatorja pred prekomernim polnjenjem.

Mrežno zaznavanje napajanja: 5k ohmski delilnik napetosti bo zmanjšal 5 V na 2,5 V. Pin D5 NodeMCU bo zaznal napetost.

Izhodni zatič WCS1700 je priključen na A0 za odčitavanje analogne napetosti s senzorja. Mrežni napajalni vod mora preiti skozi luknjo za merjenje toka. Uporabil sem 0,01 uF kondenzator, da dobim stabilno odčitano obliko WCS1700.

D1 in D2 NodeMCU priključiti na IN0 in IN1 vhodnih zatičev releja.

2. korak: DOL Starter Connections

DOL Starter Connections
DOL Starter Connections
DOL Starter Connections
DOL Starter Connections

Preoblikoval sem krmilno vezje zaganjalnika DOL, da sem predstavil še en sklop stikal START in STOP. Ta sprememba ne bo vplivala na ročni zagon/zaustavitev in bodo še naprej delovali kot so.

Pozor !!!! Ker je zaganjalnik DOL visokonapetostna naprava, pred odpiranjem škatle zagotovite, da je glavno stikalo izklopljeno. Neposreden stik z žico pod napetostjo je lahko nevaren. Če niste prepričani, se obrnite na električarja

Kot stikalo START in STOP sem uporabil 2 -kanalni 5 V relejni modul. Te releje krmili ESP12.

Rele - 0 bo deloval kot stikalo START - ožičen kot NO (normalno odprt).

Rele -1 bo deloval kot stikalo STOP - ožičeno kot NC (normalno zaprto). Zaganjalnik bo že imel žico, ki se povezuje od zgornjega kontaktorja do NVC. Morali ga boste odstraniti in zamenjati z relejem -1, kot je prikazano.

Zaradi varnosti zagotovite, da so povezave med zaganjalnikom in relejskimi moduli popolnoma izolirane. ESP sem programiral tako, da zadrži oba releja 2 sekundi, da posnema pritisk gumba START/STOP.

3. korak: Ustvarite račun z Adafruit IO (io.adafruit.com)

Uporabil sem posrednika Adafruit io mqtt, ki ga je mogoče uporabljati z nekaj omejitvami, vendar je za našo uporabo v redu. To mi je ljubše, ker sem ga uporabljal tudi v drugih projektih in se mi je zdel precej zanesljiv, poleg tega pa ima še veliko drugih funkcij, kot je nadzorna plošča z lepim grafičnim vmesnikom in celo lahko uporabljamo sprožilce. Če želite uporabljati Adafruit io, morate ustvariti račun in si zabeležiti uporabniško ime in aktivni ključ.

4. korak: Zgradite in namestite programsko opremo

Celotna koda je na voljo na skici. To morate odpreti v Arduino IDE in narediti nekaj sprememb, preden sestavite in naložite vdelano programsko opremo. Izberite vrsto plošče kot NodeMCU 1.0. Namestitev IDE in sorodnih knjižnic niso v obsegu te dokumentacije.

Naslednje vrstice v kodi spremenite kot prag.

#define WLAN_SSID "xxx" // SSID vaše mobilne vroče točke WiFi

#define WLAN_PASS "……" //

/************************* Nastavitev Adafruit.io ******************** *************/

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883 // uporabite 8883 za SSL

#define AIO_USERNAME "xyz" // Uporabniško ime vašega računa adafruit

#define AIO_KEY "abcd ……" // vaš aktivni ključ …

O virih MQTT: Naprava in odjemalec (mobilna aplikacija) si izmenjujejo podatke prek virov sporočil z uporabo pod -modela pub prek posrednika MQTT. Vsak odjemalec ali naprava, če želi prejeti sporočilo, se mora naročiti na vnaprej določen vir in uporabiti metodo objave za pošiljanje sporočila viru. Za naš projekt potrebujemo približno 5 virov. Spodaj je razlaga vsakega vira, kot vidite v kodi, in njihovo delovanje.

Stanje omrežja: Razpoložljivost napajanja iz omrežja je objavljena na viru /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/feeds/grid");

0 označuje, da napajanje ni na voljo, 1 za napajanje pa je na voljo.

Stanje motorja: Naprava bo objavila stanje motorja na vhodu …/viri/mreža.

Adafruit_MQTT_Publish motor_status = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/viri/motor")

Vrednost 0 za izklop in 1 za vklop

Gumb za vklop motorja: Ta vir se uporablja za sprejem zahteve za zagon motorja. Naprava se bo naročila na vir za sprejem zahteve za zagon motorja z vrednostjo = 1 in uporabila isti vir za objavo potrditvenega sporočila kot 0. Tako lahko potrdimo, da je naprava dejansko prejela sporočilo o zahtevi za zagon.

Adafruit_MQTT_Subscribe motoronbutton = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/feeds/motor_on");

Gumb za izklop motorja:

Podobno kot zahteva za zagon se ta vir uporablja za sprejem zahteve za zaustavitev motorja. Naprava se bo naročila na vir, da bo prejela zahtevo za ustavitev z vrednostjo = 1, in uporabila isti vir za objavo potrditvenega sporočila kot 0.

Adafruit_MQTT_Subscribe motoroffbutton = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/feeds/motor_off");

Povezava:

To je poseben vir z možnostjo »zadnja volja«. Ko naprava deluje v vsakem določenem intervalu, bo objavila povezavo = 1, da bo uporabniku povedala, da je vse v redu. V primeru padca sistema ali prekinitve povezave naprava ne bo mogla komunicirati s posrednikom. V takih primerih posrednik MQTT sam objavi v viru kot povezava = 0, da uporabniku sporoči, da je šlo kaj narobe in da naprava ni dosegljiva prek interneta. Moramo fizično iti in preveriti napravo. Koda je zelo preprosta. Za več podrobnosti o delovanju "Zadnje volje" glejte dokumentacijo MQTT.

če (itr <= 0)

{

mqtt.publish (AIO_USERNAME "/viri/povezava", "1", 1);

itr = CON_LIVE_ITR;

}

Preostali del kode je samoumeven in ga ni treba spreminjati. Če potrebujete več informacij, komentirajte.

5. korak: Namestite in konfigurirajte aplikacijo MQTT Dash na svojem mobilnem telefonu

Namestite in konfigurirajte aplikacijo MQTT Dash na svojem mobilnem telefonu
Namestite in konfigurirajte aplikacijo MQTT Dash na svojem mobilnem telefonu
Namestite in konfigurirajte aplikacijo MQTT Dash na svojem mobilnem telefonu
Namestite in konfigurirajte aplikacijo MQTT Dash na svojem mobilnem telefonu
Namestite in konfigurirajte aplikacijo MQTT Dash na svojem mobilnem telefonu
Namestite in konfigurirajte aplikacijo MQTT Dash na svojem mobilnem telefonu
  1. Namestite MQTT Dash na telefon Android in odprite aplikacijo
  2. Če želite dodati napravo, kliknite ikono + v zgornjem desnem kotu.
  3. Kot je prikazano na prvi sliki zgoraj, dajte napravi ime, recimo "MyFarm-IPSet". Naslovno polje kot io.adafruit.com in vrata kot 1883, uporabniško ime mora biti vaše uporabniško ime za adafruit, geslo pa vaš aktivni ključ iz adafruit. Ostala polja pustite takšna, kot so. Na koncu kliknite shrani.
  4. Napravo ste ustvarili. Zdaj kliknite nanjo, da ji dodate nadzorno ploščo.
  5. Kliknite na + in izberite tipko kot stikalo/gumb. Kot je prikazano zgoraj, v polje sys vnesite sys. in vnesite ime vira v polje teme. vsak vir se mora začeti z uporabniškim imenom/viri/. za to smo mi /viri /povezava. Prepričajte se, da je možnost Omogoči objavo onemogočena. S klikom na ikono za prikaz lahko izberete vrsto ikone, ki naj bo videti na nadzorni plošči. Za vrednost 1 izberite eno od barv (recimo zeleno), za vrednost 0 pa barvo kot sivo ali rdečo. Na koncu kliknite shrani v zgornjem desnem kotu. Podobno ustvarite še dve ikoni eno za Mrežo z uporabniškim imenom/viri/mrežo kot temo in Motor z uporabniškim imenom/viri/motor. Prepričajte se, da je možnost Omogoči objavo onemogočena.
  6. Nazadnje ustvarite gumb za vklop motorja. Spet je enak tipu stikala/gumba. Tema mora biti /feeds /motor_on in zagotoviti, da je tokrat omogočeno Enable Publish in QOS = 1. Podobno ustvarite še en gumb za izklop motorja. Tema naj bo /feeeds /motor_off.

Korak 6: Zadnji korak:-) Testiranje in fino uglaševanje

  1. Zaradi varnosti morate napravo najprej preizkusiti glede delovanja START in STOP, preden priključite releje na zaganjalnik DOL. Omogoči dostopno točko na mobilnem telefonu z omogočenim internetom. Prenosni računalnik z razvojnim okoljem priključite neposredno na vrata USB NodeMCU z drugim polnilnikom, priključenim na TP4056 hkrati. Če je naprava uspešno povezana z internetom, bi morala na pametnem telefonu videti 1 naprava, priključena na dostopno točko.
  2. Na drugem pametnem telefonu, kjer ste namestili MQTT Dash, odprite nadzorno ploščo aplikacije. Videti bi morali, da je ikona NET v zeleni barvi in ikona mreže tudi v zeleni barvi z vrednostmi kot 1. Ikona motorja se mora prikazati kot izklopljen motor z vrednostjo 0.
  3. Ko kliknete gumb za vklop motorja, mora začetni rele v dveh sekundah oddajati dva klika. Podobno tudi gumb za izklop motorja.
  4. Zaradi varnosti izklopite glavno napajanje zaganjalnika DOL in priključite releje na zaganjalnik DOL, kot je prikazano zgoraj, korak 2. Prepričajte se, da je motor izklopljen. Pritisnite gumb za ponastavitev na NodeMCU. Na izhodu serijskega monitorja lahko vidite izjave o odpravljanju napak, ki natisnejo vrednosti iz senzorja WC1700, trikotnika in izračunani tok v tuljavi. Z izklopljenim motorjem in "#define WCS1700_CONST 15" mora biti maxCur dosledno manjši od 2. Če kaže več kot 2, poskusite z višjimi vrednostmi WCS1700_CONST. Vsakič, ko boste morali znova sestaviti kodo in naložiti vdelano programsko opremo.
  5. Zdaj vklopite motor in znova poiščite trenutne odčitke. Pustite motor vklopljen približno 10 -15 minut in zabeležite stabilen odčitek toka. Tok se lahko giblje med 10 in 20 amperov in ni nujno natančen.
  6. Vrnite se k kodi in nastavite "#define MIN_CURRENT X. Kjer je X 40 odstotkov največjega toka, približanega številčni vrednosti. V mojem primeru sem nastavil MIN_CURRENT na 5. Sestavite in znova naložite vdelano programsko opremo v NodeMCU.
  7. Odstranite kabel USB iz NodeMCU. IZKLOPITE in VKLOPITE napravo s polnilnikom USB, priključenim na TP4056. S klikom na gumb za vklop motorja v mobilni aplikaciji se motor zažene. Ko je motor vklopljen, se mora stanje motorja odražati na nadzorni plošči aplikacije kot VKLOPLJENO. S pritiskom na gumb za zaustavitev motor ustavite.

Uživajte !!!!

Priporočena: