Turinys:

IOT pagrįstas drėkinimo siurblio DOL starterio valdiklis: 6 žingsniai
IOT pagrįstas drėkinimo siurblio DOL starterio valdiklis: 6 žingsniai
Anonim
IOT pagrįstas DOL drėkinimo siurblio starterio valdiklis
IOT pagrįstas DOL drėkinimo siurblio starterio valdiklis
IOT pagrįstas DOL drėkinimo siurblio starterio valdiklis
IOT pagrįstas DOL drėkinimo siurblio starterio valdiklis

Sveiki, draugai

Ši instrukcija yra apie tai, kaip nuotoliniu būdu stebėti ir valdyti drėkinimo siurblio komplektą internetu.

Istorija: Mano ūkyje maitinimas iš vietinio tinklo gaunamas tik apie 6 valandas per dieną. Laikas nėra reguliarus, energijos tiekimas gali būti ankstyvas rytas arba vėlyvas vakaras ar net vidurnaktis. Kiekvieną kartą einant į gręžinio vietą patikrinti elektros energijos prieinamumą, paleisti arba sustabdyti variklį buvo labai skausmingas procesas. Taip pat turėjau užtikrinti, kad variklis veiktų bent 2-3 valandas kiekvieną dieną, kad būtų tiekiamas pakankamas vanduo lašėjimo sistemai. Gana ilgai tyrinėjau galimybes išspręsti šią problemą nuotoliniu būdu valdant variklį ir taip pat žinojau būseną. Rinkoje yra prietaisų, kurie užves variklį, kai tik bus maitinimo šaltinis, tačiau jie neturi funkcijos sustabdyti variklį, kai tik norime. Taip pat nėra galimybės sužinoti variklio įjungimo/išjungimo būsenos bet kuriuo metu. Tai paprastai sukelia per didelį drėkinimą, dėl kurio prarandamas dirvožemio derlingumas ir taip pat eikvojama elektra. Galiausiai aš pats sukūriau sprendimą, kuriame galiu bet kuriuo metu ir bet kur ir bet kur bet kuriuo metu paleisti ir sustabdyti variklį iš mobiliojo/planšetinio kompiuterio/kompiuterio … !!. Taip pat galiu nuolat stebėti maitinimo šaltinį iš diržo, taip pat variklio būseną (ĮJUNGTA/IŠJUNGTA). Tikimės, kad tai padės kaimo ūkių savininkams tvarkyti savo drėkinimo sistemas, nereikalaujant nuolat vykti į startuolio vietą.

Prekės

Būtinos sąlygos:

Vieta, kurioje norite įdiegti šį įrenginį, turi turėti prieigą prie interneto (plačiajuostis ryšys su belaidžiu internetu/mobiliuoju internetu)

Jums reikalingi dalykai:

  1. NodeMCU /ESP12
  2. Dviejų kanalų relė
  3. WCS1700 - srovės jutiklis
  4. TP4056 akumuliatoriaus įkrovimo modulis
  5. LD313, kondensatorius - 1000uF registras - du 5k omų registrai
  6. Bet koks (senas) išmanusis telefonas su viešosios interneto prieigos tašku /internetu.

Kaip tai veikia:

Tai paprastas debesimis pagrįstas IOT sprendimas, naudojant NodeMCU/ESP12 ir nuotolinį MQTT brokerį. „NodeMCU“veikia kaip IOT vartai, taip pat valdo DOL starterį. Jis prisijungia prie nuotolinio MQTT brokerio internetu. Programa, veikianti „Android“mobiliajame telefone, prisijungia prie brokerio, per kurį mes galime visą laiką stebėti ir valdyti drėkinimo siurblio komplektą. Aš naudoju nemokamą „Adafruit IO“tarpininką MQTT. Yra daug nemokamų brokerių, tokių kaip mosquitto, cloudmqtt ir kt. Galite pasirinkti bet kurį tarpininką, jei pakeisite serverį ir kodo prievado numerį. „NodeMCU“prisijungia prie interneto naudodami „WiFi“iš mobiliojo interneto prieigos taško. „Yon“gali naudoti bet kurį seną ar nebrangų mobilųjį, kad suteiktų „Wi -Fi“prieigą per viešosios interneto prieigos tašką arba bet kokias kitas interneto teikimo priemones per „Wi -Fi“. Mobilusis telefonas turi būti prijungtas prie įkroviklio taip, kaip turėtų būti 24x7.

„NodeMCU“yra sujungtas su dviem relėmis, skirtomis valdyti variklio paleidimą ir sustabdymą. Norėdami pajusti srovę variklyje, naudoju WCS1700 srovės jutiklį. Analoginė išvestis iš jutiklio naudojama norint sužinoti, ar variklis įjungtas arba išjungtas. Ji taip pat suvokia energijos tiekimą iš tinklo ir paskelbia ją brokeriui, kad bet kuriuo metu galėtume sužinoti tinklo būseną. Įrenginys užsiprenumeruoja du kanalus, kad gautų užklausą įjungti variklį ir išjungti variklį. Siųsdami konkrečias reikšmes į šiuos kanalus, mes galime valdyti variklį į START arba STOP.

Galiausiai savo „Android“telefone įdiegiau „MQTT Dash“programą ir sukonfigūravau ją prisijungti prie „MQTT“brokerio ir naudoti jo informacijos suvestinėje/„gui“esančius kanalus. Programa turi labai geras piktogramas su mygtukais, matuokliu, jungikliu ir tt, kad sukurtų patrauklų prietaisų skydelį. Tačiau galite naudoti bet kurią IOT namų automatikos programą mobiliesiems, palaikančią „mqtt“protokolą.

Kaip veikia WCS1700:

WCS1700 iš esmės yra „Hall“efekto jutiklis, kuris sukuria išėjimo įtampą, proporcingą magnetiniam laukui, sukurtam srovei tekant per ritę. Ritė čia yra maitinimo linija, kuri bus prijungta prie variklio. Jis gali išmatuoti kintamosios srovės srovę iki 70 amperų. Darbinė įtampa yra nuo 3,3 iki 12 V. Daugiau informacijos rasite jo duomenų lape. Kadangi naudoju ESP12, naudojau tą patį 3,3 V maitinimo šaltinį kaip ir WCS1700 darbinę įtampą. Kaip nurodyta duomenų lape, esant 3,3 V įtampai, prietaisas turėtų sukurti maždaug 32–38 mV įtampos skirtumą vienam stiprintuvui per ritę. Tačiau jis gali skirtis priklausomai nuo ritės dydžio / oro tarpo ir prietaiso variacijų. Todėl turėjau jį kalibruoti, išbandydamas jį su „Ampere Meter“. Nesu patenkintas įrenginio tikslumu, tačiau jis pakankamai geras, kad nuspręstų, ar variklis yra įjungtas/išjungtas. WCS1700 išvesties kaištis yra prijungtas prie ESP12 A0. Kai nėra srovės, ESP12 turėtų nuskaityti vertę apie 556. Kadangi srovės stipris ritėje padidėja, įtampa gali būti labai didelė bet kurioje pusėje, atsižvelgiant į tai, kaip kabelis praeina per jutiklį. Kode aš reikšmių skirtumą priėmiau kaip absoliučią vertę (x - 556). Padalijus rezultatą iš 15, gavau apytikslę srovę, tekančią per jutiklį. Turėsite tai eksperimentuoti, kad gautumėte tinkamą numerį. Bet koks prietaiso srovės matavimas, viršijantis 5 amperus, manau, kad variklis įjungtas ir mažesnis nei 5 amperų, nes variklis yra išjungtas. Eksperimentuodami galite naudoti savo įrenginiui tinkamą numerį. Atitinkamai turite pakeisti kodą WCS1700_CONST ir MIN_CURRENT.

1 žingsnis: įrenginio konstrukcija

Įrenginio konstrukcija
Įrenginio konstrukcija
Įrenginio konstrukcija
Įrenginio konstrukcija

Aukščiau pateiktoje schemoje pateikiama išsami informacija apie tai, kaip prijungti visus komponentus.

Maitinimas: aš naudoju TP4056 baterijoms įkrauti, o LM313 - reguliuoti 3,7 V - 4,2 V akumuliatoriaus išvestį iki 3,3 V, kad galėčiau maitinti „NodeMCU“. Naudotas 1000mF kondensatorius tarp Vin ir LM313 žemės, kad būtų užtikrintas stabilus 3,3 V maitinimas. Norėdami įkrauti TP4056, galite naudoti įprastą USB mobilųjį įkroviklį. Turi akumuliatoriaus apsaugos grandinę, kuri apsaugo akumuliatorių nuo per didelio įkrovimo.

Tinklo maitinimo šaltinio jutiklis: 5k omų įtampos skirstytuvas sumažins 5 V iki 2,5 V. „NodeMCU“kaištis D5 pajus įtampą.

WCS1700 išvesties kaištis prijungtas prie A0, kad nuskaitytų jutiklio analoginę įtampą. Tinklo elektros linija turi praeiti per skylę, kad išmatuotų srovę. Aš naudoju 0,01 uF kondensatorių, kad gaučiau stabilią WCS1700 skaitymo formą.

„NodeMCU“D1 ir D2 turi būti prijungti prie relės įvesties kontaktų IN0 ir IN1.

2 veiksmas: DOL paleidimo jungtys

DOL paleidimo jungtys
DOL paleidimo jungtys
DOL paleidimo jungtys
DOL paleidimo jungtys

Aš pakeičiau DOL starterio valdymo grandinę, kad pristatyčiau kitą START ir STOP jungiklių rinkinį. Šis pakeitimas neturės įtakos rankiniam paleidimo/sustabdymo veikimui ir jie ir toliau veikia taip, kaip yra.

Atsargiai !!!! Kadangi DOL starteris yra aukštos įtampos įtaisas, prieš atidarydami dėžutę įsitikinkite, kad pagrindinis jungiklis yra išjungtas. Tiesioginis kontaktas su gyvu laidu gali būti pavojingas. Jei nesate tikri, kreipkitės į elektriką, kad atliktumėte jungtis

Aš naudoju 2 kanalų 5 V relės modulį kaip START ir STOP jungiklį. Šios relės bus valdomos ESP12.

Relė - 0 veiks kaip START jungiklis, laidinė - NE (paprastai atidaryta).

Relė -1 veiks kaip STOP jungiklis - laidinis kaip NC (paprastai uždaryta). Starteris jau turės laidą, jungiantį viršutinį kontaktorių su NVC. Turėsite jį pašalinti ir pakeisti relės -1 laidais, kaip parodyta.

Saugos sumetimais įsitikinkite, kad jungtys tarp starterio ir relės modulių yra visiškai izoliuotos. Aš užprogramavau ESP palaikyti abi reles 2 sekundes, kad imituotų START/STOP mygtuko paspaudimą.

3 veiksmas: sukurkite paskyrą naudodami „Adafruit IO“(io.adafruit.com)

Aš naudojau „Adafruit io mqtt“brokerį, kurį galima laisvai naudoti su keliais apribojimais, tačiau jis tinka mūsų naudojimui. Man tai labiau patinka, nes aš taip pat naudoju jį kituose projektuose ir radau gana patikimą, taip pat turi daug kitų funkcijų, tokių kaip prietaisų skydelis su gražia GUI ir net mes galime naudoti aktyviklius. Norėdami naudoti „Adafruit io“, turite susikurti paskyrą ir pažymėti vartotojo vardą bei aktyvų raktą.

4 žingsnis: Sukurkite ir įdiekite programinę įrangą

Visas kodas yra eskize. Prieš sukurdami ir įkeldami programinę -aparatinę įrangą, turite tai atidaryti „Arduino IDE“ir atlikti keletą pakeitimų. Pasirinkite plokštės tipą kaip „NodeMCU 1.0“. Į šią dokumentaciją neįeina IDE ir susijusių bibliotekų diegimas.

Pakeiskite šias kodo eilutes kaip pogrindžius.

#define WLAN_SSID "xxx" // Jūsų mobiliojo interneto prieigos taško „WiFi“SSID

#define WLAN_PASS "……" //

/************************* Adafruit.io sąranka ******************** *************/

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883 // SSL naudokite 8883

#define AIO_USERNAME "xyz" // Jūsų „adafruit“paskyros vartotojo vardas

#define AIO_KEY "abcd ……" // jūsų aktyvusis raktas…

Apie MQTT sklaidos kanalus: įrenginys ir klientas (programa mobiliesiems) keičiasi informacija per pranešimų kanalus, naudodamiesi pub submodeliu per MQTT brokerį. Bet kuris klientas ar įrenginys, norėdamas gauti pranešimą, turi užsiprenumeruoti iš anksto nustatytą sklaidos kanalą ir naudoti skelbimo metodą, kad išsiųstų pranešimą į kanalą. Mūsų projektui mums reikia apie 5 kanalus. Žemiau yra kiekvieno kanalo paaiškinimas, kaip matote kode, ir kaip jie veikia.

Tinklelio būsena: Maitinimo šaltinio prieinamumas iš tinklo skelbiamas sklaidos kanale /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/feeds/grid");

0 rodo, kad maitinimo šaltinis nėra, o 1 - maitinimo šaltinis.

Variklio būsena: prietaisas paskelbs variklio būseną sklaidos kanale…/feeds/grid.

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

Vertė 0 išjungus ir 1 įjungus

Variklio įjungimo mygtukas: šis tiekimas naudojamas variklio paleidimo užklausai gauti. Įrenginys užsisakys kanalą, kad gautų variklio paleidimo užklausą, kurio vertė = 1, ir naudos tą patį sklaidos kanalą, kad paskelbtų patvirtinimo pranešimą kaip 0. Tokiu būdu galime patvirtinti, kad prietaisas iš tikrųjų gavo pradžios užklausos pranešimą.

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

Variklio išjungimo mygtukas:

Panašiai kaip „Start“užklausa, šis tiekimas naudojamas variklio sustabdymo užklausai gauti. Įrenginys užsisakys kanalą, kad gautų sustabdymo užklausą, kurio vertė = 1, ir naudos tą patį sklaidos kanalą, kad patvirtinimo pranešimą paskelbtų kaip 0.

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

Ryšys:

Tai specialus sklaidos kanalas, kuriame įjungta „paskutinės valios“parinktis. Kai įrenginys gerai veikia kiekvieną fiksuotą intervalą, jis paskelbs ryšį = 1, kad vartotojui pasakytų, jog viskas gerai. Jei sistema sugenda arba ryšys nutrūksta, įrenginys negalės susisiekti su tarpininku. Tokiais atvejais pats MQTT brokeris sklaidos kanale paskelbs kaip ryšys = 0, kad vartotojas žinotų, jog kažkas nutiko ir prietaisas nepasiekiamas internetu. Turime eiti fiziškai ir patikrinti įrenginį. Kodas yra labai paprastas. Daugiau informacijos apie tai, kaip veikia „Paskutinė valia“, rasite MQTT dokumentuose.

jei (itr <= 0)

{

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

itr = CON_LIVE_ITR;

}

Likusi kodo dalis yra savaime suprantama ir nereikia jokių pakeitimų. Nedvejodami komentuokite, jei jums reikia daugiau informacijos.

5 veiksmas: įdiekite ir sukonfigūruokite „MQTT Dash APP“savo mobiliajame telefone

Įdiekite ir sukonfigūruokite „MQTT Dash APP“savo mobiliajame telefone
Įdiekite ir sukonfigūruokite „MQTT Dash APP“savo mobiliajame telefone
Įdiekite ir sukonfigūruokite „MQTT Dash APP“savo mobiliajame telefone
Įdiekite ir sukonfigūruokite „MQTT Dash APP“savo mobiliajame telefone
Įdiekite ir sukonfigūruokite „MQTT Dash APP“savo mobiliajame telefone
Įdiekite ir sukonfigūruokite „MQTT Dash APP“savo mobiliajame telefone
  1. Įdiekite „MQTT Dash“savo „Android“telefone ir atidarykite programą
  2. Norėdami pridėti įrenginį, spustelėkite + piktogramą viršutiniame dešiniajame kampe.
  3. Kaip parodyta pirmame paveikslėlyje aukščiau, suteikite savo įrenginiui pavadinimą „MyFarm-IPSet“. Adreso laukas kaip io.adafruit.com ir uostas kaip 1883, vartotojo vardas turėtų būti jūsų „adafruit“vartotojo vardas ir slaptažodis turėtų būti jūsų aktyvusis raktas iš „adafruit“. Likusius laukus palikite tokius, kokie yra. Galiausiai spustelėkite išsaugoti.
  4. Sukūrėte savo įrenginį. Dabar spustelėkite jį, kad prie jo pridėtumėte prietaisų skydelį.
  5. Spustelėkite + ir pasirinkite tipą kaip jungiklį/mygtuką. Kaip parodyta aukščiau, pavadinimo lauke įveskite sys. ir temos lauke įveskite sklaidos kanalo pavadinimą. kiekvienas sklaidos kanalas turėtų prasidėti vartotojo vardu/kanalai/. tam mes /kanalai /ryšys. Įsitikinkite, kad įgalinti paskelbimą yra išjungtas. Spustelėdami rodomą piktogramą, galite pasirinkti, kokio tipo piktogramą norite matyti prietaisų skydelyje. 1 reikšmei pasirinkite vieną iš spalvų (tarkime žalią), o 0 reikšmei pasirinkite spalvą kaip pilką arba raudoną. Galiausiai spustelėkite išsaugoti viršutiniame dešiniajame kampe. Panašiai sukurkite dar dvi piktogramas „Grid“su vartotojo vardu/kanalais/tinkleliu kaip tema ir „Motor“su naudotojo vardu/feeds/motor. Įsitikinkite, kad įgalinti paskelbimą yra išjungtas.
  6. Galiausiai sukurkite variklio įjungimo mygtuką. Tai vėl tas pats, kaip ir jungiklio/mygtuko tipas. Tema turėtų būti /feeds /motor_on ir įsitikinti, kad šį kartą įgalintas leidimas ir QOS = 1. Panašiai sukurkite kitą variklio išjungimo mygtuką. Tema turėtų būti /feeeds /motor_off.

6 žingsnis: Paskutinis žingsnis:-) Testavimas ir užbaigimas

  1. Kad būtumėte saugūs, prieš prijungdami relę prie DOL starterio, pirmiausia turite patikrinti įrenginio veikimą START ir STOP. Įgalinkite „Hotspot“mobiliajame telefone, kai įjungtas internetas. Prijunkite nešiojamąjį kompiuterį, kuriame yra kūrimo aplinka, tiesiogiai prie „NodeMCU“USB prievado kartu su kitu įkrovikliu, prijungtu prie TP4056. Jei įrenginys sėkmingai prijungtas prie interneto, išmaniajame telefone turėtumėte matyti 1 įrenginį, prijungtą prie viešosios interneto prieigos taško.
  2. Kitame išmaniajame telefone, kuriame įdiegėte „MQTT Dash“, atidarykite programos prietaisų skydelį. Turėtumėte matyti, kad NET piktograma žalia ir tinklelio piktograma taip pat žalia, o jų reikšmės yra 1. Variklio piktograma turėtų būti rodoma kaip išjungtas variklis, o vertė 0.
  3. Spustelėjus mygtuką „Variklis įjungtas“, paleidimo relė turėtų duoti dviejų spragtelėjimų garsus kas dvi sekundes. Panašiai ir variklio išjungimo mygtukas.
  4. Saugumo sumetimais dabar išjunkite pagrindinį DOL starterio maitinimą ir prijunkite relės prie DOL starterio, kaip parodyta aukščiau 2 veiksme. Įsitikinkite, kad variklis išjungtas. Paspauskite „NodeMCU“atkūrimo mygtuką. Iš serijinio monitoriaus išvesties galite matyti derinimo teiginius, spausdinančius vertes iš WC1700 jutiklio, trikampio ir apskaičiuotą srovę ritėje. Kai variklis išjungtas ir „#define WCS1700_CONST 15“, maksimalus sukimosi dažnis turi būti nuolat mažesnis nei 2. Jei rodoma daugiau nei 2, pabandykite naudoti aukštesnes WCS1700_CONST reikšmes. Kiekvieną kartą turėsite iš naujo sukompiliuoti kodą ir įkelti programinę -aparatinę įrangą.
  5. Dabar įjunkite variklį ir vėl ieškokite dabartinių rodmenų. Palikite variklį įjungtą maždaug 10-15 minučių ir užrašykite stabilų srovės rodmenį. Srovė gali svyruoti nuo 10 iki 20 amperų ir neturi būti tiksli.
  6. Grįžkite prie kodo ir nustatykite „#define MIN_CURRENT X. Kur X yra 40 proc. Maksimalios srovės, apytikslės iki skaitinės vertės. Mano atveju nustatiau MIN_CURRENT į 5. Kompiliuokite ir iš naujo įkelkite programinę įrangą į„ NodeMCU “.
  7. Atjunkite USB kabelį nuo „NodeMCU“. Išjunkite ir įjunkite įrenginį su USB įkrovikliu, prijungtu prie TP4056. Programos mobiliesiems paspaudimas ant variklio įjungimo mygtuko turėtų užvesti variklį. Kai variklis įjungtas, variklio būsena turėtų atsispindėti programos prietaisų skydelyje kaip ĮJUNGTA. Spustelėjus sustabdymo mygtuką, variklis turėtų sustoti.

Mėgautis !!!!

Rekomenduojamas: