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);
}
}
GSM GPRS модуль адаптированный под 5 В
- Модель NEOWAY M590
- Наличие Под заказ
-
189.25грн.