Управление нагрузкой через SMS (GSM) и Arduino.

Управление нагрузкой через SMS (GSM) и Arduino.

В данной статье расскажу как можно управлять нагрузкой удаленно по SMS сообщениям. В примере используем GSM модуля SIM800L, двух канальное реле и плат Arduino UNO.

Управление нагрузкой по SMS с использованием SIM800L и Arduino

Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Модуль GSM, GPRS на чипе SIM800L x 1 шт.
► Модуль реле 2-о канальный — 5V, 10A, 250V — lOW x 1 шт.
► Преобразователь напряжения LM2596, DC 3.2-40B на DC 1.38-35B, 3А, Step-Down x 1 шт.
► Провод DuPont 10x, 2.54 мм, 20 см, F-M, Female — Male x 1 шт.

Подключение:
Для стабильно работы модуля SIM800L необходим источник питания с рабочим током 2А, подойдет преобразователь напряжения LM2596 с настроенным выходным напряжением 4.3 В (можно воспользоваться модулем MINI360).
Первым делом подготавливаем модуль SIM800L, припаиваем контакты и антенну, затем устанавливаем SIM карту любого оператора. Теперь подключаем вывод Tx на модуле к выводу 3 на Arduino. Вывод Rx нельзя подключать напрямую, так как цифровой вывод Arduino UNO использует 5В, а модуль SIM800L использует 3,3В. Необходимо сигнал Tx, поступающий от Arduino UNO, понизить до 3,3В, чтобы не спалить модуль SIM800L. Самый простой способ, это воспользоватся делителем напряжения на резисторах. Подключаем резистор на 10 кОм между выводом Rx (SIM800L) и выводом 2 (Arduino) и второй резистор на 10 кОм между выводом Rx (SIM800L) и GND. Теперь осталось подключить питание модуля, в примере используется стабилизатор напряжения на LM2596.
Осталось подключить двух канальное реле, подключаем IN1 и IN2 к выводам A0 и A1, затем необходимо подключить питание VCC и GND к плате ARDUINO.

Управление нагрузкой через SMS (GSM) и Arduino.

Программа:
Для работы скетча необходима библиотека «SoftwareSerial» которая входит с среду разработки IDE.

Скачать скетч

Открываем окно «Мониторинг порта» , устанавливаем скорость «9600 и «NL» (Новая строка)». При отправки SMS с любого телефона ON_1 (ON_2) первое или второе реле включиться или OFF_1 (OFF_2) отключиться, в ответ приходит сообщение о состоянии.

Управление нагрузкой через SMS (GSM) и Arduino.

Описание скетча:
Скетч начинается с включения библиотеки «SoftwareSerial.h» и указании выводов к которым подключены Tx и Rx модуля SIM800L.

Далее создаем переменную «incomingByte» для хранения SMS сообщения и указываем к каким выводам подключено реле.

В функции void setup(), первым делом настраиваем реле, устанавливаем вывода как выход и устанавливаем лог «1», чтобы реле было по умолчанию выключено.

Далее, инициализируем последовательный связь между Arduino и модулем SIM800L на скорости 9600 бод.

Командой while зацикливаем программу до связи с SIM800L. Если модуль обнаружен, отправляем команду «AT+CMGF=1» для установки текстового режим и отправляем команду «AT+CMGL=\»REC UNREAD\».

В основной части программы, проверяем нет ли сообщений « if(mySerial.available())», если сообщение есть, считываем данные пока полностью не закончиться сообщение.

Меняем все буквы на заглавные

Сравниваем получено сообщение и если оно совпадает включаем или отключаем реле.

Последняя функция просто отправляем сообщение об состоянии.

Купить на Aliexpress
  Контроллер Arduino UNO R3 на CH340G
  Контроллер Arduino UNO R3 на Atmega16U2
  Провода DuPont, 2,54 мм, 20 см
  Модуль GSM, GPRS на чипе SIM800L
  Преобразователь напряжения LM2596, DC 3.2-40B на DC 1.38-35B, 3А, Step-Down
  Преобразователь напряжения LM2596 с вольтметром, DC 4-40B на DC 1.38-35B, 3А, Step-Down
  Модуль реле 2-х канальный — 5V, 10A, 250V — lOW, OPTO

Купить в Самаре и области
  Контроллер Arduino UNO R3 на CH340G
  Контроллер Arduino UNO R3 на Atmega16U2
  Провода DuPont, 2,54 мм, 20 см
  Модуль GSM, GPRS на чипе SIM800L
  Понижающий преобразователь напряжения LM2596, DC 3.2-40B на DC 1.38-35B, 3А
  Понижающий преобразователь напряжения LM2596 с вольтметром, DC 4-40B на DC 1.25-37B, 3А
  Модуль реле 2-х канальный — 5V, 10A, 250V — lOW, OPTO

Читайте также:

комментариев 19

  1. Иван:

    «В функции void setup(), первым делом настраиваем реле, устанавливаем вывода как выход и устанавливаем лог «1», чтобы реле» — что бы реле было по умолчанию включено ?

  2. Денис:

    добрый день, у меня в наличии есть ардуино нано, могу ли я использовать этот скейтч, заранее спасибо за ответ

  3. Денис:

    спасибо большое, я не спец в этом деле, но очень хочется…

  4. Денис:

    А еще я правильно понимаю, что в этом скейтче нет номера телефона админа, смс можно слать с любого?

  5. Сергей:

    Да, верно. Белый список не реализован. Но его можно легко добавить.

  6. Сергей Сергеевич:

    Функцию стирание СМС можно сделать?

  7. Юрий:

    Добрый день! Не удается повторить, не срабатывают команды. В чем может быть дело?

  8. Yura:

    Полезная статья, все просто и понятно, я добавил еще проверку номера телефона и сделал себе сигнализацию. Спасибо .

  9. Павел:

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

  10. Ульрих:

    Сергей, присоединяюсь к вопросу об автоматическом определении номера , на который будет отвечать Ардуино. Не подкорретировали еще код?

  11. Денис:

    Здравствуйте. А можно сделать кратковременные замыкание реле? Просто нужно сделать включение подогревателя в автомобиле. А там просто подключиться к кнопке включения. Т. е. сделать симуляцию нажатия кнопки. И возможен ли еще вариант включения реле по звонку вместо Смс?

    • Сергей:

      Здравствуйте, да можно сделать кратковременное включение, по смс

      if (inputString.indexOf(«ON») > -1)
      {
      digitalWrite(relay_1, LOW);
      delay(10);
      digitalWrite(relay_1, HIGH);
      sms(String(«Relay 1 — OFF»), String(«+xxxxxxxxxx»));
      }

  12. Александр:

    У меня почему то по данному коду после отправки СМС, в ответ начинает валится СМС (ОК) без остановки, что не так?

  13. Владимир:

    Здравствуйте . Можно ли прикрепить тачик температуры к ардуино и его отслеживать запрсом например Temp

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *