Sadržaj:

DOL -ov starterski kontroler zasnovan na IOT -u za pumpu za navodnjavanje: 6 koraka
DOL -ov starterski kontroler zasnovan na IOT -u za pumpu za navodnjavanje: 6 koraka

Video: DOL -ov starterski kontroler zasnovan na IOT -u za pumpu za navodnjavanje: 6 koraka

Video: DOL -ov starterski kontroler zasnovan na IOT -u za pumpu za navodnjavanje: 6 koraka
Video: VW T5 van Air Conditioning fixed - Edd China's Workshop Diaries 49. 2024, Novembar
Anonim
DOL Starter kontroler zasnovan na IOT -u za pumpu za navodnjavanje
DOL Starter kontroler zasnovan na IOT -u za pumpu za navodnjavanje
DOL Starter kontroler zasnovan na IOT -u za pumpu za navodnjavanje
DOL Starter kontroler zasnovan na IOT -u za pumpu za navodnjavanje

Hello Friends

Ovo uputstvo govori o tome kako daljinski nadzirati i kontrolirati pumpu za navodnjavanje preko interneta.

Story: Na mojoj farmi dobivam napajanje iz lokalne mreže samo oko 6 sati dnevno. Termini nisu redovni, dostupnost struje može biti rano ujutro ili kasno navečer ili čak ponoć. Svaki put odlazak na lokaciju bušotine radi provjere dostupnosti energije, pokretanje ili zaustavljanje motora bio je vrlo bolan proces. Takođe sam morao osigurati rad motora najmanje 2-3 sata svaki dan kako bih isporučio odgovarajuću vodu za sistem za kapanje. Prilično sam dugo istraživao mogućnosti rješavanja ovog problema daljinskim upravljanjem motorom i također znao status. Na tržištu su dostupni uređaji koji će pokrenuti motor čim se pojavi napajanje, ali nemaju mogućnost zaustavljanja motora kad god želimo. Takođe, ne postoji način da saznate status motora UKLJUČEN/ISKLJUČEN u bilo kom trenutku. To obično dovodi do prekomjernog navodnjavanja, što dovodi do gubitka plodnosti tla i gubitka električne energije. Konačno sam i sam izgradio rješenje gdje mogu pokrenuti i zaustaviti motor na daljinu sa mobilnog telefona/tableta/računara BILO KOJE PUTE BILO GDJE … !!. Također mogu cijelo vrijeme pratiti dostupnost napajanja iz pojasa, kao i status motora (UKLJ./ISKLJ.). Nadam se da će to pomoći vlasnicima farmi na selu da upravljaju svojim sistemima za navodnjavanje bez potrebe da stalno idu na početnu lokaciju.

Supplies

Preduslovi:

Lokacija na koju želite instalirati ovaj uređaj mora imati dostupnost interneta (širokopojasni pristup s WiFi/mobilnim internetom)

Stvari koje su vam potrebne:

  1. NodeMCU /ESP12
  2. Dvokanalni relej
  3. WCS1700 - Senzor struje
  4. TP4056 modul za punjenje baterije
  5. LD313, Kondenzator - 1000uF registar - Dva registra od 5k ohma
  6. Bilo koji (stari) pametni telefon sa hotspotom /internetom.

Kako radi:

To je jednostavno IOT rješenje zasnovano na oblaku koristeći NodeMCU/ESP12 i udaljeni MQTT posrednik. NodeMCU radi kao IOT gateway, također kontrolira DOL starter. Povezuje se s udaljenim MQTT posrednikom putem interneta. Aplikacija koja radi na Android mobitelu povezuje se s posrednikom preko kojeg možemo cijelo vrijeme nadzirati i kontrolirati naš set pumpi za navodnjavanje. Koristio sam besplatni MQTT broker iz Adafruit IO -a. Dostupni su mnogi besplatni posrednici, poput komaraca, cloudmqtt itd. Možete izabrati bilo kojeg brokera pod uvjetom da promijenite server i broj porta u kodu. NodeMCU se povezuje s internetom putem WiFi -a s mobilne pristupne točke. Yon može koristiti bilo koji stari ili jeftini mobilni telefon za pružanje WiFi pristupa putem hotspota ili bilo koji drugi način pružanja interneta putem WiFi -ja. Mobitel bi trebao biti priključen na punjač kao što bi trebao biti na 24X7.

NodeMCU je povezan s dva releja za upravljanje pokretanjem i zaustavljanjem rada motora. Za osjet struje u motoru koristio sam WCS1700 senzor struje. Analogni izlaz sa senzora se koristi da se zna da li je motor UKLJUČEN ili ISKLJUČEN. On također osjeća dostupnost energije iz mreže i objavljuje je posredniku kako bismo u svakom trenutku mogli znati status mreže. Uređaj se pretplaćuje na dva feeda kako bi primio zahtjev za UKLJUČENI motor i isključen motor. Slanjem određenih vrijednosti na ove izvore možemo kontrolirati motor na START ili STOP.

Na kraju sam instalirao aplikaciju MQTT Dash na svoj android telefon i konfigurirao je za povezivanje s posrednikom MQTT i korištenje feedova na njegovoj nadzornoj ploči/gui -u. Aplikacija ima vrlo dobre ikone s gumbima, mjeračem, prekidačem itd. Za stvaranje atraktivne nadzorne ploče. Međutim, možete koristiti bilo koju mobilnu aplikaciju IOT za kućnu automatizaciju koja podržava mqtt protokol.

Kako WCS1700 radi:

WCS1700 je u osnovi Hall -ov senzor koji će proizvoditi izlazni napon proporcionalan magnetskom polju koje nastaje dok struja teče kroz zavojnicu. Zavojnica ovdje predstavlja liniju napajanja koja će biti spojena na motor. Može mjeriti izmjeničnu struju do 70 ampera. Radni napon je između 3,3 do 12 V. Za više detalja pogledajte njegov tehnički list. Kako koristim ESP12, koristio sam isto napajanje od 3,3 V kao radni napon za WCS1700. Kao što je navedeno u tehničkom listu pri 3.3 V, uređaj bi trebao proizvoditi diferencijalni napon od oko 32 do 38 mV po pojačalu struje kroz zavojnicu. Ali može varirati ovisno o veličini zavojnice / zračnom zazoru i varijacijama u uređaju. Stoga sam ga morao kalibrirati testirajući ga s ampermetrom. Nisam zadovoljan preciznošću uređaja, ali je dovoljno dobar da odlučim o statusu motora kao UKLJUČENO/ISKLJUČENO. Izlazni pin WCS1700 je spojen na A0 ESP12. Kada nema struje, ESP12 bi trebao očitati vrijednost oko 556. Kako se struja povećava u zavojnici, napon može biti s obje strane, ovisno o tome kako kabel prolazi kroz senzor. U kodu sam uzeo razliku vrijednosti kao apsolutnu vrijednost (x - 556). Dijeljenjem rezultata sa 15 dobio sam približnu struju koja teče kroz senzor. Morat ćete ovo eksperimentirati da biste dobili pravi broj za sebe. Svako mjerenje struje pomoću uređaja iznad 5 ampera smatram uključenim motorom i ispod 5 ampera jer je motor isključen. Eksperimentiranjem možete koristiti pravi broj za svoj uređaj. U skladu s tim morate promijeniti WCS1700_CONST i MIN_CURRENT u kodu.

Korak 1: Konstrukcija uređaja

Konstrukcija uređaja
Konstrukcija uređaja
Konstrukcija uređaja
Konstrukcija uređaja

Gornji dijagram daje potpune detalje o tome kako spojiti sve komponente.

Napajanje: Koristio sam TP4056 za punjenje baterija i LM313 za regulaciju 3,7 V - 4,2 V izlaza baterije na 3,3 V za napajanje NodeMCU -a. Koristi se 1000mF kondenzator između Vina i mase LM313 za stabilno napajanje od 3.3V. Za napajanje TP4056 možete koristiti obični USB mobilni punjač. Ima zaštitni krug baterije koji štiti bateriju od prekomjernog punjenja.

Mreža Prepoznavanje napajanja: Razdjelnik napona od 5 k ohma smanjit će 5 V na 2,5 V. Pin D5 NodeMCU -a će osjetiti napon.

Izlazni pin WCS1700 je spojen na A0 za očitavanje analognog napona sa senzora. Mrežni električni vod mora proći kroz rupu za mjerenje struje. Koristio sam 0,01 uF kondenzator da dobije stabilno očitanje WCS1700.

D1 i D2 NodeMCU -a spojiti na IN0 i IN1 ulaznih pinova releja.

Korak 2: DOL Starter veze

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

Ja sam prilagodio upravljački krug DOL pokretača kako bih predstavio još jedan set prekidača START i STOP. Ova promjena neće utjecati na rad ručnog pokretanja/zaustavljanja i oni nastavljaju raditi kako jesu.

Oprez !!!! Kako je DOL starter visokonaponski uređaj, osigurajte da je glavni prekidač isključen prije otvaranja kutije. Izravni kontakt sa žicom pod naponom može biti opasan. Ako niste sigurni, potražite pomoć električara za povezivanje

Koristio sam 2 -kanalni 5 V relejni modul kao prekidač START i STOP. Ovim relejima upravlja ESP12.

Relej - 0 će raditi kao START prekidač - ožičen kao NO (normalno otvoren).

Relej -1 će raditi kao STOP prekidač - ožičen kao NC (normalno zatvoren). Starter će već imati žicu koja se povezuje s gornjeg kontaktora na NVC. Morat ćete ga ukloniti i zamijeniti žicom releja -1 kao što je prikazano.

Uvjerite se da su veze između startera i relejnih modula potpuno izolirane radi sigurnosti. Programirao sam ESP da zadrži oba releja 2 sekunde da oponaša pritiskanje tipke START/STOP.

Korak 3: Otvorite račun s Adafruit IO -om (io.adafruit.com)

Koristio sam broker Adafruit io mqtt koji je besplatan za korištenje s ograničenjima, ali je u redu za našu upotrebu. Ovo mi se više sviđa jer sam ga koristio i u drugim projektima i našao se prilično pouzdanim, a ima i mnoge druge značajke poput nadzorne ploče s lijepim grafičkim sučeljem, pa čak i mi možemo koristiti okidače. Da biste koristili Adafruit io, morate stvoriti račun i zabilježiti korisničko ime i aktivni ključ.

Korak 4: Izgradite i instalirajte softver

Kompletan kod dostupan je na skici. Ovo morate otvoriti u Arduino IDE -u i unijeti nekoliko izmjena prije kompajliranja i učitavanja firmvera. Odaberite tip ploče kao NodeMCU 1.0. Instalacija IDE -a i srodnih biblioteka nisu obuhvaćeni ovom dokumentacijom.

Izmijenite sljedeće redove u kodu kao sliježe.

#define WLAN_SSID "xxx" // WiFi SSID vašeg mobilnog hotspota

#define WLAN_PASS "……" //

/************************* Adafruit.io postavljanje ******************** *************/

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883 // koristite 8883 za SSL

#define AIO_USERNAME "xyz" // Korisničko ime vašeg adafruit računa

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

O MQTT izvorima: Uređaj i klijent (mobilna aplikacija) razmjenjuju informacije putem sažetaka poruka koristeći pod -model pub putem MQTT brokera. Bilo koji klijent ili uređaj da bi primio poruku, mora se pretplatiti na unaprijed definirani feed i mora koristiti metod objavljivanja za slanje poruke na feed. Za naš projekt potrebno nam je oko 5 feedova. Ispod je objašnjenje za svaki feed kako vidite u kodu i kako oni rade.

Status mreže: Dostupnost napajanja iz mreže objavljena je na feedu /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/feeds/grid");

0 označava da napajanje nije dostupno, a 1 za napajanje je dostupno.

Status motora: Uređaj će objaviti status motora na feedu …/feeds/grid.

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

Vrijednost 0 za OFF i 1 za ON

Dugme za uključivanje motora: Ovaj feed se koristi za prijem zahtjeva za pokretanje motora. Uređaj će se pretplatiti na feed kako bi primio zahtjev za pokretanje motora s vrijednošću = 1 i koristiti isti feed za objavljivanje potvrdne poruke kao 0. Na taj način možemo potvrditi da je poruka zahtjeva za pokretanje zaista primljena od uređaja.

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

Dugme za isključenje motora:

Slično zahtjevu za pokretanje, ovaj feed se koristi za primanje zahtjeva za zaustavljanjem motora. Uređaj će se pretplatiti na feed kako bi primio zahtjev za zaustavljanje s vrijednošću = 1 i koristiti isti sažetak za objavljivanje potvrdne poruke kao 0.

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

Veza:

Ovo je poseban feed sa omogućenom opcijom "zadnja volja". Kada uređaj radi dobro u svakom fiksnom intervalu, objavit će vezu = 1 kako bi korisniku rekao da je sve u redu. U slučaju pada sistema ili prekida veze, uređaj neće moći komunicirati s posrednikom. U takvim slučajevima sam MQTT posrednik će objaviti u feedu kao vezu = 0 kako bi korisniku dao do znanja da je nešto pošlo po zlu i da uređaj nije dostupan putem interneta. Moramo fizički otići i provjeriti uređaj. Kôd je vrlo jednostavan. Za više detalja o tome kako funkcionira “Last Will” pogledajte dokumentaciju MQTT.

ako (itr <= 0)

{

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

itr = CON_LIVE_ITR;

}

Ostatak koda je jasan i ne zahtijevaju izmjene. Slobodno komentirajte u slučaju da trebate više informacija.

Korak 5: Instalirajte i konfigurirajte aplikaciju MQTT Dash na svom mobilnom telefonu

Instalirajte i konfigurirajte aplikaciju MQTT Dash na svom mobilnom telefonu
Instalirajte i konfigurirajte aplikaciju MQTT Dash na svom mobilnom telefonu
Instalirajte i konfigurirajte aplikaciju MQTT Dash na svom mobilnom telefonu
Instalirajte i konfigurirajte aplikaciju MQTT Dash na svom mobilnom telefonu
Instalirajte i konfigurirajte aplikaciju MQTT Dash na svom mobilnom telefonu
Instalirajte i konfigurirajte aplikaciju MQTT Dash na svom mobilnom telefonu
  1. Instalirajte MQTT Dash na svoj Android telefon i otvorite aplikaciju
  2. Kliknite na ikonu + u gornjem desnom kutu da biste dodali uređaj.
  3. Kao što je prikazano na prvoj slici iznad, dajte svom uređaju neko ime, recimo "MyFarm-IPSet". Adresno polje kao io.adafruit.com i port kao 1883, korisničko ime bi trebalo biti vaše korisničko ime adafruit, a lozinka vaš aktivni ključ iz adafruit -a. Ostala polja ostavite kako jesu. Na kraju kliknite na Spremi.
  4. Vaš uređaj je kreiran. Sada kliknite na nju da biste joj dodali nadzornu ploču.
  5. Pritisnite + i odaberite tip kao prekidač/dugme. Kao što je prikazano gore, unesite sys u polje za ime. i unesite naziv sažetka u polje teme. svaki feed treba započeti korisničkim imenom/feeds/. za ovo mi /feedovi /veza. Uvjerite se da je Enable Publish onemogućeno. Klikom na ikonu za prikaz možete odabrati vrstu ikone koju želite da izgleda na nadzornoj ploči. Za vrijednost 1 odaberite jednu od boja (recimo zelenu), a za vrijednost 0 odaberite boju kao sivu ili crvenu. Na kraju kliknite na Spremi u gornjem desnom kutu. Na sličan način stvorite još dvije ikone jednu za Grid s korisničkim imenom/feedovima/mrežom kao temom i Motor s korisničkim imenom/feeds/motor. Uvjerite se da je Enable Publish onemogućeno.
  6. Na kraju kreirajte dugme Motor ON. Opet je isti tip kao prekidač/dugme. Tema bi trebala biti /feeds /motor_on i osigurati da je ovaj put omogućeno Enable Publish i QOS = 1. Slično, stvorite još jedno dugme za isključeni motor. Tema bi trebala biti /feeeds /motor_off.

Korak 6: Posljednji korak:-) Testiranje i fino podešavanje

  1. Da biste bili sigurni, prije nego što spojite releje na DOL starter, morate prvo testirati uređaj na njegove START i STOP operacije. Omogućite hotspot na mobilnom uređaju s omogućenim internetom. Laptop koji ima razvojno okruženje povežite direktno na NodeMCU USB port sa drugim punjačem spojenim na TP4056 u isto vrijeme. Ako je uređaj uspješno povezan s internetom, trebali biste vidjeti 1 uređaj spojen na hotspot na pametnom telefonu.
  2. Na drugom pametnom telefonu na kojem ste instalirali MQTT Dash otvorite nadzornu ploču aplikacije. Trebali biste vidjeti da je ikona NET u zelenoj boji i ikona mreže u zelenoj boji sa vrijednostima kao 1. Ikona motora bi se trebala prikazati kao motor isključen s vrijednošću 0.
  3. Dok kliknete na gumb Motor ON, relej za pokretanje trebao bi ispustiti dva zvuka klika u razmaku od dvije sekunde. Slično je i dugme za isključivanje motora.
  4. Zbog sigurnosti sada isključite glavno napajanje DOL startera i spojite releje na DOL starter kao što je prikazano iznad u koraku 2. Uverite se da je motor isključen. Pritisnite dugme za resetovanje na NodeMCU. Iz izlaza serijskog monitora možete vidjeti debug naredbe koje ispisuju vrijednosti sa WC1700 senzora, deltu i izračunatu struju u zavojnici. S isključenim motorom i "#define WCS1700_CONST 15" maxCur bi trebao biti dosljedno manji od 2. Ako pokazuje više od 2, pokušajte s većim vrijednostima WCS1700_CONST. Svaki put ćete morati ponovno kompajlirati kôd i učitati firmver.
  5. Sada uključite motor i ponovo potražite trenutna očitanja. Ostavite motor uključen oko 10 -15 minuta i zabilježite stabilno očitanje struje. Struja može varirati otprilike od 10 do 20 ampera i ne mora biti točna.
  6. Vratite se na kôd i postavite "#define MIN_CURRENT X. Gdje je X 40 posto maksimalne struje aproksimirane na numeričku vrijednost. U mom slučaju postavio sam MIN_CURRENT na 5. Kompajlirajte i ponovo učitajte firmver na NodeMCU.
  7. Uklonite USB kabel iz NodeMCU -a. ISKLJUČITE i UKLJUČITE uređaj sa USB punjačem spojenim na TP4056. Klikom na gumb za uključivanje motora na mobilnoj aplikaciji motor bi se trebao pokrenuti. Nakon što je motor uključen, status motora bi se trebao prikazati na nadzornoj ploči aplikacije kao UKLJUČEN. Klikom na dugme za zaustavljanje motor bi se trebao zaustaviti.

Uživajte !!!!

Preporučuje se: