GSM Pump Motor Controller Circuit ved hjælp af Arduino

GSM Pump Motor Controller Circuit ved hjælp af Arduino

I dette indlæg skal vi konstruere et landbrugervenligt GSM-pumpe-motor-kredsløb, som kunne
tænde og slukke for vandingssystemet eksternt fra hvor som helst i verden via mobiltelefon-SMS og returnere dig med en bekræftelsesmeddelelse. Ideen blev anmodet om af Mr. PG Ragavandir.



Designet

Landbrug er en af ​​de største industrier i Indien, der serverer mad til mere end en milliard mennesker hvert år. At producere store mængder mad er aldrig en nem opgave, kunstvanding er en af ​​faktorer.

Det meste af landbrugerens afgrødefelt ligger langt fra deres bopæl, og det kun koster enormt at tænde vandpumpen for deres transport om året.





Indien er kendt for it-færdigheder og rumprogrammer og nåede mars mindre end prisen på filmen 'Gravity', dette betyder det store potentiale blandt ingeniører og forskere. Men færdighederne er ikke ensartet fordelt på forskellige områder landbrug er et af de områder, hvor den teknologiske udvikling er langsom.

Denne SMS-baserede GSM pumpe motor controller tager et baby skridt mod landbrugsudvikling , dette er måske ikke et revolutionerende projekt, men det kan give glæde blandt landbrugere.



Lad os dykke ned i den tekniske del af projektet.

Projektet er designet med minimale hardwarekomponenter, så en nybegynder let kan udføre det.
Kredsløbet består af strømforsyning, som driver hele opsætningen.

Arduino er hjernen i projektet, der tager beslutninger og GSM-modem, der sender og modtager SMS og kommunikerer med brugeren og relæet, der styrer motoren.

Hvordan det virker

GSM Pump Motor Controller Circuit ved hjælp af Arduino

Bemærk: Brug mindst 10K modstand i bunden af ​​BC548 transistoren, 330 ohm er for lav.

Det transformer ned 230VAC til 12VAC og bridge-ensretter konverterer AC til DC-strøm, og strømmen passerer gennem en elektrolytisk kondensator for at udjævne strømforsyningen.

En fast 12V spændingsregulator giver strøm til arduino, GSM-modem og relæ. Det GSM-modem er forbundet til arduino på pin nr. 0 og pin nr. 1, som er henholdsvis RX og TX.

RX af GSM er forbundet til TX af arduino og TX af GSM er forbundet til RX af arduino. Hvis du er forvirret, skal du bare se nedenstående diagram, forkert forbindelse sender eller modtager ikke SMS.

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

Jordforbindelse er også etableret mellem arduino og GSM-modem.

Prøv at få et strømstik til hanstik til GSM og arduino, hvis ikke bare lodde ledningerne direkte fra strømforsyningen til arduino og GSM, hvilket kan øge rodet i projektet.

Transistoren driver relæet, og dioden beskytter kredsløbet mod højspændingsspidser, mens relæet tændes / slukkes.

Det LED-indikator viser relæets status. Hvis LED'en lyser, er relæet aktiveret, og hvis LED'en er slukket, er relæet deaktiveret.

Indsæt et gyldigt SIM-kort på GSM-modemet, og prøv at drage fordel af de tilbud, som netværksudbyderen benytter til SMS, såsom takstkutter, hvilket reducerer udgifterne til SMS.

Programkode:

//----------------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------------//

BEMÆRK 1: Under kompilering af programmet viser det en advarsel, som du kan ignorere det. Programmet er verificeret og testet.

BEMÆRK 2: Fjern TX- og RX-forbindelse fra arduino, mens du uploader koden.

BEMÆRK 3: Udskift “xxxxxxxxxxxxx” med modtagerens telefonnummer fire steder i programmet.

BEMÆRK 4: Køb et GSM-modem uden tænd / sluk-knap i modulet i tilfælde af strømsvigt, det låses ikke ind i mobilnetværket, medmindre du manuelt trykker på knappen, så undgå en sådan type GSM-modemer. GSM-modemet uden tænd / sluk-knap låses fast i mobilnetværket direkte efter, at strømmen er bibeholdt.

Forfatterens prototype af GSM Pump Motor Controller Circuit:

Sådan bruges ovenstående opsætning:

• Send / motor til / SMS fra din mobiltelefon for at aktivere relæet.

• Send / motor slukket / SMS for at deaktivere relæet.

• Send / test / SMS til test af svaret fra kredsløbet.

Sørg for at starte kommandoen med ”/” og slutte med “/”, ellers accepteres den ikke som gyldig anmodning.

• / motor tændt / tænder relæet og vender tilbage med en bekræftelses-sms “Motoraktiveret.”

• / motor slukket / slukker relæet og vender tilbage med en bekræftelses-sms 'Motor deaktiveret.'

• Hvis du sender / tester / vender det tilbage med en bekræftelses-SMS “Systemet fungerer fint.”

• Ovenstående meddelelse betyder, at din opsætning fungerer fint.

• Hvis der ikke returneres nogen bekræftelse, kan du antage, at der ikke foregår nogen handling på motoren, og du kan muligvis foretage fejlfinding af problemerne.

• Når du har tændt installationen, skal du vente på 1 minut systemet sender en bekræftelses-SMS “Systemet er klar til at acceptere kommandoer.” Når du har modtaget denne SMS, er dit projekt klar til at blive vist.

Ovenstående kommandoer er dårlige og udløser aldrig motoren fejlagtigt, opsætningen svarer ikke på nogen anden sms end den ovenfor angivne ros.

Forbedring af ovenstående koncept

Dette ovenstående GSM-pumpeapplikationskredsløb tiltrak mange læsere, og vi har modtaget mange forespørgsler og forslag. En af de ivrige læsere af dette websted Mr.Gandhi foreslog en god forbedring af det tidligere design.

SMS-kvittering, når motoren faktisk er tændt

Forbedringen handler om tilbagekaldelsesbekræftelse, hvor brugeren modtager et SMS-svar i sin mobiltelefon fra GSM pumpestyringssystem når en bruger sender en gyldig SMS-kommentar.

Det eksisterende design sender en kvitterings-SMS til brugeren uafhængigt af relæets aktuelle tilstand, dvs. TIL / FRA.

Den nye designændring foreslået af Mr.Gandhi kontrollerer relæets tilstand, om relæet fysisk er skiftet til dets tilstand eller ej.

Ændringen i henhold til dette nye GSM-vand pumpestyringsdesign kan implementeres i det tidligere design uden meget besvær ved at tilføje et feedback-system som vist i skemaet og uploade den nye kode.

Kredsløbsdiagram:

Når vi sender SMS-kommandoen “/ MOTOR ON /”, går pin nr. 9 højt og udløser relæet ON. Hvis relæet forbinder fælles- og N / O-stifter, starter pumpen og tænder også for transformeren, hvilket giver +5 ved udgangen.

+ 5V signalet føres til pin nr. 7, som bekræfter og vender tilbage med en bekræftelse 'Motor aktiveret'.

Når vi sender “/ MOTOR OFF /”, bliver pin nr. 9 LAV, og relæet afbryder de fælles og N / O-benene, dette vil slukke for pumpen såvel som den tilsluttede transformer. Udgangen på pin nr. 7 går LAV og vender tilbage med en bekræftelse 'Motor deaktiveret'.

Hvis ingen anerkendelse SMS modtages i din mobiltelefon , vi kan bekræfte, at der ikke blev foretaget nogen handling, og at pumpen er i den sidst anmodede tilstand.

Programkode:

//----------------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------------//

Ovenstående implementering er ikke praktisk testet, men forfatteren er procent procent sikker på, at ovenstående idé vil fungere. Hvis læserne fandt problemer med ovenstående forbedring, kan de udtrykke gennem kommentarsektionen.

Deleliste

1) Transformer ned 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-model
8) 330 ohm modstand x2
9) LED RØD / GRØNN x1
10) Arduino Uno eller Arduino nano eller Arduino Mega
11) DC-hanstik x2

Videoklip:

Integrering med 3-fasemotorer

Jeg har modtaget mange anmodninger om at opgradere relæstadiet til ovenstående design, så det bliver kompatibelt til drift af 3-fasemotorer ved hjælp af GSM-mobiltelefonkommandoer.

Derfor besluttede jeg at designe det krævede kredsløb, som vil forhåbentlig være i stand til at tænde og slukke for en given 3-faset motor med den typiske start- og stopkontaktormekanisme.

Følgende figur viser, hvordan man konfigurerer designet ved hjælp af et IC 4017 kredsløb.

GSM 3-faset motor controller fjernbetjening mobiltelefon

BEMÆRK: 100uF / 10K- og 220uF- og 47K-værdierne kan have brug for nogle justeringer for at sikre den korrekte forsinkelse for de respektive transistorer og relæetrin.




Forrige: Indtrængerpositionsindikator Sikkerhedskredsløb Næste: Fjernstyret solpæreintensitetskontrolkredsløb