Верига на контролера на двигателя на помпата за GSM с използване на Arduino

Опитайте Нашия Инструмент За Премахване На Проблемите





В този пост ще изградим верига за контрол на двигателя на помпата, подходяща за фермери, която би могла
включете и изключете системата за напояване дистанционно от всяка точка на света чрез SMS за мобилен телефон и ви върнете със съобщение за потвърждение. Идеята е поискана от г-н PG Ragavandir.

Дизайнът

Земеделието е една от най-големите индустрии в Индия, която обслужва храна за повече от милиард души всяка година. Производството на огромно количество храна никога не е лесна задача напояването е един от факторите.



По-голямата част от полето за земеделски култури е разположено далеч от тяхното местоживеене, само включването на водната помпа струва огромни разходи за транспортирането им годишно.

Индия е известна със своите ИТ умения и космически програми и достигна марс по-малко от цената на филма „Гравитация“, това означава големия потенциал сред инженерите и учените. Но уменията не са равномерно разпределени в различните области. Земеделието е една от областите, където технологичното развитие е бавно.



Този SMS базиран GSM контролер на помпата прави бебешка стъпка към развитие на селското стопанство , това може да не е революционен проект, но може да донесе наслада сред земеделците.

Нека да се потопим в техническата част на проекта.

Проектът е проектиран с минимални хардуерни компоненти, така че начинаещи да могат да го изпълнят с лекота.
Веригата се състои от захранване, което захранва цялата настройка.

Arduino е мозъкът на проекта, който взема решения и GSM модем, който изпраща и получава текстови SMS и комуникира с потребителя и релето, което контролира двигателя.

Как работи

Верига на контролера на двигателя на помпата за GSM с използване на Arduino

Забележка: Моля, използвайте поне 10K резистор в основата на транзистора BC548, 330 Ohms е твърде нисък.

The трансформатор стъпка надолу 230VAC до 12VAC и мостов токоизправител преобразуват AC в постоянен ток и токът преминава през електролитен кондензатор, за да изглади захранването.

Фиксирана 12V регулатор на напрежение дава мощност на arduino, GSM модем и реле. The GSM модем е свързан към arduino на пин # 0 и пин # 1, които са съответно RX и TX.

RX на GSM е свързан с TX на arduino, а TX на GSM е свързан с RX на arduino. Ако сте объркани, просто погледнете диаграмата по-долу, прекъсването на връзката няма да изпраща или получава SMS.

ARDUINO TX ---------------------- RX GSM модем
RX ---------------------- TX

Връзката земя към земя също се установява между arduino и GSM модема.

Опитайте се да вземете мъжки конектор за захранване за GSM и arduino, ако не просто спойка на проводниците директно от захранването към arduino и GSM, което може да увеличи хаоса в проекта.

Транзисторът задвижва релето и диодът защитава веригата от скокове с високо напрежение, докато включва / изключва релето.

The Лед индикатор показва състоянието на релето. Ако светодиодът свети активираното реле и ако светодиодът е изключен, релето се деактивира.

Поставете валидна SIM карта в GSM модема и се опитайте да се възползвате от офертите, предоставени от мрежовия доставчик за SMS като резачки, които ще намалят разходите за SMS.

Код на програмата:

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

ЗАБЕЛЕЖКА 1: Докато компилирате програмата, тя показва предупреждение, което можете да игнорирате. Програмата е проверена и тествана.

ЗАБЕЛЕЖКА 2: Моля, премахнете TX и RX връзката от arduino, докато качвате кода.

ЗАБЕЛЕЖКА 3: Заменете „xxxxxxxxxxxxx“ с телефонния номер на получателя на 4 места в програмата.

ЗАБЕЛЕЖКА 4: Моля, закупете GSM модем без бутон за захранване в модула в случай на прекъсване на захранването, той няма да се заключи в мобилната мрежа, освен ако не натиснете ръчно бутона, така че избягвайте такъв тип GSM модеми. GSM модемът без бутон за включване ще се заключи в мобилната мрежа директно след запазване на захранването

Авторски прототип на верига за контрол на двигателя на помпата GSM:

Как да използвам горната настройка:

• Изпратете / включете / SMS от мобилния си телефон, за да активирате релето.

• Изпращане / изключване на двигателя / SMS за деактивиране на релето.

• Изпращане / тест / SMS за тестване на отговора от веригата.

Уверете се, че стартирате командата с „/“ и завършвате с „/“, в противен случай тя няма да приеме като валидна заявка.

• / двигателят е включен / ще включи релето и ще се върне със SMS за потвърждение „Активиран двигател“.

• / motor off / ще изключи релето и ще се върне със SMS за потвърждение „Motor Deactivated“.

• Ако изпратите / тествате / той ще се върне с SMS за потвърждение „Системата работи добре“.

• Горното съобщение означава, че вашата настройка работи добре.

• Ако не се върне потвърждение, можете да приемете, че не е предшествано действие върху двигателя и може да отстраните проблемите.

• След включване на настройката ВКЛ. Изчакайте 1 минута системата ще изпрати потвърждение SMS „Системата е готова да приема команди.“ след като получите този SMS, вашият проект е готов за обслужване.

Горните команди са надеждни и никога не задействат фалшиво двигателя, настройката няма да отговори на никакви SMS, различни от горепосочените препоръки.

Подобряване на горната концепция

Тази схема за приложение на помпата за GSM привлече много читатели и получихме множество запитвания и предложения. Един от запалените читатели на този уебсайт Mr.Gandhi предложи добро подобрение на предишния дизайн.

SMS потвърждение, когато двигателят действително е включен

Подобрението е свързано с потвърждение за връщане, където потребителят ще получи SMS отговор в мобилния си телефон от GSM система за управление на помпата когато потребителят изпрати валиден SMS коментар.

Съществуващият дизайн изпраща SMS с потвърждение на потребителя, независимо от действителното състояние на релето, т.е. ON / OFF.

Новата промяна на дизайна, предложена от г-н Ганди, проверява състоянието на релето дали релето е физически превключено в своето състояние или не.

Промяната според тази нова GSM вода дизайн на контролера на помпата може да се приложи към предишния дизайн без много неприятности чрез добавяне на система за обратна връзка, както е показано в схемата и качване на новия код.

Електрическа схема:

Когато изпратим SMS команда “/ MOTOR ON /”, щифт # 9 отива високо и задейства релето ВКЛ. Ако релето свързва общите и N / O щифтове, помпата стартира и също така включва трансформатора, който ще даде +5 на изхода.

Сигналът + 5V се подава към щифт # 7, който ще потвърди и се върне с потвърждение „Моторът е активиран“.

Когато изпратим “/ MOTOR OFF /” щифт # 9 превръща НИСКО и релето прекъсва общите и N / O щифтовете, това ще изключи помпата, както и свързания трансформатор. Изходът на пин # 7 отива НИСКО и се връща с потвърждение „Двигателят е деактивиран“.

Ако няма потвърждение SMS се получава във вашия мобилен телефон , можем да потвърдим, че не са предприети действия и помпата е в последното заявено състояние, можете да отидете на сайта и да отстраните неизправности или не е получено потвърждение поради спиране на захранването.

Код на програмата:

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

Горното изпълнение не е практически тествано, но авторът е на сто процента сигурен, че горната идея ще работи. Ако читателите открият някакви проблеми с горното подобрение, могат да изразят чрез раздела за коментари.

Списък на части

1) Трансформаторът намалява 12-0V
2) Диоди IN4007 x5
3) LM7812 x1
4) Реле 12V x1
5) BC548 транзистор x1
6) Електролитен кондензатор 1000uF x1
7) GSM модул: модел SIM 800 или SIM 900
8) 330 ома резистор x2
9) LED ЧЕРВЕН / ЗЕЛЕН x1
10) Arduino Uno или Arduino nano или Arduino Mega
11) DC мъжки жак x2

Видеоклип:

Интегриране с 3-фазни двигатели

Получавах много заявки за надграждане на етапа на релето за горния дизайн, така че той да стане съвместим за работа с трифазни двигатели, използващи команди на GSM мобилен телефон.

Затова реших да проектирам необходимата схема, която ще да се надяваме да може да включва и изключва дадени трифазни двигатели с типичен механизъм за стартиране и спиране на контактора.

Следващата фигура показва как да конфигурирате дизайна с помощта на схема IC 4017.

GSM 3 фазен контролер на мотор за дистанционно управление

ЗАБЕЛЕЖКА: Стойностите 100uF / 10K и 220uF и 47K може да се нуждаят от някои корекции, за да се гарантира правилното количество забавяне за съответните транзистори и релейни каскади.




Предишна: Верига за сигурност на индикатора за положение на нарушител Напред: Дистанционно управлявана верига за контрол на интензитета на слънчевата лампа