Indholdsfortegnelse:

IOT -baseret DOL -starterkontroller til kunstvandingspumpesæt: 6 trin
IOT -baseret DOL -starterkontroller til kunstvandingspumpesæt: 6 trin

Video: IOT -baseret DOL -starterkontroller til kunstvandingspumpesæt: 6 trin

Video: IOT -baseret DOL -starterkontroller til kunstvandingspumpesæt: 6 trin
Video: Internet of Things Security | Ken Munro | TEDxDornbirn 2024, November
Anonim
IOT -baseret DOL -startkontroller til kunstvandingspumpesæt
IOT -baseret DOL -startkontroller til kunstvandingspumpesæt
IOT -baseret DOL -startkontroller til kunstvandingspumpesæt
IOT -baseret DOL -startkontroller til kunstvandingspumpesæt

Hej venner

Denne instruktive handler om, hvordan man fjernovervåger og styrer en vandingspumpe, der er sat over internettet.

Historie: I min gård får jeg kun strøm fra det lokale net i cirka 6 timer om dagen. Tidspunkter er ikke regelmæssige, tilgængelighed af strøm kan være tidligt om morgenen eller sent om aftenen eller endda midnat. Hver gang jeg gik til boringsbrønden for at kontrollere strømtilgængeligheden, var start eller stop af motoren en meget smertefuld proces. Jeg var også nødt til at sikre, at motoren kører mindst 2-3 timer hver dag for at levere tilstrækkeligt vand til drypsystemet. Ganske lang tid undersøgte jeg muligheder for at løse dette problem ved at betjene motoren eksternt og også kende status. Der findes enheder på markedet, der starter motoren, så snart der er strømforsyning, men de har ikke funktionen til at stoppe motoren, når vi vil. Og der er heller ingen måde at kende status for motoren TIL/FRA på noget tidspunkt. Dette fører normalt til overvanding, hvilket fører til tab af jordens frugtbarhed og også spild af elektricitet. Endelig byggede jeg selv en løsning, hvor jeg kan starte og stoppe motoren eksternt fra mobil/tablet/pc når som helst hvor som helst… !!. Jeg kan også overvåge tilgængeligheden af strømforsyning fra bæltet samt motorstatus (ON/OFF) hele tiden. Håber det vil hjælpe gårdejere på landet til at styre deres kunstvandingssystemer uden at skulle gå til startstedet hele tiden.

Forbrugsvarer

Forudsætninger:

Den placering, hvor du vil installere denne enhed, skal have internet tilgængelighed (bredbånd med wifi/mobilt internet)

Ting du har brug for:

  1. NodeMCU /ESP12
  2. To -kanals relæ
  3. WCS1700 - Strømføler
  4. TP4056 batteriopladningsmodul
  5. LD313, kondensator - 1000uF Register - To registre på 5k ohm
  6. Enhver (gammel) smartphone med hotspot /internet.

Hvordan det virker:

Det er en simpel skybaseret IOT -løsning ved hjælp af NodeMCU/ESP12 og fjern MQTT -mægler. NodeMCU fungerer som en IOT -gateway, styrer også DOL -starteren. Det opretter forbindelse til fjern MQTT -mægler over internettet. En app, der kører på en Android -mobil, opretter forbindelse til mægleren, hvorigennem vi hele tiden kan overvåge og kontrollere vores vandingspumpesæt. Jeg brugte gratis tilgængelig MQTT -mægler fra Adafruit IO. Der er mange gratis mæglere tilgængelige som myg, cloudmqtt osv. Du kan vælge enhver mægler, forudsat at du ændrer serveren og portnummeret i koden. NodeMCU opretter forbindelse til internettet ved hjælp af WiFi fra det mobile hotspot. Yon kan bruge enhver gammel eller billig mobil til at levere wifi -adgang via hotspot eller andre midler til at levere internet via wifi. Mobilen skal tilsluttes opladeren, som den skal være på 24X7.

NodeMCU er forbundet med to relæer til at styre start og stop af motoren. For at mærke strømmen i motoren brugte jeg WCS1700 strømføler. Den analoge udgang fra sensoren bruges til at vide, at motoren er tændt eller slukket. Det registrerer også strømtilgængeligheden fra nettet og udgiver det til mægleren, så vi når som helst kan kende netstatus. Enheden abonnerer på to feeds for at modtage anmodningen om motor ON og motor OFF. Ved at sende specifikke værdier til disse feeds kan vi styre motoren til START eller STOP.

Endelig installerede jeg MQTT Dash -appen på min Android -telefon og konfigurerede den til at oprette forbindelse til MQTT -mægleren og bruge feeds på dens dashboard/gui. App'en har meget gode ikoner med knapper, måler, switch osv. For at skabe attraktivt dashboard. Du kan dog bruge enhver IOT hjemmeautomatisering mobilapp, der understøtter mqtt -protokol.

Sådan fungerer WCS1700:

WCS1700 er dybest set en Hall -effektføler, der vil producere udgangsspænding, der er proportionel med det magnetiske felt, der skabes, når strømmen strømmer gennem spolen. Spolen her er en strømforsyningsledning, der tilsluttes motoren. Det kan måle vekselstrøm op til 70 ampere. Driftsspænding er mellem 3,3 og 12 V. Se dets datablad for flere detaljer. Da jeg bruger ESP12, brugte jeg den samme strømforsyning på 3,3V som driftsspænding til WCS1700. Som angivet i databladet ved 3,3 V skal enheden producere en differentialspænding på ca. 32 til 38 mV pr. Amp strøm gennem spolen. Men det kan variere baseret på spolestørrelse / luftgab og variationer i enheden. Derfor måtte jeg kalibrere det ved at teste det med Ampere Meter. Jeg er ikke tilfreds med enhedens nøjagtighed, men den er god nok til at beslutte om motorens status som ON/OFF. Udgangsstiften på WCS1700 forbindes til A0 på ESP12. Når der ikke er nogen strøm, skal ESP12 læse værdien omkring 556. Da strømforøgelsen i spolen kan spændingen meget på begge sider baseret på, hvordan kablet passerer gennem sensoren. I koden tog jeg forskellen mellem værdierne som absolut værdi af (x - 556). Ved at dividere resultatet med 15 fik jeg omtrentlig strøm, der strømmer gennem sensoren. Du bliver nødt til at eksperimentere med dette for at få det rigtige nummer til dig. Enhver strømmåling foretaget af enheden over 5 ampere betragtes som motor TIL og under 5 ampere, da motoren er slukket. Du kan bruge det rigtige nummer til din enhed ved at eksperimentere. Du skal ændre WCS1700_CONST og MIN_CURRENT i koden i overensstemmelse hermed.

Trin 1: Enhedskonstruktion

Enhedskonstruktion
Enhedskonstruktion
Enhedskonstruktion
Enhedskonstruktion

Diagrammet ovenfor giver en fuldstændig detaljer om, hvordan du kabler alle komponenterne.

Strømforsyning: Jeg brugte TP4056 til at oplade batterierne og LM313 til at regulere 3,7V - 4,2V batteriudgang til 3,3 V for at drive NodeMCU. Brugte 1000mF kondensator mellem Vin og jorden til LM313 for at få en stabil forsyning på 3,3V. Du kan bruge almindelig USB -mobillader til at drive TP4056. Det har batteribeskyttelseskredsløb for at beskytte batteriet mod overopladning.

Gitter Strømforsyningsregistrering: 5k ohm spændingsdeleren reducerer 5 V til 2,5 V. Pin D5 på NodeMCU registrerer spændingen.

Udgangsstiften på WCS1700 er forbundet til A0 for at aflæse den analoge spænding fra sensoren. Strømnettet skal passere gennem hullet for at måle strømmen. Jeg brugte 0.01 uF kondensator få den stabile læseform WCS1700.

D1 og D2 på NodeMCU skal tilsluttes IN0 og IN1 på relæindgangsstifterne.

Trin 2: DOL Starter Connections

DOL starterforbindelser
DOL starterforbindelser
DOL starterforbindelser
DOL starterforbindelser

Jeg justerede kontrolkredsløbet til DOL -starteren for at introducere et andet sæt START- og STOP -switch. Denne ændring påvirker ikke den manuelle start/stop -drift, og de fortsætter med at fungere som de er.

Advarsel !!!! Da DOL -starter er en højspændingsenhed, skal du sikre, at hovedafbryderen er slukket, før kassen åbnes. Direkte kontakt med strømførende ledning kan være farlig. Hvis du ikke er sikker, skal du kontakte en elektriker til at oprette forbindelserne

Jeg brugte 2 kanal 5 V relæmodul som START og STOP switch. Disse relæer styres af ESP12.

Relæ - 0 fungerer som START -switch - kablet som NO (normalt åbent).

Relæ -1 fungerer som STOP -switch - kablet som NC (normalt lukket). Starteren vil allerede have en ledning, der forbinder fra topkontaktor til NVC. Du bliver nødt til at fjerne det og erstatte med relæ -1 -ledninger som vist.

Sørg for, at forbindelserne mellem starteren og relæmodulerne er fuldstændigt isolerede af hensyn til sikkerheden. Jeg programmerede ESP til at holde begge relæer i 2 sekunder for at efterligne tryk på START/STOP -knappen.

Trin 3: Opret en konto med Adafruit IO (io.adafruit.com)

Jeg brugte Adafruit io mqtt -mægler, som er gratis at bruge med få begrænsninger, men det er OK til vores brug. Jeg foretrækker dette, fordi jeg også brugte det i andre projekter og fandt ret pålidelig og også har mange andre funktioner som Dashboard med flot GUI, og selv vi kan bruge udløsere. For at bruge Adafruit io skal du oprette en konto og notere brugernavnet og den aktive nøgle.

Trin 4: Byg og installer softwaren

Komplet kode er tilgængelig i skitsen. Du skal åbne dette i Arduino IDE og foretage få ændringer, før du kompilerer og uploader firmwaren. Vælg korttypen som NodeMCU 1.0. Installation af IDE og relaterede biblioteker er ikke omfattet af denne dokumentation.

Rediger følgende linjer i koden som brikker.

#define WLAN_SSID "xxx" // Dit mobile hotspot WiFi SSID

#define WLAN_PASS "……" //

/************************ Adafruit.io Setup ********************* **************/

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883 // brug 8883 til SSL

#define AIO_USERNAME "xyz" // Dit adafruit -brugernavn

#define AIO_KEY "abcd ……" // din aktive nøgle …

Om MQTT -feeds: Enheden og klienten (mobilapp) udveksler oplysninger via meddelelsesfeeds ved hjælp af pub -sub -model via MQTT -mægler. Enhver klient eller enhed for at modtage en besked, skal den abonnere på et foruddefineret feed og bruge publiceringsmetoden til at sende en besked til et feed. Til vores projekt kræver vi cirka 5 feeds. Nedenfor er forklaringen på hvert feed, som du ser i koden, og hvordan de fungerer.

Gitterstatus: Tilgængelighed af strømforsyning fra nettet er offentliggjort på feedet /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/feeds/grid");

0 angiver, at strømforsyning ikke er tilgængelig, og 1 for strømforsyning er tilgængelig.

Motorstatus: Enheden vil offentliggøre motorens status på feedet …/feeds/grid.

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

Værdi 0 for OFF og 1 for ON

Motor ON -knap: Denne feed bruges til at modtage motorstartanmodningen. Enheden abonnerer på, at feedet kan modtage motorstartanmodning med værdi = 1 og bruge det samme feed til at offentliggøre bekræftelsesmeddelelse som 0. På den måde kan vi bekræfte, at startanmodningsmeddelelsen faktisk blev modtaget af enheden.

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

Motor OFF -knap:

Ligesom Start -anmodning bruges dette feed til at modtage motorstopanmodningen. Enheden abonnerer på, at feedet modtager stopanmodningen med værdi = 1 og bruger det samme feed til at offentliggøre en bekræftelsesmeddelelse som 0.

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

Forbindelse:

Dette er et særligt feed med indstillingen "sidste vilje" aktiveret. Når enheden fungerer fint med hvert fast interval, vil den offentliggøre forbindelse = 1 for at fortælle brugeren, at alt er i orden. Hvis systemet gik i stykker, eller forbindelsen blev afbrudt, vil enheden ikke kunne kommunikere med mægleren. I sådanne tilfælde vil MQTT -mægleren selv udgive til feedet som forbindelse = 0 for at lade brugeren vide, at noget gik galt, og enheden ikke kan nås via internettet. Vi skal fysisk gå og kontrollere enheden. Koden er meget enkel. Se MQTT -dokumentationen for flere detaljer om, hvordan "Last Will" fungerer.

hvis (itr <= 0)

{

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

itr = CON_LIVE_ITR;

}

Resten af koden er selvforklarende og kræver ingen ændringer. Kommenter gerne, hvis du har brug for mere information.

Trin 5: Installer og konfigurer MQTT Dash APP på din mobil

Installer og konfigurer MQTT Dash APP på din mobil
Installer og konfigurer MQTT Dash APP på din mobil
Installer og konfigurer MQTT Dash APP på din mobil
Installer og konfigurer MQTT Dash APP på din mobil
Installer og konfigurer MQTT Dash APP på din mobil
Installer og konfigurer MQTT Dash APP på din mobil
  1. Installer MQTT Dash på din Android -telefon, og åbn appen
  2. Klik på ikonet + i øverste højre hjørne for at tilføje en enhed.
  3. Som vist på det første billede ovenfor skal du give et navn et navn til din enhed og sige "MyFarm-IPSet". Adressefelt som io.adafruit.com og port som 1883, brugernavn skal være dit adafruit brugernavn og adgangskode skal være din aktive nøgle fra adafruit. Lad resten af felterne være som de er. Klik til sidst på Gem.
  4. Du fik din enhed oprettet. Klik nu på det for at tilføje instrumentbrættet til det.
  5. Klik på + og vælg type som switch/knap. Som vist ovenfor skal du indtaste sys i navnefeltet. og indtast feednavnet i emnefeltet. hvert feed skal starte med brugernavn/feeds/. for dette vi /feeds /forbindelse. Sørg for, at Aktiver udgivelse er deaktiveret. Ved at klikke på ikonet for at vise kan du vælge den type ikon, du vil have på instrumentbrættet, der skal se ud. For værdi 1 skal du vælge en af farverne (f.eks. Grøn) og for værdi 0 vælge farve som grå eller rød. Klik til sidst på gem i øverste højre hjørne. På samme måde skal du oprette yderligere to ikoner, et til Gitter med brugernavn/feeds/gitter som emne og Motor med brugernavn/feeds/motor. Sørg for, at Aktiver publicering er deaktiveret.
  6. Til sidst skal du oprette Motor ON -knappen. Det er igen den samme type som switch/knap. Emnet skal være /feeds /motor_on og sikre, at Enable Publish er aktiveret denne gang og QOS = 1. På samme måde kan du oprette en anden knap til Motor OFF. Emnet skal være /feeeds /motor_off.

Trin 6: Sidste trin:-) Testning og finjustering

  1. For at være sikker skal du først teste enheden for dens START- og STOP -operationer, før relæerne tilsluttes DOL -starter. Aktiver hotspot på mobilen med internet aktiveret. Tilslut den bærbare computer, der har udviklingsmiljø, direkte til NodeMCU USB -port med en anden oplader forbundet til TP4056 på samme tid. Hvis enheden er forbundet med internettet, skal du se 1 enhed forbundet til hotspot på smartphonen.
  2. Åbn appens instrumentbræt på den anden smartphone, hvor du har installeret MQTT Dash. Du skal se, at NET -ikonet i grønt og gitterikonet også er grønt med deres værdier som 1. Motorikonet skal vises som motor slukket med værdien som 0.
  3. Når du klikker på knappen Motor ON, skal startrelæet lave to kliklyde med et interval på to sekunder. Tilsvarende også motoren OFF -knappen.
  4. Af hensyn til sikkerheden skal du nu slukke for hovedforsyningen til DOL-starter og tilslutte relæerne til DOL-starter som vist ovenfor trin-2. Sørg for, at motoren er slukket. Tryk på nulstillingsknappen på NodeMCU. Fra den serielle monitorudgang kan du se fejlretningssætninger, der udskriver værdier fra WC1700 -sensor, delta og den beregnede strøm i spolen. Med motoren i slukket tilstand og "#define WCS1700_CONST 15" bør maxCur være mindre end 2 konsekvent. Hvis det viser større end 2, så prøv med højere værdier af WCS1700_CONST. Hver gang skal du kompilere koden igen og indlæse firmwaren.
  5. Tænd nu motoren, og kig efter de aktuelle aflæsninger igen. Lad motoren være tændt i ca. 10 -15 minutter, og noter den stabile strømaflæsning. Strømmen kan variere mellem 10 og 20 ampere groft og behøver ikke at være præcis.
  6. Gå tilbage til koden og indstil "#define MIN_CURRENT X. Hvor X er 40 procent af maks. Strøm tilnærmet til numerisk værdi. I mit tilfælde satte jeg MIN_CURRENT til 5. Kompilér og genindlæs firmwaren til NodeMCU igen.
  7. Fjern USB -kablet fra NodeMCU. Sluk og tænd enheden med USB -oplader tilsluttet TP4056. Hvis du klikker på knappen Motor ON i mobilappen, skal motoren starte. Når motoren er tændt, skal motorens status reflektere på appens dashboard som ON. Hvis du klikker på stopknappen, skal motoren standses.

God fornøjelse !!!!

Anbefalede: