Віримо в перемогу ЗСУ!
Магазин у відпустці до 03.04.2023

GSM модуль для подключения к контроллеру напрямую или к компьютеру через USB - UART преобразователь. Позволяет принимать звонки с мобильных телефонов и выполнять вызовы на мобильники, выполнять обмен данными 

Управление модулем производится AT-командами через последовательную связь

Рабочие радио-частоты 900 и 1800 МГц

GPRS Class 10

Скорость поумолчанию обмена данными по UART составляет  115200 бод. Её можно менять АТ-командой

Вход BOOT необходимо подключать к общему проводу

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


Отправка смс по нажатию на кнопку пример программы для Arduino UNO:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(6, 5); // RX, TX номера пинов Arduino UNO для подключения к модулю GSM NEOWAY M590

int buttonState = 0;
int lastButtonState = 0;
int knopka = 2; //номер пина для подключения кнопки, которая должна замыкать этот пин на ноль питания

void setup() {
  mySerial.begin(115200);

  pinMode(knopka, INPUT_PULLUP); //инициализация дискретного входа и внутренняя подтяжка его на плюс питания
  
  delay(10000); //время для инициализации GSM-модуля в сети
}

void loop() {
  buttonState = digitalRead(knopka);
  if (buttonState < lastButtonState){
    mySerial.println("AT+CMGF=1");        //режим кодировки СМС - обычный (для англ.)
    delay(100);
    mySerial.println("AT+CSCS=\"GSM\"");  
    delay(100);
    mySerial.println("AT+CMGS=\"+38093xxxxxxx\""); //сюда вводим необходимый номер мобильного получателя смс
    delay(500);
    mySerial.print("Geekmatic super programmer!"); //текст смс
    delay(500);
    mySerial.print((char)26);
    delay(500);
  }

  lastButtonState = buttonState;
  delay(50);
  
}


Пример программы дачной сигнализации для Arduino UNO, используя GSM модуль:

#include <EEPROM.h>
//// как подключен модем?
//#include <SoftwareSerial.h>                 // если программный
//SoftwareSerial gsm(7, 8); // RX, TX
#define gsm Serial                           // если аппаратный в UNO
//#define gsm Serial1                          // если аппаратный в леонардо
#define LED 13
#define TELLNUMBER "ATD+30001112233;"                 // номен на который будем звонить
#define SMSNUMBER "AT+CMGS=\"30001112233\""           // номер на который будем отправлять SMS
#define TELMODE "30001112233"                         // номер для установки на охрану
#define SH1 A2              // шлейф
//#define SH2 A3
#define pinBOOT 5           // нога BOOT или K на модеме 
byte mode = 0;              // 0 - только включили
                            // 1 - установлена охрана
                            // 2 - снята с охраны
void setup() {
  delay(1000);                    //// !! чтобы нечего не повисало при включении
  
  gsm.begin(9600);                         /// незабываем указать скорость работы UART модема
//  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  pinMode(pinBOOT, OUTPUT);                /// нога BOOT на модеме
  pinMode(SH1, INPUT_PULLUP);              /// нога на растяжку
//  pinMode(SH2, INPUT_PULLUP);              /// нога на растяжку
                                          // читаем режим из еепром
  mode = EEPROM.read(0);
  if (mode > 2) mode = 2;                 // проверяем значение в еепром 
                                      // занимаемся модемом        
  delay(1000);                            
  digitalWrite(LED, HIGH);                // на время включаем лед  
  digitalWrite(pinBOOT, LOW);             /// включаем модем 
 
      // нужно дождатся включения модема и соединения с сетью
  delay(2000);    
//  while(gsm.find("STARTUP"));          /// ждем команды от модема  
  gsm.println("ATE0");                  // выключаем эхо  
  
  while(1){                             // ждем подключение модема к сети
        gsm.println("AT+COPS?");
        if (gsm.find("+COPS: 0")) break;
           digitalWrite(LED, LOW);               // блымаем светодиодом
           delay(50);  
           digitalWrite(LED, HIGH);  
           delay(500); 
    }
//Serial.println("Modem OK"); 
   digitalWrite(LED, LOW);               // блымаем светодиодом
   delay(1500);  
   digitalWrite(LED, HIGH);
   delay(250); 
   digitalWrite(LED, LOW);   
  
}
void loop() {
  
  if (mode == 1){                         // если в режиме охраны
                                          // проверяем датчики
    if (digitalRead(SH1)){                // если обрыв
                                          // отзваниваемся
        gsm.println(TELLNUMBER); 
        delay(2500);                       
          if (gsm.find("NO CARRIER")){      // ищим сброс вызова,  
                                            // снимаем охранку
              mode = 2;
              EEPROM.write(0, mode);
          }
    }
  }
  
  // если охрана снята
  if (mode == 2){
    if (digitalRead(SH1)){  // проверяем датчики, включаем LED
      digitalWrite(LED, HIGH);    
    }
    else digitalWrite(LED, LOW);
  }
  
 // ищим RING
   // если нашли, опрашиваем кто это и ставим на охрану
    if(gsm.find("RING")){                    // если нашли RING
      gsm.println("AT+CLIP=1");              // включаем АОН, 
            
      while(1){                              // в цикле
       if (gsm.find(TELMODE)){               // ищим номер телефона, если нашли
         mode = 1;                           // меняем режим  
         EEPROM.write(0, mode);              // пишим его в еепром
         break;                              // и выходим
       }  
       else{                                 // иначе 
         gsm.println("AT+CPAS");             // спрашиваем состояние модема   
         delay(100);
         if (gsm.find("+CPAS: 0")) break;    // и если он в "готовности", выходим из цикла
       }                                     // если звонок в процессе, возвращает +CPAS: 3
      }                                      // и крутимся дальше
       
        gsm.println("AT+CLIP=0");            // выключаем АОН, 
        delay(500);
        gsm.println("ATH0");                 // сбрасываем вызов 
         digitalWrite(LED, LOW);             // сигнализируем об этом
         delay(500);  
         digitalWrite(LED, HIGH);
         delay(250); 
         digitalWrite(LED, LOW);   
    }
}

Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо

GSM GPRS модуль адаптированный под 5 В

  • Модель NEOWAY M590
  • Наличие Под заказ
  • 189.25грн.


<< Проекты << Все товары >> Статьи, уроки >>