GSM Pump Motor Controller Circuit med Arduino

Prova Vårt Instrument För Att Eliminera Problem





I det här inlägget ska vi konstruera en jordbrukarvänlig GSM-pumpmotorstyrkrets som skulle kunna
slå på och stänga av bevattningssystemet från var som helst i världen via SMS via mobiltelefon och returnera dig med ett bekräftelsemeddelande. Idén begärdes av PG Ragavandir.

Designen

Jordbruk är en av de största industrier i Indien som serverar mat för mer än en miljard människor varje år. Att producera stora mängder mat är aldrig en lätt uppgift. Bevattning är en av faktorerna.



De flesta av jordbrukarens grödor ligger långt ifrån deras bostad. Att bara sätta på vattenpumpen kostar enormt för deras transport per år.

Indien är känt för IT-färdigheter och rymdprogram och nådde mars mindre än kostnaden för filmen 'Gravity', detta betyder den stora potentialen bland ingenjörer och forskare. Men kunskaperna är inte enhetligt fördelade över olika områden jordbruket är ett av de områden där den tekniska utvecklingen går långsamt.



Denna SMS-baserade GSM-pumpmotorstyrning tar ett babysteg mot jordbruksutveckling , detta kanske inte är ett revolutionerande projekt, men det kan ge glädje bland jordbrukare.

Låt oss dyka in i den tekniska delen av projektet.

Projektet är utformat med minimala hårdvarukomponenter så att en nybörjare enkelt kan utföra det.
Kretsen består av strömförsörjning, som driver hela installationen.

Arduino är hjärnan i projektet som tar beslut och GSM-modem som skickar och tar emot SMS och kommunicerar med användaren och reläet som styr motorn.

Hur det fungerar

GSM Pump Motor Controller Circuit med Arduino

Obs! Använd minst 10K-motstånd vid basen av BC548-transistorn, 330 ohm är för låg.

De transformator steg ner 230VAC till 12VAC och brygglikriktare omvandlar växelström till likström och strömmen passerar genom en elektrolytkondensator för att jämna ut strömförsörjningen.

En fast 12V spänningsregulator ger kraft till arduino, GSM-modem och relä. De GSM-modem är ansluten till arduino vid stift nr 0 och stift nr 1, vilka är RX respektive TX.

RX av GSM är ansluten till TX av arduino och TX av GSM är ansluten till RX av arduino. Om du är förvirrad, titta bara på nedanstående diagram, felanslutning kommer inte att skicka eller ta emot SMS.

ARDUINO TX ---------------------- RX GSM-modem
RX ---------------------- TX

Jord-till-jord-anslutning upprättas också mellan arduino och GSM-modem.

Försök att få en manuell jack-strömkontakt för GSM och arduino, om inte bara löd ledningarna direkt från strömförsörjningen till arduino och GSM, vilket kan öka röran i projektet.

Transistorn driver reläet och dioden skyddar kretsen från högspänningspinnar medan reläet slås PÅ / AV.

De LED-indikator visar reläets status. Om lysdioden lyser är reläet aktiverat och om lysdioden är släckt är reläet avaktiverat.

Sätt in ett giltigt SIM-kort på GSM-modemet och försök att dra nytta av de erbjudanden som nätverksleverantören använder för SMS, t.ex. taktsänkare, vilket minskar SMS-kostnaderna.

Programkod:

//----------------Program developed by R.Girish------------//
int LED = 8
int motor = 9
int temp=0
int i=0
char str[15]
void setup()
{
Serial.begin(9600)
pinMode(motor,OUTPUT)
pinMode(LED,OUTPUT)
digitalWrite(motor,LOW)
digitalWrite(LED,LOW)
delay(20000)
delay(20000)
delay(20000)
Serial.println('AT+CNMI=2,2,0,0,0')
delay(1000)
Serial.println('AT+CMGF=1')
delay(500)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('System is ready to receive commands.')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
void loop()
{
if(temp==1)
{
check()
temp=0
i=0
delay(1000)
}
}
void serialEvent()
{
while(Serial.available())
{
if(Serial.find('/'))
{
delay(1000)
while (Serial.available())
{
char inChar=Serial.read()
str[i++]=inChar
if(inChar=='/')
{
temp=1
return
}
}
}
}
}
void check()
{
if(!(strncmp(str,'motor on',8)))
{
digitalWrite(motor,HIGH)
digitalWrite(LED,HIGH)
delay(1000)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('Motor Activated')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
else if(!(strncmp(str,'motor off',9)))
{
digitalWrite(motor,LOW)
digitalWrite(LED,LOW)
delay(1000)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('Motor deactivated')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
else if(!(strncmp(str,'test',4)))
{
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('The System is Working Fine.')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
}
//----------------Program developed by R.Girish------------//

OBS 1: När du kompilerar programmet visar det en varning som du kan ignorera den. Programmet verifieras och testas.

OBS 2: Ta bort TX- och RX-anslutning från arduino medan du laddar upp koden.

OBS 3: Byt ut “xxxxxxxxxxxxx” med mottagarens telefonnummer på fyra platser i programmet.

OBS 4: Köp ett GSM-modem utan strömbrytare i modulen i händelse av strömavbrott, det låses inte in i mobilnätet om du inte trycker manuellt på knappen, så undvik en sådan typ av GSM-modem. GSM-modemet ett utan strömknappen låses fast i mobilnätet direkt efter att strömmen har kvar.

Författarens prototyp för GSM Pump Motor Controller Circuit:

Så här använder du ovanstående inställning:

• Skicka / slå på / sms från din mobiltelefon för att aktivera reläet.

• Skicka / motor av / SMS för att avaktivera reläet.

• Skicka / testa / SMS för att testa svaret från kretsen.

Se till att du startar kommandot med ”/” och slutar med “/” annars accepterar det inte som giltig begäran.

• / motor på / slår på reläet och återgår med ett bekräftelsemeddelande ”Motor aktiverad.”

• / motor av / stänger av reläet och återgår med ett bekräftelsemeddelande ”Motor deaktiverad.”

• Om du skickar / testar / kommer det tillbaka med ett bekräftelsemeddelande 'Systemet fungerar bra.'

• Ovanstående meddelande betyder att din installation fungerar bra.

• Om ingen bekräftelse returneras till dig kan du anta att ingen åtgärd föregås av motorn och du kan felsöka problemen.

• Efter att ha startat installationen väntar du på 1 minut systemet skickar ett bekräftelsemeddelande ”Systemet är redo att acceptera kommandon.” när du har fått detta SMS är ditt projekt redo att visas.

Ovanstående kommandon är idiotsäkra och utlöser aldrig motorn falskt, installationen svarar inte på något annat SMS än ovan angivna beröm.

Förbättra ovanstående koncept

Denna ovanstående GSM-pumpapplikationskrets lockade många läsare och vi har fått massor av frågor och förslag. En av de ivriga läsarna på denna webbplats Mr.Gandhi föreslog en bra förbättring av den tidigare designen.

SMS-bekräftelse när motorn är faktiskt PÅ

Förbättringen handlar om återkänningsbekräftelse, där användaren får ett SMS-svar i sin mobiltelefon från GSM pumpstyrsystem när en användare skickar en giltig SMS-kommentar.

Den befintliga designen skickar ett kvitterings-SMS till användaren oberoende av reläets faktiska tillstånd, dvs PÅ / AV.

Den nya designändringen som föreslagits av Mr.Gandhi kontrollerar reläets tillstånd om reläet är fysiskt växlat till sitt tillstånd eller inte.

Förändringen enligt detta nya GSM-vatten pumpregulatorns design kan implementeras till den tidigare designen utan mycket krångel genom att lägga till ett återkopplingssystem som visas i schemat och ladda upp den nya koden.

Kretsschema:

När vi skickar SMS-kommandot '/ MOTOR ON /' går stift nr 9 högt och utlöser reläet PÅ. Om reläet ansluter gemensamma och N / O-stift startar pumpen och slår också på transformatorn vilket ger +5 vid utgången.

+ 5V-signalen matas till stift nr 7 som kommer att bekräfta och återvända med en bekräftelse 'Motor aktiverad'.

När vi skickar “/ MOTOR OFF /” blir stift nr 9 LÅG och reläet kopplar bort de gemensamma och N / O-stiften, detta stänger av pumpen såväl som den anslutna transformatorn. Utgången vid stift nr 7 går LÅG och återgår med bekräftelsen ”Motor deaktiverad”.

Om ingen bekräftelse SMS tas emot i din mobiltelefon , vi kan bekräfta att ingen åtgärd har vidtagits och att pumpen är i det senast begärda tillståndet. Du kan gå till webbplatsen och felsöka eller ingen bekräftelse mottas på grund av strömavbrott.

Programkod:

//----------------Program developed by R.Girish------------//
int motor = 8
int LED = 9
int temp=0
int i=0
int ack=7
char str[15]
void setup()
{
Serial.begin(9600)
pinMode(ack,INPUT)
pinMode(motor,OUTPUT)
pinMode(LED,OUTPUT)
digitalWrite(motor,LOW)
digitalWrite(LED,LOW)
delay(20000)
delay(20000)
delay(20000)
Serial.println('AT+CNMI=2,2,0,0,0')
delay(1000)
Serial.println('AT+CMGF=1')
delay(500)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('System is ready to receive commands.')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
void loop()
{
if(temp==1)
{
check()
temp=0
i=0
delay(1000)
}
}
void serialEvent()
{
while(Serial.available())
{
if(Serial.find('/'))
{
delay(1000)
while (Serial.available())
{
char inChar=Serial.read()
str[i++]=inChar
if(inChar=='/')
{
temp=1
return
}
}
}
}
}
void check()
{
if(!(strncmp(str,'motor on',8)))
{
digitalWrite(motor,HIGH)
delay(100)
if(digitalRead(ack)==1)
{
digitalWrite(LED,HIGH)
delay(1000)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('Motor Activated')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
}
else if(!(strncmp(str,'motor off',9)))
{
digitalWrite(motor,LOW)
delay(5000)
if(digitalRead(ack)==0)
{
digitalWrite(LED,LOW)
delay(1000)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('Motor deactivated')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
}
else if(!(strncmp(str,'test',4)))
{
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('The System is Working Fine.')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
}
//----------------Program developed by R.Girish------------//

Ovanstående implementering är inte praktiskt testad, men författaren är helt procent säker på att ovanstående idé kommer att fungera. Om läsare hittade några problem med ovanstående förbättring kan uttrycka genom kommentarsektionen.

Dellista

1) Transformator steg ner 12-0V
2) Dioder IN4007 x5
3) LM7812 x1
4) Relä 12V x1
5) BC548 Transistor x1
6) Elektrolytkondensator 1000uF x1
7) GSM-modul: SIM 800- eller SIM 900-modell
8) 330 Ohm Motstånd x2
9) LED RÖD / GRÖN x1
10) Arduino Uno eller Arduino nano eller Arduino Mega
11) DC-hankontakt x2

Videoklipp:

Integrering med tre fasmotorer

Jag har fått många förfrågningar om att uppgradera relästeget för ovanstående design så att det blir kompatibelt för drift av 3-fasmotorer med GSM-mobiltelefonkommandon.

Därför bestämde jag mig för att utforma den krets som krävs förhoppningsvis kunna slå på och stänga av en given 3-fas motor med den typiska start- och stoppkontaktormekanismen.

Följande bild visar hur man konfigurerar designen med en IC 4017-krets.

GSM 3-fas motorstyrd fjärr mobiltelefon

OBS! Värdena 100uF / 10K, 220uF och 47K kan behöva justeras för att säkerställa rätt fördröjning för respektive transistorer och relästeg.




Tidigare: Säkerhetskrets för inkräktarposition Nästa: Fjärrstyrd krets för solintensitetsintensitetskontroll