Obwód sterownika silnika pompy GSM wykorzystujący Arduino

Wypróbuj Nasz Instrument Do Eliminowania Problemów





W tym poście zamierzamy zbudować przyjazny dla rolników obwód sterownika silnika pompy GSM, który mógłby
włączać i wyłączać system nawadniania zdalnie z dowolnego miejsca na świecie za pomocą SMS-a przez telefon komórkowy i wysyłać Ci wiadomość z potwierdzeniem. Pomysł został zgłoszony przez pana PG Ragavandira.

Projektowanie

Rolnictwo to jedna z największych gałęzi przemysłu w Indiach, która co roku dostarcza żywność ponad miliardowi ludzi. Produkcja dużej ilości pożywienia nigdy nie jest łatwym zadaniem. Jednym z czynników jest nawadnianie.



Większość pól uprawnych rolnika znajduje się z dala od ich miejsca zamieszkania, samo włączenie pompy wodnej kosztuje ich transport w ciągu roku.

Indie są znane z umiejętności informatycznych i programów kosmicznych i osiągnęły mniej niż koszt filmu „Gravity”, co oznacza wielki potencjał inżynierów i naukowców. Ale umiejętności nie są równomiernie rozłożone w różnych dziedzinach. Rolnictwo jest jedną z dziedzin, w których rozwój technologiczny jest powolny.



Ten oparty na SMS-ie sterownik silnika pompy GSM robi mały krok w kierunku rozwój rolnictwa to może nie jest rewolucyjny projekt, ale może przynieść radość rolnikom.

Przejdźmy do technicznej części projektu.

Projekt jest zaprojektowany z minimalną liczbą komponentów sprzętowych, aby początkujący mógł go z łatwością wykonać.
Układ składa się z zasilacza, który zasila całość.

Arduino jest mózgiem projektu, który podejmuje decyzje i modem GSM, który wysyła i odbiera SMS-y oraz komunikuje się z użytkownikiem i przekaźnikiem sterującym silnikiem.

Jak to działa

Obwód sterownika silnika pompy GSM wykorzystujący Arduino

Uwaga: Proszę użyć rezystora co najmniej 10K na podstawie tranzystora BC548, 330 Ohm jest za niskie.

Plik obniżenie transformatora 230VAC na 12VAC i prostownik mostkowy konwertuje prąd zmienny na prąd stały, a prąd przepływa przez kondensator elektrolityczny, aby wygładzić zasilanie.

Stały Regulator napięcia 12V zasila arduino, modem GSM i przekaźnik. Plik Modem GSM jest podłączony do arduino na pinie # 0 i pinie # 1, które są odpowiednio RX i TX.

RX z GSM jest podłączony do TX z arduino, a TX z GSM jest podłączony do RX z arduino. Jeśli jesteś zdezorientowany, spójrz na poniższy schemat, błędne połączenie nie spowoduje wysłania ani odebrania wiadomości SMS.

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

Ustanowione jest również połączenie ziemia-ziemia między modemem arduino i GSM.

Spróbuj zdobyć męskie złącze zasilania jack dla GSM i arduino, jeśli nie tylko przylutuj przewody bezpośrednio z zasilacza do arduino i GSM, co może zwiększyć bałagan w projekcie.

Tranzystor steruje przekaźnikiem, a dioda chroni obwód przed skokami wysokiego napięcia podczas włączania / wyłączania przekaźnika.

Plik Wskaźnik ledowy pokazuje stan przekaźnika. Jeśli dioda LED świeci się, gdy przekaźnik jest włączony, a dioda nie świeci, przekaźnik jest dezaktywowany.

Włóż ważną kartę SIM do modemu GSM i spróbuj skorzystać z ofert SMS-ów, z których korzysta operator sieci, takich jak obniżanie stawek, co zmniejszy koszty SMS-ów.

Kod programu:

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

UWAGA 1: Podczas kompilacji program wyświetla ostrzeżenie, które możesz zignorować. Program jest zweryfikowany i przetestowany.

UWAGA 2: Proszę usunąć połączenie TX i RX z arduino podczas wgrywania kodu.

UWAGA 3: Zastąp „xxxxxxxxxxxxx” numerem telefonu odbiorcy w 4 miejscach w programie.

UWAGA 4: Prosimy o zakup modemu GSM bez przycisku zasilania w module, w przypadku awarii zasilania nie włączy się on do sieci komórkowej, chyba że ręcznie wciśniesz przycisk, więc unikaj tego typu modemów GSM. Modem GSM bez przycisk zasilania połączy się z siecią komórkową bezpośrednio po utrzymaniu zasilania.

Autorski prototyp obwodu sterownika silnika pompy GSM:

Jak korzystać z powyższej konfiguracji:

• Wyślij / włącz silnik / SMS z telefonu komórkowego, aby aktywować przekaźnik.

• Wyślij / wyłącz silnik / SMS, aby wyłączyć przekaźnik.

• Wyślij / test / SMS do testowania odpowiedzi z obwodu.

Upewnij się, że zaczynasz polecenie od „/” i kończysz na „/”, w przeciwnym razie nie zostanie ono zaakceptowane jako prawidłowe żądanie.

• / motor on / włączy przekaźnik i powróci z potwierdzeniem SMS „Motor Activated”.

• / silnik wyłączony / wyłączy przekaźnik i powróci z potwierdzeniem SMS „Silnik wyłączony”.

• Jeśli wyślesz / przetestujesz / otrzymasz wiadomość SMS z potwierdzeniem „System działa poprawnie”.

• Powyższy komunikat oznacza, że ​​konfiguracja działa poprawnie.

• Jeśli potwierdzenie nie zostanie zwrócone, możesz założyć, że żadne działanie nie jest poprzedzone przez silnik i możesz rozwiązać problemy.

• Po włączeniu konfiguracji poczekaj 1 minuta system wyśle ​​wiadomość SMS z potwierdzeniem „System jest gotowy do przyjmowania poleceń”. po otrzymaniu tego SMS-a Twój projekt jest gotowy do wyświetlenia.

Powyższe polecenia są niezawodne i nigdy nie uruchamiają silnika fałszywie, konfiguracja nie odpowie na żaden SMS inny niż powyższe polecenia.

Udoskonalenie powyższej koncepcji

Powyższy obwód aplikacji pompy GSM przyciągnął wielu czytelników i otrzymaliśmy mnóstwo zapytań i sugestii. Jeden z zapalonych czytelników tej witryny, pan Gandhi, zasugerował dobre ulepszenie wcześniejszego projektu.

Potwierdzenie SMS, gdy silnik jest rzeczywiście WŁĄCZONY

Ulepszenie polega na potwierdzaniu cofnięcia, w którym użytkownik otrzyma odpowiedź SMS na swój telefon komórkowy z GSM układ sterownika pompy gdy użytkownik wyśle ​​prawidłowy komentarz SMS.

Istniejący projekt wysyła wiadomość SMS z potwierdzeniem do użytkownika niezależnie od aktualnego stanu przekaźnika, tj. WŁ. / WYŁ.

Nowa zmiana konstrukcyjna zaproponowana przez pana Gandhiego sprawdza stan przekaźnika, czy przekaźnik jest fizycznie przełączany w swój stan, czy nie.

Zmiana jak na tę nową wodę GSM projekt sterownika pompy można bezproblemowo zaimplementować do poprzedniego projektu, dodając system sprzężenia zwrotnego, jak pokazano na schemacie, i przesyłając nowy kod.

Schemat obwodu:

Kiedy wysyłamy polecenie SMS „/ MOTOR ON /”, pin # 9 przechodzi w stan wysoki i włącza przekaźnik. Jeśli przekaźnik połączy styk wspólny i zwierny, pompa uruchomi się, a także włączy transformator, który da +5 na wyjściu.

Sygnał + 5V jest podawany na pin # 7, który potwierdzi i powróci z potwierdzeniem „Motor włączony”.

Kiedy wyślemy „/ MOTOR OFF /” pin # 9 zmieni stan na LOW i przekaźnik rozłączy piny wspólne i N / O, spowoduje to wyłączenie pompy i podłączonego transformatora. Wyjście na pinie nr 7 przechodzi w stan LOW i powraca z potwierdzeniem „Silnik wyłączony”.

Jeśli nie ma potwierdzenia SMS jest odbierany na Twój telefon komórkowy , możemy potwierdzić, że nie podjęto żadnych działań i pompa jest w ostatnim żądanym stanie, możesz przejść do witryny i rozwiązać problem lub nie otrzymano potwierdzenia z powodu przerwy w zasilaniu.

Kod programu:

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

Powyższa realizacja nie jest praktycznie przetestowana, ale autor jest w stu procentach pewien, że powyższy pomysł się sprawdzi. Jeśli czytelnicy znaleźli jakiekolwiek problemy z powyższym ulepszeniem, mogą wyrazić to poprzez sekcję komentarzy.

Lista części

1) Zmniejszenie napięcia transformatora 12-0V
2) Diody IN4007 x5
3) LM7812 x1
4) przekaźnik 12 V x1
5) Tranzystor BC548 x1
6) kondensator elektrolityczny 1000 uF x1
7) Moduł GSM: model SIM 800 lub SIM 900
8) rezystor 330 omów x2
9) LED CZERWONA / ZIELONA x1
10) Arduino Uno lub Arduino nano lub Arduino Mega
11) wtyk męski DC x2

Klip wideo:

Integracja z silnikami 3-fazowymi

Otrzymałem wiele próśb o unowocześnienie stopnia przekaźnikowego do powyższej konstrukcji, tak aby stał się kompatybilny z obsługą silników trójfazowych za pomocą poleceń telefonu komórkowego GSM.

Dlatego postanowiłem zaprojektować wymagany obwód, który będzie ufnie być w stanie włączać i wyłączać dane silniki trójfazowe z typowym mechanizmem stycznikowym startu i stopu.

Poniższy rysunek pokazuje, jak skonfigurować projekt za pomocą obwodu IC 4017.

GSM 3-fazowy sterownik silnika zdalny telefon komórkowy

UWAGA: Wartości 100uF / 10K oraz 220uF i 47K mogą wymagać pewnych korekt, aby zapewnić odpowiednią wielkość opóźnienia dla odpowiednich tranzystorów i stopni przekaźnika.




Poprzedni: Obwód bezpieczeństwa wskaźnika pozycji intruza Dalej: Zdalnie sterowany obwód regulatora natężenia światła słonecznego