Схема контроллера мотора насоса GSM с использованием Arduino

Попробуйте наш инструмент устранения неполадок





В этом посте мы собираемся создать схему контроллера мотора насоса GSM, удобную для фермеров, которая может
удаленно включать и выключать ирригационную систему из любой точки мира с помощью SMS-сообщения на мобильный телефон и возвращать вам сообщение с подтверждением. Идея была предложена г-ном П.Г. Рагавандиром.

Дизайн

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



Большая часть посевных площадей агронома расположена далеко от их места жительства, и простое включение водяного насоса в год обходится очень дорого.

Индия известна своими ИТ-навыками и космическими программами и достигла марса дешевле, чем стоимость фильма «Гравитация», что свидетельствует о большом потенциале инженеров и ученых. Но навыки неравномерно распределены по разным областям. Сельское хозяйство - одна из областей, где технологическое развитие идет медленно.



Этот контроллер мотора насоса GSM на основе SMS делает небольшой шаг навстречу развитие сельского хозяйства , возможно, это не революционный проект, но он может вызвать восторг у земледельцев.

Остановимся на технической части проекта.

Проект разработан с минимальным количеством аппаратных компонентов, поэтому новичок может с легкостью выполнить его.
Схема состоит из блока питания, от которого питается вся установка.

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

Как это устроено

Схема контроллера мотора насоса GSM с использованием Arduino

Примечание. Используйте резистор не менее 10 кОм на базе транзистора BC548, 330 Ом слишком мало.

В понижающий трансформатор 230VAC в 12VAC и мостовой выпрямитель преобразуют переменный ток в постоянный, и ток проходит через электролитический конденсатор, чтобы сгладить питание.

Фиксированный Регулятор напряжения 12В дает питание Arduino, GSM-модему и реле. В 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, что может увеличить беспорядок в проекте.

Транзистор управляет реле, а диод защищает цепь от скачков высокого напряжения при включении / выключении реле.

В Светодиодный индикатор показывает состояние реле. Если светодиод горит, реле активировано, а если светодиод не горит, реле деактивировано.

Вставьте действующую 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 для проверки ответа от цепи.

Убедитесь, что вы начинаете команду с «/» и заканчиваете «/», иначе она не будет принята как действительный запрос.

• / motor on / включит реле и вернется с подтверждением SMS «Двигатель активирован».

• / мотор выкл / выключит реле и вернется с подтверждением SMS «Мотор деактивирован».

• Если вы отправите / протестируете /, он вернется с подтверждающим SMS-сообщением «Система работает нормально».

• Приведенное выше сообщение означает, что ваша установка работает нормально.

• Если вам не возвращается подтверждение, вы можете предположить, что с двигателем не выполнялось никаких действий, и вы можете устранить проблемы.

• После включения установки дождитесь 1 минута система отправит подтверждающее SMS-сообщение «Система готова принимать команды». как только вы получите это SMS, ваш проект будет готов к работе.

Вышеупомянутые команды являются надежными и никогда не запускают двигатель ложно, установка не ответит ни на какие SMS, кроме указанных выше.

Улучшение вышеуказанной концепции

Приведенная выше схема применения насоса GSM привлекла множество читателей, и мы получили массу запросов и предложений. Один из заядлых читателей этого сайта г-н Ганди предложил хорошее улучшение предыдущего дизайна.

SMS-подтверждение при фактическом включении двигателя

Улучшение связано с подтверждением возврата, когда пользователь будет получать SMS-ответ на свой мобильный телефон от сети GSM. система управления насосом когда пользователь отправляет действительный SMS-комментарий.

Существующая конструкция отправляет пользователю SMS с подтверждением независимо от фактического состояния реле, то есть ВКЛ / ВЫКЛ.

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

Изменения в соответствии с этой новой водой GSM конструкция контроллера насоса можно без особых хлопот реализовать в предыдущем проекте, добавив систему обратной связи, как показано на схеме, и загрузив новый код.

Принципиальная электрическая схема:

Когда мы отправляем SMS-команду «/ MOTOR ON /», контакт № 9 переходит в высокий уровень и запускает реле. Если реле соединяет общий и замыкающий контакты, насос запускается, а также включает трансформатор, который дает +5 на выходе.

Сигнал + 5V подается на контакт № 7, который подтверждает и возвращается с подтверждением «Двигатель активирован».

Когда мы отправляем «/ MOTOR OFF /», контакт № 9 становится LOW и реле отключает общий и 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------------//

Вышеупомянутая реализация практически не протестирована, но автор на 100% уверен, что эта идея сработает. Если читатели обнаружили какие-либо проблемы с вышеуказанным улучшением, вы можете сообщить об этом в разделе комментариев.

Список запчастей

1) Трансформатор понижающий 12-0В
2) Диоды IN4007 x5
3) LM7812 x1
4) реле 12В x1
5) Транзистор BC548 x1
6) Электролитический конденсатор 1000 мкФ x1
7) Модуль GSM: модель SIM 800 или SIM 900
8) Резистор 330 Ом x2
9) КРАСНЫЙ / ЗЕЛЕНЫЙ светодиод x1
10) Arduino Uno или Arduino nano или Arduino Mega
11) штекерный разъем постоянного тока x2

Видеоклип:

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

Я получаю много запросов на модернизацию релейной ступени для указанной выше конструкции, чтобы она стала совместимой для управления трехфазными двигателями с использованием команд сотового телефона GSM.

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

На следующем рисунке показано, как настроить схему с использованием схемы IC 4017.

GSM 3-фазный контроллер мотора удаленный сотовый телефон

ПРИМЕЧАНИЕ. Значения 100 мкФ / 10 кОм, 220 мкФ и 47 кОм могут потребовать некоторых корректировок, чтобы обеспечить правильную величину задержки для соответствующих транзисторов и релейных каскадов.




Предыдущая: Цепь безопасности индикатора положения нарушителя Следующая статья: Схема контроллера интенсивности солнечной лампы с дистанционным управлением