Circuitul controlerului motorului pompei GSM folosind Arduino

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





În acest post vom construi un circuit de control al motorului pompei GSM prietenos cu fermierii care ar putea
porniți și opriți sistemul de irigare de la distanță de oriunde din lume prin SMS-uri de la telefonul mobil și vă întoarceți cu un mesaj de confirmare. Ideea a fost cerută de domnul PG Ragavandir.

Design-ul

Agricultura este una dintre cele mai mari industrii din India, care servește alimente pentru mai mult de un miliard de oameni în fiecare an. Producerea unei cantități mari de alimente nu este niciodată o sarcină ușoară. Irigarea este unul dintre factori.



Cea mai mare parte a câmpului agricol al agriculturii este situat departe de reședința lor, doar pornirea pompei de apă costă enorm pentru transportul lor pe an.

India este cunoscută pentru abilitățile IT și programele spațiale și a ajuns la Marte mai puțin decât costul filmului „Gravity”, ceea ce înseamnă marele potențial dintre ingineri și oameni de știință. Dar abilitățile nu sunt distribuite uniform în diferite domenii, agricultura este unul dintre domeniile în care dezvoltarea tehnologică este lentă.



Acest controler cu motor GSM bazat pe SMS face un pas spre bebeluș dezvoltarea agricolă , acest lucru nu poate fi un proiect revoluționar, dar poate aduce încântare în rândul agricultorilor.

Să ne scufundăm în partea tehnică a proiectului.

Proiectul este conceput cu componente hardware minime, astfel încât un începător să îl poată realiza cu ușurință.
Circuitul este format din sursa de alimentare, care alimentează întreaga configurare.

Arduino este creierul proiectului care ia decizii și modemul GSM care trimite și primește SMS-uri text și comunică cu utilizatorul și releu care controlează motorul.

Cum functioneaza

Circuitul controlerului motorului pompei GSM folosind Arduino

Notă: Vă rugăm să utilizați cel puțin 10K rezistență la baza tranzistorului BC548, 330 Ohmi este prea scăzut.

transformatorul pas în jos 230VAC la 12VAC și redresorul de punte convertesc AC în curent continuu și curentul trece printr-un condensator electrolitic pentru a netezi alimentarea.

Un fix Regulator de tensiune 12V oferă putere arduino, modemului GSM și releu. Modem GSM este conectat la arduino la pinul # 0 și pinul # 1, care sunt RX și respectiv TX.

RX-ul GSM este conectat la TX-ul arduino și TX-ul GSM este conectat la RX-ul arduino. Dacă sunteți confuz, uitați-vă doar la diagrama de mai jos, conexiunea greșită nu va trimite sau primi SMS-uri.

ARDUINO TX ---------------------- Modem RX GSM
RX ---------------------- TX

Conexiunea masă la masă este stabilită și între modemul arduino și GSM.

Încercați să obțineți un conector de alimentare cu mufă masculină pentru GSM și arduino, dacă nu doar să lipiți firele direct de la sursa de alimentare la arduino și GSM, ceea ce ar putea crește mizeria din proiect.

Tranzistorul acționează releul și dioda protejează circuitul de vârfuri de înaltă tensiune în timp ce pornește / oprește releul.

Indicator cu LED arată starea releului. Dacă LED-ul luminează releul activat și dacă LED-ul este stins, releul este dezactivat.

Introduceți un SIM valid pe modemul GSM și încercați să profitați de ofertele oferite de furnizorul de rețea pentru SMS-uri, cum ar fi tăietoare de rate, care vor reduce cheltuielile pentru SMS-uri.

Codul programului:

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

NOTĂ 1: În timpul compilării programului, apare un avertisment, pe care îl puteți ignora. Programul este verificat și testat.

NOTĂ 2: Vă rugăm să eliminați conexiunea TX și RX din arduino în timp ce încărcați codul.

NOTĂ 3: Înlocuiți „xxxxxxxxxxxxx” cu numărul de telefon al destinatarului în 4 locuri din program.

NOTĂ 4: Vă rugăm să achiziționați un modem GSM fără buton de alimentare în modul în caz de întrerupere a alimentării, acesta nu se va conecta la rețeaua mobilă decât dacă apăsați manual butonul, deci evitați acest tip de modem GSM. Modemul GSM unul fără butonul de pornire se va bloca în rețeaua mobilă imediat după reținerea alimentării.

Prototipul autorului circuitului controlerului motorului pompei GSM:

Cum se utilizează configurarea de mai sus:

• Trimiteți / motorul pornit / SMS de pe telefonul mobil pentru a activa releul.

• Trimiteți / opriți motorul / SMS pentru a dezactiva releul.

• Trimitere / testare / SMS pentru testarea răspunsului din circuit.

Asigurați-vă că porniți comanda cu „/” și terminați cu „/”, altfel nu va accepta ca solicitare validă.

• / motorul pornit / va porni releul și va reveni cu un SMS de confirmare „Motor activat”.

• / motorul oprit / va opri releul și va reveni cu un SMS de confirmare „Motorul este dezactivat”.

• Dacă trimiteți / testați / va reveni cu un SMS de confirmare „Sistemul funcționează bine”.

• Mesajul de mai sus înseamnă că configurarea dvs. funcționează bine.

• Dacă nu vi se returnează nicio confirmare, puteți presupune că nu este precedată nicio acțiune asupra motorului și puteți rezolva problemele.

• După pornirea setării, așteptați 1 minut sistemul va trimite un SMS de confirmare „Sistemul este gata să accepte comenzi”. după ce primiți acest SMS, proiectul dvs. este gata de difuzare.

Comenzile de mai sus sunt dure și nu declanșează niciodată motorul în mod fals, configurarea nu va răspunde la alte SMS-uri decât cele recomandate mai sus.

Îmbunătățirea conceptului de mai sus

Acest circuit de aplicație pompă GSM de mai sus a atras mulți cititori și am primit o mulțime de întrebări și sugestii. Unul dintre cititorii avizi ai acestui site, Mr. Gandhi, a sugerat o îmbunătățire bună a designului anterior.

Confirmare prin SMS când motorul este de fapt pornit

Îmbunătățirea se referă la confirmarea de revenire, unde utilizatorul va primi un răspuns SMS în telefonul său mobil de la GSM sistem de control al pompei când un utilizator trimite un comentariu SMS valid.

Proiectul existent trimite utilizatorului un SMS de confirmare independent de starea reală a releului, adică ON / OFF.

Noua modificare de proiectare sugerată de domnul Gandhi verifică starea releului dacă acesta este sau nu schimbat fizic.

Schimbarea conform acestei noi ape GSM proiectarea controlerului pompei poate fi implementat la designul anterior fără prea multe probleme prin adăugarea unui sistem de feedback așa cum se arată în schemă și încărcarea noului cod.

Diagrama circuitului:

Când trimitem comanda SMS „/ MOTOR ON /” pinul # 9 se ridică și declanșează releul ON. Dacă releul conectează pinii comuni și N / O, pompa pornește și pornește și transformatorul, care va da +5 la ieșire.

Semnalul + 5V este alimentat la pinul 7, care va confirma și va reveni cu o confirmare „Motor activat”.

Când trimitem „/ MOTOR OFF /” pinul # 9 se transformă în LOW și releul deconectează pinii comuni și N / O, aceasta va opri pompa, precum și transformatorul conectat. Ieșirea la pinul 7 devine LOW și revine cu o confirmare „Motor dezactivat”.

Dacă nu există confirmare SMS-urile sunt primite în telefonul dvs. mobil , putem confirma că nu s-a întreprins nicio acțiune și că pompa se află la ultima stare solicitată, puteți merge la site și depanați sau nu primiți confirmare întreruptă din cauza curentului electric.

Codul programului:

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

Implementarea de mai sus nu este practic testată, dar autorul este sigur la sută că ideea de mai sus va funcționa. Dacă cititorii au găsit probleme cu îmbunătățirea de mai sus, pot exprima prin secțiunea de comentarii

Lista de materiale

1) Transformatorul scade 12-0V
2) Diodele IN4007 x5
3) LM7812 x1
4) Releu 12V x1
5) BC548 Tranzistor x1
6) Condensator electrolitic 1000uF x1
7) Modul GSM: modelul SIM 800 sau SIM 900
8) Rezistor de 330 Ohm x2
9) LED ROSU / VERDE x1
10) Arduino Uno sau Arduino nano sau Arduino Mega
11) Mufă DC x2

Clip video:

Integrarea cu 3 motoare de fază

Am primit multe solicitări de actualizare a stadiului de releu pentru designul de mai sus, astfel încât să devină compatibil pentru operarea motoarelor trifazate folosind comenzi GSM pentru telefonul mobil.

Prin urmare, am decis să proiectez circuitul necesar, care va fi in speranta să poți porni și opri un anumit motor trifazat având mecanismul tipic de contactor de pornire și oprire.

Următoarea figură arată cum se configurează proiectarea utilizând un circuit IC 4017.

Telefon mobil la distanță cu controler motor 3 faze GSM

NOTĂ: Valorile 100uF / 10K și 220uF și 47K pot necesita unele ajustări pentru a asigura cantitatea corectă de întârziere pentru tranzistoarele și etapele releului respective.




Precedent: Circuit de securitate al indicatorului de poziție intrus Următorul: Circuit de control al intensității lămpii solare controlate de la distanță