Оживляем GSM модуль Neoway m590 2


[customscript]retargeting[/customscript]
[adsense1]

Это статья о так называемой GSM-розетке, т.е. об источнике питания, который можно включать дистанционно (звонком с сотового телефона). Для этого необходима кучка очень недорогих элементов:

  1. Плата Ардуино Nano (около $2);
  2. Набор для сборки GSM модуля Neoway m590(около $2);
  3. Реле (около $1);
  4.  Макетная плата (для удобства, но можно и обойтись без нее) и проводники для нее ;
  5. Блок питания для макетной платы (3.3-5В) с током, желательно, не менее 2А. У меня использовался БП на 0,7А, но работало всё. В качестве БП можно приспособить б/у зарядку от смартфона с разъемом под USB кабель (на 2А около 200 р.).

В Китае были заказаны  GSM модули Neoway m590 в количестве трех штук (у разных продавцов). Это были  наборы для самостоятельной сборки:

Neoway m590

Neoway m590

 

Подробности пайки модуля выложены тут . От себя добавлю, что полярность светодиода вот так определяется:

Полярность LED smd

Полярность LED smd

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

Выводы модема:
I  —  При поступлении входящего вызова на линии появляются импульсы с низким логическим уровнем длительностью 30 мс
T — TX
R — RX
U — + напряжение питания 3,3 – 4,5В
K — Включение модуля при соединении с землей
G — Земля

Питание на модуль подавалось с компьютерного БП 5В (впоследствии был приобретен такой модуль питания). Пины G и K модуля должны быть замкнуты ( Например джампером со старой материнки, или простой перемычкой из олова) для включения.  Работоспособность определялась  по доступности симки из сети (шли гудки вызова). Один модуль не отвечал. Пришлось пропаять еще раз заводские пины. Связка  модуля с ардуино пробовалась различная. Модули на команды не отвечали. Соединение у ардуино  GND и  Reset (т.е так ардуино должно было выступить в роли простого конвертера USB-COM ) — также не привело к желаемому результату. Модуль был глух и нем.  Пошел обходным путем.

Для подключения к ПК напрямую был приобретен на Али TTL конвертер.

Модуль m590 TTL конвертер
TX RX
RX TX
GND GND

Перемычка на конвертере была установлена VCC — 3V3. Вывод 5В — не задействован. Разъем USB конвертера был подключен к ПК. Вставлять симку в модуль не обязательно.

TTL-UART2

После подключения данной схемы к питанию и ПК, была открыта прога Terminal 1.91b ^

TerminalV191b

После выбора com-порта (у меня 18), и нажатия кнопки Connect была опробована команда AT. Ответ был в виде кракозябры. Поиграл со скоростями, и на 115200 ответы стали корректными — ок.

Terminal1

Далее выбрал кодировку текста командой AT+CSCS= «GSM». Ответ «ок». Если ответ будет «Error», то команда написана неверно (помогает исправление кавычек). Поменял скорость командой AT+IPR=9600 (9600 Бит/сек). Данная скорость автоматически сохраняется после отключения питания.  Переконнектился и изменил скорость со 115200 на 9600.

Terminal2

После настройки  модуль был переподключен к ардуине UNO. Сим карта должна быть вставлена в модуль.

Соответственно были задействованы выводы:

m590 Arduino UNO На реле/светодиод
RX 8
TX 7
GND GND GND
13 IN
+5 VCC

m5901

Земля присоединена на фото к пину модуля «К» т.к «К» и «G» спаяны вместе (это нужно для запуска модуля).

m590

Был залит Скетч:

// реагируем на звонок

#include <SoftwareSerial.h>

SoftwareSerial gsm(7, 8); // TX, RX

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(«79275213***»)){ // ищем номер телефона с которого звоним на модуль, если нашли
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»); // сбрасываем вызов

}

}

===============================

[adsense2]

При звонке на номер симки (Теле-2) в модуле происходило инвертирование 13 пина ардуины и подключенный к нему светодиод загорался/выключался.

=======================звоним по событию==============================================

 

  1. // звоним по событию
  2. #include <SoftwareSerial.h>
  3.  
  4. SoftwareSerial gsm(7, 8); // TX,RX
  5.  
  6. void setup() {
  7.  Serial.begin(9600);
  8.  gsm.begin(9600);
  9.  
  10.  pinMode(6, INPUT_PULLUP);
  11.  
  12. }
  13.  
  14. void loop() {
  15.   if(!digitalRead(6)){     // если нажали кнопку
  16.      while(1){             // проверяем готовность модема
  17.        gsm.println(«AT+CPAS»);
  18.        if (gsm.find(«0»)) break;
  19.        delay(100);  
  20.      }
  21.      gsm.println(«ATD+7927*******;»); // звоним по указанному номеру
  22.      delay(100);
  23.      if (gsm.find(«OK»)) Serial.println(«OK!»);
  24.      else Serial.println(«error»);
  25.    }
  26. }

 


2 мыслей про “Оживляем GSM модуль Neoway m590

  • pavelrzn88

    Добрый день. Размера модуля не подскажите?

    • Михаил От автора

      Добрый. Подскажу. Размер модуля м590 25х38х10мм. Это который на двухсторонней плате. Есть еще который все элементы на одной стороне припаяны, тот не измерял (нет под рукой).

Обсуждение закрыто.