[customscript]retargeting[/customscript]
[adsense1]
Это статья о так называемой GSM-розетке, т.е. об источнике питания, который можно включать дистанционно (звонком с сотового телефона). Для этого необходима кучка очень недорогих элементов:
- Плата Ардуино Nano (около $2);
- Набор для сборки GSM модуля Neoway m590(около $2);
- Реле (около $1);
- Макетная плата (для удобства, но можно и обойтись без нее) и проводники для нее ;
- Блок питания для макетной платы (3.3-5В) с током, желательно, не менее 2А. У меня использовался БП на 0,7А, но работало всё. В качестве БП можно приспособить б/у зарядку от смартфона с разъемом под USB кабель (на 2А около 200 р.).
В Китае были заказаны GSM модули Neoway m590 в количестве трех штук (у разных продавцов). Это были наборы для самостоятельной сборки:
Подробности пайки модуля выложены тут . От себя добавлю, что полярность светодиода вот так определяется:
Соответственно светодиод располагают плюсом к резистору. Если не понятно, можно не припаивать сразу, на работу модуля это не влияет.
Выводы модема:
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 конвертера был подключен к ПК. Вставлять симку в модуль не обязательно.
После подключения данной схемы к питанию и ПК, была открыта прога Terminal 1.91b ^
После выбора com-порта (у меня 18), и нажатия кнопки Connect была опробована команда AT. Ответ был в виде кракозябры. Поиграл со скоростями, и на 115200 ответы стали корректными — ок.
Далее выбрал кодировку текста командой AT+CSCS= «GSM». Ответ «ок». Если ответ будет «Error», то команда написана неверно (помогает исправление кавычек). Поменял скорость командой AT+IPR=9600 (9600 Бит/сек). Данная скорость автоматически сохраняется после отключения питания. Переконнектился и изменил скорость со 115200 на 9600.
После настройки модуль был переподключен к ардуине UNO. Сим карта должна быть вставлена в модуль.
Соответственно были задействованы выводы:
m590 | Arduino UNO | На реле/светодиод |
RX | 8 | |
TX | 7 | |
GND | GND | GND |
13 | IN | |
+5 | VCC |
Земля присоединена на фото к пину модуля «К» т.к «К» и «G» спаяны вместе (это нужно для запуска модуля).
Был залит Скетч:
// реагируем на звонок
#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 пина ардуины и подключенный к нему светодиод загорался/выключался.
=======================звоним по событию==============================================
- // звоним по событию
- #include <SoftwareSerial.h>
- SoftwareSerial gsm(7, 8); // TX,RX
- 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+7927*******;»); // звоним по указанному номеру
- delay(100);
- if (gsm.find(«OK»)) Serial.println(«OK!»);
- else Serial.println(«error»);
- }
- }
Добрый день. Размера модуля не подскажите?
Добрый. Подскажу. Размер модуля м590 25х38х10мм. Это который на двухсторонней плате. Есть еще который все элементы на одной стороне припаяны, тот не измерял (нет под рукой).