В этом посте мы собираемся создать схему контроллера мотора насоса GSM, удобную для фермеров, которая может
удаленно включать и выключать ирригационную систему из любой точки мира с помощью SMS-сообщения на мобильный телефон и возвращать вам сообщение с подтверждением. Идея была предложена г-ном П.Г. Рагавандиром.
Дизайн
Сельское хозяйство - одна из крупнейших отраслей Индии, которая ежегодно обслуживает более миллиарда человек. Производство большого количества еды никогда не было легкой задачей, и орошение - один из факторов.
Большая часть посевных площадей агронома расположена далеко от их места жительства, и простое включение водяного насоса в год обходится очень дорого.
Индия известна своими ИТ-навыками и космическими программами и достигла марса дешевле, чем стоимость фильма «Гравитация», что свидетельствует о большом потенциале инженеров и ученых. Но навыки неравномерно распределены по разным областям. Сельское хозяйство - одна из областей, где технологическое развитие идет медленно.
Этот контроллер мотора насоса GSM на основе SMS делает небольшой шаг навстречу развитие сельского хозяйства , возможно, это не революционный проект, но он может вызвать восторг у земледельцев.
Остановимся на технической части проекта.
Проект разработан с минимальным количеством аппаратных компонентов, поэтому новичок может с легкостью выполнить его.
Схема состоит из блока питания, от которого питается вся установка.
Arduino - это мозг проекта, который принимает решения, и GSM-модем, который отправляет и принимает текстовые SMS и общается с пользователем и реле, которое управляет двигателем.
Как это устроено
Примечание. Используйте резистор не менее 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.
ПРИМЕЧАНИЕ. Значения 100 мкФ / 10 кОм, 220 мкФ и 47 кОм могут потребовать некоторых корректировок, чтобы обеспечить правильную величину задержки для соответствующих транзисторов и релейных каскадов.
Предыдущая: Цепь безопасности индикатора положения нарушителя Следующая статья: Схема контроллера интенсивности солнечной лампы с дистанционным управлением