Innehållsförteckning:

IOT -baserad DOL -startkontroll för bevattningspumpset: 6 steg
IOT -baserad DOL -startkontroll för bevattningspumpset: 6 steg

Video: IOT -baserad DOL -startkontroll för bevattningspumpset: 6 steg

Video: IOT -baserad DOL -startkontroll för bevattningspumpset: 6 steg
Video: The Courteeners - You Overdid It Doll 2024, November
Anonim
IOT -baserad DOL -startkontroll för bevattningspumpset
IOT -baserad DOL -startkontroll för bevattningspumpset
IOT -baserad DOL -startkontroll för bevattningspumpset
IOT -baserad DOL -startkontroll för bevattningspumpset

Hej kompisar

Detta instruerbara handlar om hur man fjärrövervakar och styr en bevattningspump över internet.

Berättelse: På min gård får jag strömförsörjning från det lokala nätet bara i cirka 6 timmar om dagen. Tiderna är inte regelbundna, strömtillgången kan vara tidigt på morgonen eller sent på kvällarna eller till och med midnatt. Varje gång jag gick till borrhålsplatsen för att kontrollera strömtillgängligheten, startade eller stoppade motorn en mycket smärtsam process. Jag var också tvungen att se till att motorn går minst 2-3 timmar varje dag för att leverera tillräckligt med vatten för droppsystemet. Ganska länge undersökte jag alternativ för att lösa detta problem genom att fjärrstyra motorn och också veta statusen. Det finns enheter tillgängliga på marknaden som startar motorn så snart det finns en strömförsörjning, men de har inte funktionen att stoppa motorn när vi vill. Och det finns inget sätt att veta motorens status PÅ/AV vid någon tidpunkt. Detta leder vanligtvis till överbevattning, vilket leder till förlust av jordens bördighet och slöseri med el. Slutligen byggde jag själv en lösning där jag kan starta och stoppa motorn på distans från mobil/surfplatta/PC när som helst någonstans … !!. Jag kan också övervaka tillgängligheten av strömförsörjning från bältet samt motorstatus (ON/OFF) hela tiden. Hoppas att det kommer att hjälpa gårdens ägare på landet att hantera sina bevattningssystem utan att behöva gå till startplatsen hela tiden.

Tillbehör

Förkunskaper:

Platsen där du vill installera den här enheten måste ha tillgång till internet (bredband med wifi/mobilt internet)

Saker du behöver:

  1. NodeMCU /ESP12
  2. Två kanals relä
  3. WCS1700 - Strömgivare
  4. TP4056 batteriladdningsmodul
  5. LD313, kondensator - 1000uF Register - Två register på 5k ohm
  6. Varje (gammal) smartphone med hotspot /internet.

Hur det fungerar:

Det är en enkel molnbaserad IOT -lösning med NodeMCU/ESP12 och fjärrkontroll MQTT -mäklare. NodeMCU fungerar som en IOT -gateway, styr också DOL -startmotorn. Den ansluter till fjärrkontrollen MQTT över internet. En app som körs på en Android -mobil ansluter till mäklaren genom vilken vi hela tiden kan övervaka och styra vår bevattningspump. Jag använde gratis tillgänglig MQTT -mäklare från Adafruit IO. Det finns många gratis mäklare som mygg, cloudmqtt etc. Du kan välja vilken mäklare som helst förutsatt att du ändrar servern och portnumret i koden. NodeMCU ansluter till internet med hjälp av WiFi från mobil hotspot. Yon kan använda alla gamla eller billiga mobiler för att tillhandahålla wifi via hotspot eller andra sätt att tillhandahålla internet via wifi. Mobilen ska vara ansluten till laddaren som den ska vara på 24X7.

NodeMCU är anslutet till två reläer för att styra start och stopp av motorn. För att känna av strömmen i motorn använde jag WCS1700 strömgivare. Den analoga utgången från sensorn används för att veta att motorn är PÅ eller AV. Det känner också av strömtillgängligheten från nätet och publicerar det för mäklaren så att vi kan veta nätstatus när som helst. Enheten prenumererar på två flöden för att ta emot begäran om motor ON och motor OFF. Genom att skicka specifika värden till dessa flöden kan vi styra motorn till START eller STOPP.

Slutligen installerade jag MQTT Dash -appen på min Android -telefon och konfigurerade den för att ansluta till MQTT -mäklaren och använda flödena på instrumentpanelen/gui. Appen har mycket bra ikoner med knappar, mätare, switch etc för att skapa attraktiv instrumentpanel. Du kan dock använda vilken mobilapp för IOT hemautomatisering som helst som stöder mqtt -protokoll.

Så fungerar WCS1700:

WCS1700 är i grunden en Hall -effektsensor som kommer att producera utspänning i proportion till magnetfältet som skapas när strömmen strömmar genom spolen. Spolen här är en strömförsörjningsledning som kommer att anslutas till motorn. Den kan mäta växelström upp till 70 ampere. Driftspänning är mellan 3,3 och 12 V. Se databladet för mer information. Eftersom jag använder ESP12 använde jag samma strömförsörjning på 3,3V som driftspänning för WCS1700. Som anges i databladet vid 3,3 V bör enheten producera en differentialspänning på cirka 32 till 38 mV per amp ström genom spolen. Men det kan variera beroende på spolstorlek / luftgap och variationer i enheten. Därför var jag tvungen att kalibrera den genom att testa den med Ampere Meter. Jag är inte nöjd med enhetens noggrannhet men den är tillräckligt bra för att bestämma motorens status som PÅ/AV. Utgångsstiften på WCS1700 ansluts till A0 på ESP12. När det inte finns någon ström bör ESP12 avläsa värdet runt 556. Eftersom strömökningen i spolen kan spänningen mycket på båda sidor baserat på hur kabeln passerar genom sensorn. I koden tog jag skillnaden mellan värdena som absolut värde på (x - 556). Genom att dela resultatet med 15 fick jag ungefärlig ström som flödade genom sensorn. Du måste experimentera med detta för att få rätt nummer för dig. Varje strömmätning av enheten över 5 ampere anser jag som motor PÅ och under 5 amp då motor är i AV. Du kan använda rätt nummer för din enhet genom att experimentera. Du måste ändra WCS1700_CONST och MIN_CURRENT i koden i enlighet därmed.

Steg 1: Enhetskonstruktion

Enhetskonstruktion
Enhetskonstruktion
Enhetskonstruktion
Enhetskonstruktion

Diagrammet ovan ger en fullständig information om hur man kopplar alla komponenter.

Strömförsörjning: Jag använde TP4056 för att ladda batterierna och LM313 för att reglera 3,7V - 4,2V batterieffekt till 3,3 V för att driva NodeMCU. Använde 1000mF kondensator mellan Vin och marken på LM313 för att få en stabil leverans på 3,3V. Du kan använda vanlig USB -mobilladdare för att driva TP4056. Den har batteriskyddskrets för att skydda batteriet från överladdning.

Grid Strömförsörjningsavkänning: 5k ohm spänningsdelaren minskar 5 V till 2,5 V. Pin D5 på NodeMCU känner av spänningen.

Utgångsstiften på WCS1700 är ansluten till A0 för att läsa den analoga spänningen från sensorn. Grid Power -ledningen måste passera genom hålet för att mäta strömmen. Jag använde 0,01 uF kondensator för att få den stabila läsformen WCS1700.

D1 och D2 för NodeMCU ska anslutas till IN0 och IN1 på reläingångarna.

Steg 2: DOL -startanslutningar

DOL startanslutningar
DOL startanslutningar
DOL startanslutningar
DOL startanslutningar

Jag justerade styrkretsen för DOL -startaren för att introducera en annan uppsättning START- och STOPP -omkopplare. Denna ändring påverkar inte den manuella start/stopp -funktionen och de fortsätter att fungera som de är.

Varning !!!! Eftersom DOL -startmotorn är en högspänningsenhet, se till att huvudströmbrytaren är avstängd innan lådan öppnas. Direktkontakt med strömförande tråd kan vara farlig. Om du inte är säker, ta hjälp av elektriker för att göra anslutningarna

Jag använde 2 kanals 5 V relämodul som START- och STOPP -omkopplare. Dessa reläer kommer att styras av ESP12.

Relä - 0 fungerar som START -omkopplare - anslutet som NO (normalt öppet).

Relä -1 fungerar som STOP -switch - ansluten som NC (normalt stängd). Startmotorn kommer redan att ha en kabel som ansluter från toppkontaktorn till NVC. Du måste ta bort den och ersätta den med relä -1 -trådar som visas.

Se till att anslutningarna mellan startmotorn och relämodulerna är helt isolerade för säkerheten. Jag programmerade ESP för att hålla båda reläer i 2 sekunder för att efterlikna START/STOP -knappen.

Steg 3: Skapa ett konto med Adafruit IO (io.adafruit.com)

Jag använde Adafruit io mqtt mäklare som är gratis att använda med få begränsningar men det är OK för vår användning. Jag föredrar detta eftersom jag också använde det i andra projekt och tyckte att det var ganska tillförlitligt och också har många andra funktioner som Dashboard med snyggt GUI och även vi kan använda triggers. För att använda Adafruit io måste du skapa ett konto och notera användarnamn och aktiv nyckel.

Steg 4: Bygg och installera programvaran

Komplett kod finns i skissen. Du måste öppna detta i Arduino IDE och göra några ändringar innan du kompilerar och laddar upp firmware. Välj korttyp som NodeMCU 1.0. Installation av IDE och relaterade bibliotek omfattas inte av denna dokumentation.

Ändra följande rader i koden som följeslagare.

#define WLAN_SSID "xxx" // Din mobila hotspot WiFi SSID

#define WLAN_PASS "……" //

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

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883 // använd 8883 för SSL

#define AIO_USERNAME "xyz" // Ditt användarnamn på ditt adafruit -konto

#define AIO_KEY "abcd ……" // din aktiva nyckel …

Om MQTT -flöden: Enheten och klienten (mobilappen) utbyter information genom meddelandeflöden med hjälp av pubundermodell via MQTT -mäklare. Varje klient eller enhet för att kunna ta emot ett meddelande, måste prenumerera på ett fördefinierat flöde och använda publiceringsmetod för att skicka ett meddelande till ett flöde. För vårt projekt kräver vi cirka 5 flöden. Nedan finns förklaringen på varje flöde som du ser i koden och hur de fungerar.

Nätstatus: Tillgång till strömförsörjning från nätet publiceras på flödet /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/feeds/grid");

0 anger att strömförsörjning inte är tillgänglig och 1 för strömförsörjning är tillgänglig.

Motorstatus: Enheten kommer att publicera motorens status på flödet …/flöden/rutnät.

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

Värdet 0 för OFF och 1 för ON

Motor ON -knapp: Denna matning används för att ta emot motorstartförfrågan. Enheten prenumererar på att flödet tar emot motorstartförfrågan med värde = 1 och använder samma flöde för att publicera bekräftelsemeddelande som 0. På så sätt kan vi bekräfta att startförfrågningsmeddelandet faktiskt mottogs av enheten.

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

Motor AV -knapp:

I likhet med Start -begäran används detta flöde för att ta emot motorstoppförfrågan. Enheten prenumererar på att flödet tar emot stoppbegäran med värde = 1 och använder samma flöde för att publicera ett bekräftelsemeddelande som 0.

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

Förbindelse:

Detta är ett specialflöde med alternativet "sista vilja" aktiverat. När enheten fungerar bra vid varje fast intervall publicerar den anslutning = 1 för att berätta för användaren att allt är bra. Om systemet gick sönder eller anslutningen tappas kommer enheten inte att kunna kommunicera med mäklaren. I sådana fall publicerar MQTT -mäklaren själv i flödet som anslutning = 0 för att låta användaren veta att något gick fel och enheten inte kan nås via internet. Vi måste gå fysiskt och kontrollera enheten. Koden är väldigt enkel. Se MQTT -dokumentationen för mer information om hur "Last Will" fungerar.

om (itr <= 0)

{

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

itr = CON_LIVE_ITR;

}

Resten av koden är självförklarande och inga ändringar krävs. Kommentera gärna om du behöver mer information.

Steg 5: Installera och konfigurera MQTT Dash APP på din mobil

Installera och konfigurera MQTT Dash APP på din mobil
Installera och konfigurera MQTT Dash APP på din mobil
Installera och konfigurera MQTT Dash APP på din mobil
Installera och konfigurera MQTT Dash APP på din mobil
Installera och konfigurera MQTT Dash APP på din mobil
Installera och konfigurera MQTT Dash APP på din mobil
  1. Installera MQTT Dash på din Android -telefon och öppna appen
  2. Klicka på + -ikonen i det övre högra hörnet för att lägga till en enhet.
  3. Som visas i den första bilden ovan, ge ditt namn något namn, säg "MyFarm-IPSet". Adressfält som io.adafruit.com och port som 1883, användarnamn bör vara ditt adafruit användarnamn och lösenord bör vara din aktiva nyckel från adafruit. Lämna resten av fälten som de är. Klicka till sist på spara.
  4. Du har skapat din enhet. Klicka nu på den för att lägga till instrumentpanelen till den.
  5. Klicka på + och välj typ som switch/knapp. Som visas ovan anger du sys i namnfältet. och ange flödesnamnet i ämnesfältet. varje flöde bör börja med användarnamn/feeds/. för detta vi /feeds /anslutning. Se till att Aktivera publicering är inaktiverad. Genom att klicka på ikonen för att visa kan du välja vilken typ av ikon du vill se ut på instrumentpanelen. För värde 1 välj en av färgerna (säg grön) och för värde 0 välj färg som grå eller röd. Slutligen klicka på spara i det övre högra hörnet. På samma sätt kan du skapa ytterligare två ikoner en för Grid med användarnamn/feeds/grid som ämne och Motor med användarnamn/feeds/motor. Se till att Aktivera publicering är inaktiverad.
  6. Slutligen skapa Motor ON -knappen. Det är igen samma typ som switch/knapp. Ämnet ska vara /feeds /motor_on och se till att Aktivera publicering är aktiverad den här gången och QOS = 1. På samma sätt kan du skapa en annan knapp för Motor OFF. Ämnet bör vara /feeeds /motor_off.

Steg 6: Sista steget:-) Testning och finjustering

  1. För att vara säker måste du först testa enheten för dess START- och STOP -funktioner innan reläerna ansluts till DOL -startmotorn. Aktivera hotspot på mobilen med internet aktiverat. Anslut den bärbara datorn med utvecklingsmiljö direkt till NodeMCU USB -port med en annan laddare ansluten till TP4056 samtidigt. Om enheten är ansluten till internet bör du se 1 enhet ansluten till hotspot på smarttelefonen.
  2. På den andra smarttelefonen där du har installerat MQTT Dash öppnar du appens instrumentpanel. Du bör se att NET -ikonen i grönt och rutnätikonen också är grön med sina värden som 1. Motorikonen ska visas som motor av med värde som 0.
  3. När du klickar på knappen Motor ON bör startreläet göra två klickljud med ett intervall på två sekunder. På samma sätt är knappen Motor OFF också.
  4. För säkerhets skull, stäng nu av huvudmatningen till DOL-startaren och anslut reläerna till DOL-startmotorn enligt steg 2. Se till att motorn är avstängd. Tryck på återställningsknappen på NodeMCU. Från seriell monitorutgång kan du se felsökningsuttalanden som skriver ut värden från WC1700 -sensor, delta och den beräknade strömmen i spolen. Med motorn i avstängt läge och "#define WCS1700_CONST 15" bör maxCur vara mindre än 2 konsekvent. Om det visar större än 2, försök med högre värden på WCS1700_CONST. Varje gång måste du kompilera om koden och ladda in firmware.
  5. Slå nu på motorn och leta efter de aktuella avläsningarna igen. Låt motorn vara på i cirka 10 -15 minuter och notera den stabila strömavläsningen. Strömmen kan variera mellan 10 till 20 ampere ungefär och behöver inte vara exakt.
  6. Gå tillbaka till koden och ställ in "#define MIN_CURRENT X. Där X är 40 procent av maxström ungefärlig till numeriskt värde. I mitt fall ställer jag in MIN_CURRENT till 5. Kompilera och ladda om firmware till NodeMCU igen.
  7. Ta bort USB -kabeln från NodeMCU. Slå AV och slå på enheten med en USB -laddare ansluten till TP4056. Om du klickar på knappen Motor ON i mobilappen bör motorn startas. När motorn väl är på ska motorns status reflektera på appens instrumentbräda som PÅ. Om du klickar på stoppknappen bör motorn stanna.

Njut av !!!!

Rekommenderad: