• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO

 

SMS-управляемое реле на Arduino



 

Очень легко построить «SMS-управляемое реле» с помощью дешевого модуля GSM-модема и небольшой платы микроконтроллера. Здесь я использую SIM800L и Arduino Nano V3 для разработки отличного одноканального SMS-реле. Устройство, по сути, представляет собой «изолированный электрический выключатель», который можно контролировать через приложение для обмена сообщениями на вашем мобильном телефоне!

Давайте рассмотрим принципиальную схему, которая предоставляет электрические соединения:

 

 

Как видно из приведенной выше схемы, для нормальной работы моей схемы требуется стабилизированный и чистый источник питания постоянного тока 5 В / 1 А (мин). Плата микроконтроллера (Nano_V3) работает от источника 5 В постоянного тока, а модем (SIM800L) - около 4,3 В постоянного тока. Хотя большинство модулей SIM800L работают на 3,7 В, мой SIM800L-модуль от нового продавца eBay, похоже, легко потеряет сетевое соединение под 4 В. Вот почему он установлен на 4,3 В пост.

Код (эскиз Arduino) является базовым без каких-либо выделенных библиотек SIM800L. В коде RX и TX-штырьки назначаются в качестве серийных выводов программного обеспечения. Это делается намеренно, так что аппаратный последовательный порт Arduino остается использовать с последовательным монитором. После загрузки кода вы можете перейти к следующему шагу. Сначала уделите немного времени, чтобы убедиться, что установка оборудования в порядке. Не забудьте вставить действительную карту micro-SIM в слот перед включением системы. Как правило, SIM-карта автоматически регистрируется в домашней сети в течение нескольких секунд. Обратите внимание, что встроенный светодиодный индикатор модуля SIM800L будет мигать один раз каждые две-три секунды (не непрерывно), когда он полностью зарегистрирован в сети. После этого вы должны нажать переключатель сброса один раз, чтобы система полностью функционировала.

Начнем с отправки SMS. Отправка текста «ВКЛ» (не чувствительная к регистру) включает реле, а «ВЫКЛ» выключает реле. Релейные контакты могут быть подключены по желанию для переключения любой подходящей электрической нагрузки.

 

/*
 * SIM800L SMS RELAY v1.0
 * Arduino Hardware (Author): Nano V3 (ATmega328)
 * Arduino IDE (Author): 1.6.9
 * T.K.Hareendran/2018
 */

 
#include 
SoftwareSerial mySerial(10,11);  // (Rx,Tx  > Tx,Rx) 

 
char incomingByte; 
String inputString;
int relay = 13; // Output for Relay Control

 
void setup() 
{
      pinMode(relay, OUTPUT);
      digitalWrite(relay, LOW); // Initial state of the relay
      Serial.begin(9600);
      mySerial.begin(9600); 

 
     while(!mySerial.available()){
        mySerial.println("AT");
        delay(1000); 
        Serial.println("Connecting...");
        }
      Serial.println("Connected!");  
      mySerial.println("AT+CMGF=1");  //Set SMS to Text Mode 
      delay(1000);  
      mySerial.println("AT+CNMI=1,2,0,0,0");  //Procedure to handle newly arrived messages(command name in text: new message indications to TE) 
      delay(1000);
      mySerial.println("AT+CMGL=\"REC UNREAD\""); // Read Unread Messages
     }

 
void loop()
  if(mySerial.available()){
      delay(100);

 
      // Serial Buffer
      while(mySerial.available()){
        incomingByte = mySerial.read();
        inputString += incomingByte; 
        }

 
        delay(10);      

 
        Serial.println(inputString);
        inputString.toUpperCase(); // Uppercase the Received Message

 
        //turn RELAY ON or OFF
        if (inputString.indexOf("ON") > -1){
          digitalWrite(relay, HIGH);
          }
         if (inputString.indexOf("OFF") > -1){
          digitalWrite(relay, LOW);
          }          

 
        delay(50);

 
        //Delete Messages & Save Memory
        if (inputString.indexOf("OK") == -1){
        mySerial.println("AT+CMGDA=\"DEL ALL\"");

 
        delay(1000);}

 
        inputString = "";
  }
}

 

Вот скриншот

 

 

Некоторые важные примечания

  • SIM-карту необходимо вставить в гнездо с контактами, обращенными к печатной плате, и вырезать вырез.
  • Сама SIM800L требует входного напряжения между 3,4 В и 4,4 В (1-2 А), а используемый здесь модуль (плата прорыва) поставляется без встроенного регулятора напряжения (и переключателя на логическом уровне). Это требует аккуратного блока питания (и схемы переключения на логическом уровне). Если источник питания не может идти в ногу, модуль выключится / перезагрузится в середине действия.
  • В случае неисправности попробуйте включить питание системы. Убедитесь, что регистрация сети прошла успешно, и только после этого выполните сброс аппаратного обеспечения с помощью переключателя сброса.
  • Данный код явно нуждается в некоторых уточнениях. Я просто выкопал этот код и опробовал его, и он подходит для меня. Если вы заметили ошибки или думаете, что я случайно пропускаю важные бит, пожалуйста, дайте мне знать.

 

 

Если вы хотите узнать больше о модуле SIM800L, ознакомьтесь с этими и другими материалами в обзоре


 

 

В начало обзора



Купить радиодетали для ремонта
 



Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 379



          

Радио для всех© 2024