Sisukord:

IOT -põhine DOL -i käivituskontroller niisutuspumpade jaoks: 6 sammu
IOT -põhine DOL -i käivituskontroller niisutuspumpade jaoks: 6 sammu
Anonim
IOT -põhine DOL -i käivituskontroller niisutuspumpade jaoks
IOT -põhine DOL -i käivituskontroller niisutuspumpade jaoks
IOT -põhine DOL -i käivituskontroller niisutuspumpade jaoks
IOT -põhine DOL -i käivituskontroller niisutuspumpade jaoks

Tere, sõbrad

See juhend annab teavet selle kohta, kuidas niisutuspumba komplekti Interneti kaudu kaugjuhtida ja juhtida.

Lugu: Oma talus saan kohaliku võrgu toiteallikat ainult umbes 6 tunniks päevas. Ajad pole regulaarsed, elektrit saab kasutada varahommikul või hilisõhtul või isegi südaööl. Iga kord, kui läksite puurkaevu asukohta, et kontrollida toite kättesaadavust, käivitage või peatage mootor oli väga valus protsess. Samuti pidin tagama mootori töötamise vähemalt 2-3 tundi iga päev, et varustada tilgutussüsteemi piisava veega. Mõnda aega uurisin võimalusi selle probleemi lahendamiseks mootori kaugjuhtimisega ja tean ka olekut. Turul on saadaval seadmeid, mis käivitavad mootori kohe, kui toiteallikas on olemas, kuid neil pole võimalust mootorit igal ajal peatada. Samuti ei saa mingil hetkel teada mootori olekut ON/OFF. Tavaliselt põhjustab see liigset niisutamist, mis põhjustab mullaviljakuse vähenemist ja elektri raiskamist. Lõpuks ehitasin ise lahenduse, kus saan mootorit mobiilist/tahvelarvutist/arvutist eemalt käivitada ja peatada igal ajal ja igal pool … !!. Samuti saan kogu aeg jälgida rihma toiteallika kättesaadavust ja mootori olekut (ON/OFF). Loodetavasti aitab see maapiirkondade taluomanikel oma niisutussüsteeme hallata, ilma et oleks vaja kogu aeg stardipaika minna.

Tarvikud

Eeltingimused:

Asukohas, kuhu soovite selle seadme installida, peab olema Interneti -ühendus (lairiba koos WiFi/mobiilse internetiga)

Asjad, mida vajate:

  1. NodeMCU /ESP12
  2. Kahe kanaliga relee
  3. WCS1700 - vooluandur
  4. TP4056 aku laadimismoodul
  5. LD313, kondensaator - 1000uF register - kaks 5k oomi registrit
  6. Mis tahes (vana) nutitelefon, millel on leviala /internet.

Kuidas see töötab:

See on lihtne pilvepõhine IOT -lahendus, mis kasutab NodeMCU/ESP12 ja MQTT kaugmaaklerit. NodeMCU töötab IOT -lüüsina, juhib ka DOL -käivitit. See ühendub Interneti kaudu MQTT kaugmaakleriga. Rakendus, mis töötab Androidi mobiiltelefonil, ühendub maakleriga, mille kaudu saame oma niisutuspumba komplekti pidevalt jälgida ja juhtida. Kasutasin Adafruit IO tasuta saadaolevat MQTT maaklerit. Saadaval on palju tasuta maaklereid, näiteks mosquitto, cloudmqtt jne. Saate valida mis tahes maakleri tingimusel, et muudate koodis serverit ja pordi numbrit. NodeMCU loob Interneti -ühenduse mobiilse leviala WiFi kaudu. Yon saab kasutada mis tahes vana või odavat mobiiltelefoni, et pakkuda levialale WiFi -ühendust või mõnda muud võimalust Interneti kaudu WiFi kaudu. Mobiiltelefon peaks olema laadijaga ühendatud, nagu see peaks olema 24X7 korral.

NodeMCU on ühendatud kahe releega, et juhtida mootori käivitamist ja seiskamist. Mootori voolu tuvastamiseks kasutasin WCS1700 vooluandurit. Anduri analoogväljundit kasutatakse selleks, et teada saada, kas mootor on sisse või välja lülitatud. Samuti tunneb see võrgu toiteallikat ja avaldab selle maaklerile, et saaksime võrgu olekut igal ajal teada. Seade tellib kaks voogu, et saada päring mootori sisse- ja väljalülitamiseks. Saates nendele kanalitele spetsiifilised väärtused, saame juhtida mootorit START või STOP.

Lõpuks installisin oma Android -telefoni MQTT Dashi rakenduse ja seadistasin selle ühendama MQTT maakleriga ja kasutama selle armatuurlaual/gui vooge. Rakendusel on väga head ikoonid nuppude, gabariidi, lüliti jms abil, et luua atraktiivne armatuurlaud. Siiski saate kasutada mis tahes IOT koduautomaatika mobiilirakendust, mis toetab mqtt -protokolli.

Kuidas WCS1700 töötab:

WCS1700 on põhimõtteliselt Halli efekti andur, mis toodab väljundpinget proportsionaalselt magnetväljaga, mis tekib, kui vool voolab läbi mähise. Spiraal on siin toiteallikas, mis ühendatakse mootoriga. See võib mõõta vahelduvvoolu kuni 70 amprit. Tööpinge on vahemikus 3,3 kuni 12 V. Lisateavet leiate selle andmelehelt. Kuna kasutan ESP12, kasutasin sama toiteallikat (3,3 V) kui WCS1700 tööpinget. Nagu andmelehel on täpsustatud, 3,3 V juures, peaks seade tekitama mähise kaudu voolu ampri kohta diferentsiaalpinget umbes 32 kuni 38 mV. Kuid see võib varieeruda sõltuvalt mähise suurusest / õhuvahest ja seadme variatsioonidest. Seetõttu pidin selle kalibreerima, katsetades seda Ampere Meter'iga. Ma ei ole seadme täpsuse üle rahul, kuid see on piisavalt hea, et otsustada mootori oleku kohta ON/OFF. WCS1700 väljundnõel on ühendatud ESP12 A0 -ga. Kui voolu pole, peaks ESP12 lugema väärtust umbes 556. Kuna mähise praegune suurenemine võib pinge olla väga erinev, sõltuvalt sellest, kuidas kaabel andurit läbib. Koodis võtsin väärtuste erinevuse absoluutväärtusena (x - 556). Jagades tulemuse 15 -ga, sain anduri kaudu voolava ligikaudse voolu. Peate seda katsetama, et saada õige number. Igasugune voolu mõõtmine seadmega üle 5 ampri pean mootorit sisse ja alla 5 amprit, kui mootor on välja lülitatud. Katsetades saate kasutada oma seadme jaoks õiget numbrit. Peate vastavalt muutma koodis WCS1700_CONST ja MIN_CURRENT.

Samm: seadme ehitamine

Seadme ehitus
Seadme ehitus
Seadme ehitus
Seadme ehitus

Ülaltoodud skeem annab täieliku teabe kõigi komponentide ühendamise kohta.

Toide: kasutasin akude laadimiseks TP4056 ja LM313, et reguleerida 3,7 V - 4,2 V aku väljundit 3,3 V toiteks NodeMCU toiteks. Kasutas 1000 mF kondensaatorit Vini ja LM313 maapinna vahel, et saada stabiilne 3,3 V toide. TP4056 toiteks saate kasutada tavalist USB -mobiililaadijat. Sellel on aku kaitseskeem, mis kaitseb akut ülelaadimise eest.

Võrk Toiteallika tuvastamine: 5k oomine pingejagur vähendab 5 V kuni 2,5 V. NodeMCU tihvt D5 tunneb pinget.

WCS1700 väljundnõel on ühendatud A0 -ga, et lugeda andurilt analoogpinget. Võrgu toiteliin peab voolu mõõtmiseks läbima augu. Kasutasin 0,01 uF kondensaatorit, et saada stabiilne lugemisvorm WCS1700.

NodeMCU D1 ja D2 ühendatakse relee sisendpistikute IN0 ja IN1 -ga.

2. samm: DOL -i käivitusühendused

DOL -i käivitusühendused
DOL -i käivitusühendused
DOL -i käivitusühendused
DOL -i käivitusühendused

Muutsin DOL -starteri juhtimisahelat, et tutvustada teist START- ja STOP -lülitite komplekti. See muudatus ei mõjuta käsitsi käivitamise/seiskamise toimimist ja need töötavad edasi.

Ettevaatust !!!! Kuna DOL -starter on kõrgepingeseade, veenduge enne karbi avamist, et pealüliti on välja lülitatud. Otsene kokkupuude pingestatud juhtmega võib olla ohtlik. Kui te pole enesekindel, otsige ühenduste tegemiseks abi elektrikult

START- ja STOP -lülitina kasutasin 2 -kanalilist 5 V releemoodulit. Neid releesid juhib ESP12.

Relee - 0 töötab START -lülitina - juhtmega NO (tavaliselt avatud).

Relee -1 töötab STOP -lülitina - juhtmega NC (tavaliselt suletud). Starteril on juba traat, mis ühendab ülemisest kontaktorist NVC -ga. Peate selle eemaldama ja asendama relee -1 juhtmetega, nagu näidatud.

Ohutuse tagamiseks veenduge, et starteri ja releemoodulite vahelised ühendused on täielikult isoleeritud. Programmeerisin ESP -d hoidma mõlemat releed 2 sekundit, et jäljendada START/STOP -nupu vajutamist.

Samm: looge konto Adafruit IO -ga (io.adafruit.com)

Ma kasutasin Adafruit io mqtt maaklerit, mida saab tasuta kasutada mõne piiranguga, kuid see sobib meie jaoks. Ma eelistan seda, sest kasutasin seda ka teistes projektides ja leidsin, et see on üsna usaldusväärne ning sellel on ka palju muid funktsioone, nagu armsa GUI -ga armatuurlaud ja isegi me saame kasutada päästikuid. Adafruit io kasutamiseks peate looma konto ning märkima kasutajanime ja aktiivvõtme.

Samm: ehitage ja installige tarkvara

Täielik kood on visandis saadaval. Enne püsivara kompileerimist ja üleslaadimist peate selle avama Arduino IDE -s ja tegema mõned muudatused. Valige plaadi tüüp NodeMCU 1.0. Käesolev dokumentatsioon ei hõlma IDE ja sellega seotud teekide installimist.

Muutke koodi järgmisi ridu kesksena.

#define WLAN_SSID "xxx" // Teie mobiilse leviala WiFi SSID

#define WLAN_PASS "……" //

/************************* Adafruit.io häälestus ******************** *************/

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883 // SSL -i jaoks kasutage 8883

#define AIO_USERNAME "xyz" // Teie adafruit konto kasutajanimi

#define AIO_KEY "abcd ……" // teie aktiivne võti…

Teave MQTT -kanalite kohta: seade ja klient (mobiilirakendus) vahetavad teavet sõnumivoogude kaudu, kasutades pubi alammudelit MQTT maakleri kaudu. Iga klient või seade peab sõnumi saamiseks tellima eelmääratud voo ja kasutama sõnumile voo saatmiseks avaldamismeetodit. Meie projekti jaoks vajame umbes 5 voogu. Allpool on selgitus iga voo kohta, nagu näete koodis, ja nende toimimise kohta.

Võrgu olek: võrgu toiteallika kättesaadavus avaldatakse voos /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/feeds/grid");

0 näitab, et toide pole saadaval ja 1 toiteallika jaoks on saadaval.

Mootori olek: seade avaldab mootori oleku kanalis…/feeds/grid.

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

Väärtus 0 väljas ja 1 sisselülitamisel

Mootori sisselülitamise nupp: seda voogu kasutatakse mootori käivitamistaotluse vastuvõtmiseks. Seade tellib voo, et saada mootori käivitamistaotlus, mille väärtus on 1, ja kasutab sama voogu, et avaldada kinnitusteade kui 0. Nii saame kinnitada, et seade on päringuteate tegelikult kätte saanud.

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

Mootori väljalülitamise nupp:

Sarnaselt käivitamistaotlusega kasutatakse seda voogu mootori seiskamistaotluse vastuvõtmiseks. Seade tellib voo, et saada peatamistaotlus väärtusega = 1, ja kasutab sama voogu, et avaldada kinnitusteade kui 0.

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

Ühendus:

See on spetsiaalne voog, kus on lubatud viimane tahe. Kui seade töötab iga kindla aja tagant hästi, avaldab see ühenduse = 1, et kasutajale öelda, et kõik on korras. Kui süsteem katkes või ühendus katkes, ei saa seade maakleriga suhelda. Sellistel juhtudel avaldab MQTT maakler ise voos ühenduse nimega 0, et anda kasutajale teada, et midagi läks valesti ja seade pole Interneti kaudu kättesaadav. Peame füüsiliselt minema ja seadet kontrollima. Kood on väga lihtne. “Viimase tahte” toimimise kohta leiate lisateavet MQTT dokumentatsioonist.

kui (itr <= 0)

{

mqtt.publish (AIO_USERNAME "/feeds/connection", "1", 1);

itr = CON_LIVE_ITR;

}

Ülejäänud kood on iseenesestmõistetav ega vaja muudatusi. Kommenteerige julgelt, kui vajate lisateavet.

Samm: installige ja seadistage oma mobiiltelefoni rakendus MQTT Dash

Installige ja konfigureerige oma mobiiltelefoni rakendus MQTT Dash
Installige ja konfigureerige oma mobiiltelefoni rakendus MQTT Dash
Installige ja konfigureerige oma mobiiltelefoni rakendus MQTT Dash
Installige ja konfigureerige oma mobiiltelefoni rakendus MQTT Dash
Installige ja konfigureerige oma mobiiltelefoni rakendus MQTT Dash
Installige ja konfigureerige oma mobiiltelefoni rakendus MQTT Dash
  1. Installige MQTT Dash oma Android -telefoni ja avage rakendus
  2. Seadme lisamiseks klõpsake paremas ülanurgas ikooni +.
  3. Nagu ülaltoodud esimesel pildil näidatud, andke oma seadmele nimi, öelge "MyFarm-IPSet". Aadressiväli kui io.adafruit.com ja port 1883, kasutajanimi peaks olema teie adafruit'i kasutajanimi ja parool peaks olema teie aktiivne võti adafruitist. Jäta ülejäänud väljad selliseks. Lõpuks klõpsake nuppu Salvesta.
  4. Teie seade on loodud. Nüüd klõpsake sellel armatuurlaua lisamiseks.
  5. Klõpsake nuppu + ja valige lülitiks/nupuks tüüp. Nagu ülal näidatud, sisestage nimeväljale sys. ja sisestage teema väljale voo nimi. iga voog peaks algama kasutajanimega/feeds/. selleks me /feeds /connection. Veenduge, et avalikustamise lubamine oleks keelatud. Kuvataval ikoonil klõpsates saate armatuurlaual valida, millist tüüpi ikooni soovite näha. Väärtuse 1 jaoks valige üks värvidest (nt roheline) ja väärtuse 0 jaoks valige värv hall või punane. Lõpuks klõpsake paremas ülanurgas nuppu Salvesta. Sarnaselt looge veel kaks ikooni Grid, mille teemaks on kasutajanimi/kanalid/ruudustik ja mootor kasutajanimega/kanalid/mootor. Veenduge, et avalikustamise lubamine oleks keelatud.
  6. Lõpuks looge nupp Mootor ON. See on jälle sama tüüp kui lüliti/nupp. Teema peaks olema /feeds /motor_on ja veenduma, et lubage avaldamine on seekord lubatud ja QOS = 1. Samamoodi looge teine nupp mootori väljalülitamiseks. Teemaks peaks olema /feeeds /motor_off.

6. samm: viimane samm:-) Testimine ja viimistlemine

  1. Ohutuse tagamiseks peate enne releede ühendamist DOL -starteriga katsetama seadme START- ja STOP -toiminguid. Lubage leviala mobiilseadmes, kui Internet on lubatud. Ühendage arenduskeskkonnaga sülearvuti otse NodeMCU USB -porti teise laadijaga, mis on samal ajal ühendatud TP4056 -ga. Kui seade on Internetiga edukalt ühendatud, peaksite nutitelefonis nägema ühte seadet, mis on ühendatud levialaga.
  2. Avage teises nutitelefonis, kuhu olete installinud MQTT Dash, rakenduse armatuurlaua. Peaksite nägema, et NET -ikoon rohelisena ja Grid -ikoon ka rohelisena, nende väärtused on 1. Mootoriikoon peaks näitama mootor välja lülitatud väärtusega 0.
  3. Kui klõpsate nupul Mootori sisselülitamine, peaks käivitusrelee andma kahe klõpsuga kahe klõpsuga. Samamoodi nupp Mootor OFF.
  4. Ohutuse tagamiseks lülitage nüüd DOL-starteri põhitoide välja ja ühendage releed DOL-starteriga, nagu on näidatud ülaltoodud punktis 2. Veenduge, et mootor on välja lülitatud. Vajutage NodeMCU lähtestamisnuppu. Seeriamonitori väljundist näete silumislauset, mis prindib väärtused WC1700 andurist, kolmnurgast ja mähises arvutatud voolust. Kui mootor on väljalülitatud olekus ja "#define WCS1700_CONST 15", peaks maxCur olema pidevalt alla 2. Kui see näitab rohkem kui 2, proovige kasutada kõrgemaid väärtusi WCS1700_CONST. Iga kord peate koodi uuesti kompileerima ja püsivara laadima.
  5. Lülitage nüüd mootor sisse ja otsige uuesti praeguseid näitu. Jätke mootor umbes 10-15 minutiks sisse ja märkige stabiilne voolu näit. Vool võib varieeruda vahemikus 10 kuni 20 amprit ja see ei pea olema täpne.
  6. Minge tagasi koodi juurde ja määrake "#define MIN_CURRENT X. Kus X on 40 protsenti maksimaalsest voolust, mis on ligikaudne arvväärtusele. Minu puhul määran MIN_CURRENT väärtuseks 5. Kompileerige ja laadige püsivara uuesti NodeMCU -sse.
  7. Eemaldage USB -kaabel NodeMCU -st. Lülitage seade välja ja lülitage seade sisse, kui USB -laadija on ühendatud TP4056 -ga. Kui klõpsate mobiilirakenduse nupul Mootor ON, peaks mootor käivituma. Kui mootor on sisse lülitatud, peaks mootori olek kajastuma rakenduse armatuurlaual olekus ON. Stopp -nupule klõpsamine peaks mootori peatama.

Naudi !!!!

Soovitan: