Модем M590E GSM GPRS
Даташиты на модем Neoway M590 Hardware Design Manual V1.1
Даташиты на модем Neoway M590 AT Command Sets_V3.0
Для работы с Arduino установить библиотеку SoftwareSerial.h
Скетч для работы модуля с модемом S1
Звонок по событию S2
Принимает звонок и на контакте 13 включает светодиод S3
отправляет СМС о событии S4
Sketch code
#include <SoftwareSerial.h>
SoftwareSerial mySerial(7, 8); // RX, TX
void setup(){
Serial.begin(9600);
mySerial.begin(9600);
}
void loop() {
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}
Sketch code
// звоним по событию
#include <SoftwareSerial.h>
SoftwareSerial gsm(7, 8); // RX, TX
void setup() {
Serial.begin(9600);
gsm.begin(9600);
pinMode(6, INPUT_PULLUP);
}
void loop() {
if(!digitalRead(6)){ // если нажали кнопку
while(1){ // проверяем готовность модема
gsm.println("AT+CPAS");
if (gsm.find("0")) break;
delay(100);
}
gsm.println("ATD+79990000000;"); // звоним по указаному номеру
delay(100);
if (gsm.find("OK")) Serial.println("OK!");
else Serial.println("error");
}
}
Sketch code
// реагируем на звонок
#include <SoftwareSerial.h>
SoftwareSerial gsm(7, 8); // RX, TX
void setup() {
Serial.begin(9600);
gsm.begin(9600);
pinMode(13, OUTPUT);
}
void loop() {
if(gsm.find("RING")){ // если нашли RING
Serial.println("RING!");
gsm.println("AT+CLIP=1"); // включаем АОН,
while(1){ // в цикле
if (gsm.find("79990000000")){ // ищим номер телефона, если нашли
digitalWrite(13, !digitalRead(13)); // инвертируем 13 выход
Serial.println("!!!");
break; // и выходим
}
else{ // иначе
gsm.println("AT+CPAS"); // спрашиваем состояние модема
delay(100);
if (gsm.find("+CPAS: 0")) break; // и если он в "готовности", выходим из цикла
} // если звонок в процессе, возвращает +CPAS: 3
} // и крутимся дальше
gsm.println("AT+CLIP=0"); // выключаем АОН,
delay(100);
gsm.println("ATH0"); // сбрасываем вызов
}
}
Sketch code
// sms по собынию
#include <SoftwareSerial.h>
SoftwareSerial gsm(7, 8); // RX, TX
void setup() {
Serial.begin(9600);
gsm.begin(9600);
pinMode(6, INPUT_PULLUP);
gsm.println("AT+CMGF=1");
delay(100);
gsm.println("AT+CSCS=\"GSM\"");
delay(100);
}
void loop() {
if(!digitalRead(6)){ // если нажали кнопку
while(1){ // проверяем готовность модема
gsm.println("AT+CPAS");
if (gsm.find("0")) break;
delay(100);
}
gsm.println("AT+CMGS=\"79990000000\""); // даем команду на отправку смс
delay(100);
gsm.print("analogPing A0:"); // отправляем текст
gsm.print(analogRead(A0)); // и переменную со значением
gsm.print((char)26); // символ завершающий передачу
Serial.println("ok");
}
while (gsm.available() > 0) { // останавливаем программу и смотрим что ответили
Serial.write(gsm.read());
}
}
Монтаж модуля M590E GSM GPRS |
![]() |
|
Подключение М590 GPRS к Arduino Mega
Arduino Mega имеет 4 аппаратные последовательные порты. Для подключения используются порты Rx-Tx модема M590 GPRS и порты Rx2-Tx2 Arduino Устанавливаем библиотеку SoftwareSerial Library software serial |
|
![]() |
|
Заливаем программу Mega_serialmonitor.ino |
|
![]() |
|
![]() |
|
![]() |
|
Через последовательный порт нельзя отправить СМС, необходимо новое програмное беспечение Putty и создать новую схему подключения | |
![]() |
|
Подключить инерфейс повторно | |
![]() |
|
и внести изменеия в конфигурация программы | |
![]() |
|
теперь можно получить СМС по телефону | |
![]() |
|
Загрузить программу M590_Mega_sms_sender_v1m0.ino |