Статья для тех, кто хочет заставить Arduino отправлять СМС  через данный GSM модуль. Модуль NEOWAY M590 на базе чипа SIM900 подойдет для создания самодельной сигнализации, умного дома. Существует также альтернативный GSM модуль подключаемый напрямую к Arduino через 5 Вольт: Sim800L EVB v2.0

Постановка задачи

  • Используя только Arduino и GSM модуль управлять светодиодом посредством звонка с телефона.
  • Отправлять СМС (пока через команду поступающую через монитор порта в Arduino IDE)

 

Подключение к Arduino

Соединяем GSM модуль с Arduino.
5В модуля -> 5V Arduino
GND модуля -> GND Arduino
ТХ модуля -> digital pin2 Arduino
RX модуля -> digital pin3 Arduino
Распиновку можно посмотреть на фото. Порядок контактов такой: 1 - +5В, 2 - GND, 7 - TX, 8 - RX.

neoway m590 pins


Соединение NEOWAY M590 к АрдуиноСоединение NEOWAY M590 к Ардуино

Запитать модуль можно от 4В до 5В, я использовал 5 вольтовый выход.

Модуль требует отдельного питания, потому что потребляет в пике до 2А. Конденсатор скорей всего не спасет. Поэтому при запитке от Ардуино может не работать или глючить.

Землю Ардуино и модуля GSM при раздельном питании надо соединить, но сначала нужно мультиметром замерить напряжение между этими "землями". Некоторые компьютерные блоки питания имеют перепад потенциала на корпусе и земле USB до 100В. Ток там мизерный и убить не может, но уничтожить Ардуино или модуль GSM или то и другое вместе - запросто.

 

Скетч

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
int ch = 0;
int led = 13;
String val = "";

void setup() {
delay(2000); //время на инициализацию модуля  pinMode(led, OUTPUT);  digitalWrite(led, LOW);  Serial.begin(9600);  //скорость порта  Serial.println("GSM tester v1.0");  mySerial.begin(9600);  mySerial.println("AT+CLIP=1");  //включаем АОН  delay(100);  mySerial.println("AT+CMGF=1");  //режим кодировки СМС - обычный (для англ.)  delay(100);  mySerial.println("AT+CSCS=\"GSM\"");  //режим кодировки текста  delay(100); } void loop() {  if (mySerial.available()) {  //если GSM модуль что-то послал нам, то    while (mySerial.available()) {  //сохраняем входную строку в переменную val      ch = mySerial.read();      val += char(ch);      delay(10);    }    if (val.indexOf("RING") > -1) {  //если звонок обнаружен, то проверяем номер      if (val.indexOf("71234567890") > -1) {  //если номер звонящего наш. Укажите свой номер без "+"        Serial.println("--- MASTER RING DETECTED ---");        mySerial.println("ATH0");  //разрываем связь        digitalWrite(led, HIGH);  //включаем светодиод на 3 сек        delay(3000);        digitalWrite(led, LOW);  //выключаем реле      }    } else      Serial.println(val);  //печатаем в монитор порта пришедшую строку    val = "";  }  if (Serial.available()) {  //если в мониторе порта ввели что-то    while (Serial.available()) {  //сохраняем строку в переменную val      ch = Serial.read();      val += char(ch);      delay(10);    }    //mySerial.println(val); //передача всех команд, набранных в мониторе порта в GSM модуль    if (val.indexOf("sendsms") > -1) {  //если увидели команду отправки СМС      sms(String("hello world"), String("+71234567890"));  //отправляем СМС на номер +71234567890    }    val = "";  //очищаем  } } void sms(String text, String phone)  //процедура отправки СМС {  Serial.println("SMS send started");  mySerial.println("AT+CMGS=\"" + phone + "\"");  delay(500);  mySerial.print(text);  delay(500);  mySerial.print((char)26);  delay(500);  Serial.println("SMS send complete");  delay(2000); }

 

Проверка

  1. Подключаем Arduino (с подключенным к нему сотовым модулем) к компьютеру
  2. Заливаем скетч
  3. Открываем монитор порта и если все в порядке, то увидим следующую картину
    port1
  4. Пробуем сделать звонок с номера телефона, который прописали в скетче. На плате Ардуино включится светодиод на 3 секунды и в мониторе порта видим реакцию:
    port2
  5. Пробуем отправить СМС. Для этого набираем в мониторе порта текст sendsms и, если денег на счете достаточно и отправка оператором разрешена, то должно все получиться и увидим следующую картину:
    port3
    При успешной отправке выводится строка +CMGS: 13 (цифра 13 – порядковый номер исходящего сообщения, значит успешно ушло)

Дальше сами экспериментируйте. Можно подключить любой датчик (температуры, движения, влажности и т.д.) и при достижении отпределенного значения отправлять СМСку или делать звонок хозяину.

 

GPRS

В рассматриваемой версии модуля 1.30 поддержка GPRS урезанная. Мне не удалось подключиться к серверу по его DNS имени (например mysite.ru), получилось только по IP-адресу. В другом модуле SIM800L таких проблем не было.

 

Перечень некоторых AT команд:

AT+CMGF=1 Вкл. текстового режима (смс только латиницей)
AT+CSCS= "GSM" Вкл. режима
AT+CLIP=1 включение определения номера входящего звонка
Если отправить команду с 0, то определение номера отключится и модуль вместо номера вызывающего будет слать только сообщение "RING".
AT+CMGS="+79123456789" Отправка СМС
ATI Получить информацию об устройстве
AT+IPR=19200 настройка скорости порта
AT+GSN вернет IMEI модуля
AT+CCLK? считываем время с модуля
AT+CCLK=«yy/mm/dd,hh:mm:ss+zz» где по порядку идут  «год/месяц/дата,час:минуты:секунды+часовой пояс»  Данные обязательно отправляются с ведущими нулями, то есть, к примеру, если месяц у нас "4", то отправить должны "04". 
Получить обратно текущие время и дату можно отправив ту же команду, только со знаком "?":
AT+CMEE=0 уровень информации об ошибке. Может быть от 0 до 2.
0 - отключено. Будет просто писать ERROR.
1 -  код ошибки. Будет возвращать цифровой код ошибки.
2 -  описание ошибки. Напишет что именно ему не нравится в команде.
Для работы с модулем через терминал удобней режимы ATV1, ATE1 AT+CMEE=2, для общения с микроконтроллером лучше использовать ATV0, ATE0 и AT+CMEE=0 - так проще будет обрабатывать полученные ответы.
 Данные настройки не сохраняются после перезагрузки модуля, поэтому необходимо включать эти команды в код программы. 
AT+CSQ информация о качестве сигнала.
Модуль вернет два числа +CSQ: 17,0
17 - уровень сигнала. Может быть в диапазоне 0..31 или 99. Чем больше тем лучше, но 99 значит его отсутствие. 
0 - коэффициент ошибок связи (т.н. RXQUAL). Может быть от 0 до 7, чем число меньше тем качество связи лучше.
AT+COPS? информация об операторе, в сети которого зарегистрирован модуль
ATD+79121234567; набор номера. (";" обязательно)
Модуль позвонит по указанному номеру и вернет один из вариантов
BUSY - номер занят
NO DIALTONE - нет сигнала на линии
NO CARRIER - нет сети или другая проблема (например, нет денег на счету)
NA ANSWER - нет ответа 
CONNECT - есть контакт!
AT+CMGR=3,0 (3-номер сообщения, которое хотим прочитать, 0-изменить статус сообщения на прочитанный)
Комментарии  
0 # romster 14.10.2015 14:31
Цитирую Александр:
Спасибо огромное. Разобрался. Пишет теперь то что надо в мониторе порта.) Правда не звонит на номер и не уходят смс, но это я думаю из той же серии что симка не подходит, надо будет другую пробовать.

ЕЩЕ РАЗ, как решили проблему ?!
Ответить | Ответить с цитатой | Цитировать
-1 # Андрей 14.10.2015 19:31
спасибо за статью долго мучил этот девайс не хотел работать пока не подключил внешнее питание и все пошло
Ответить | Ответить с цитатой | Цитировать
0 # Евгений 24.10.2015 16:06
Подскажите в чем может быть проблема, залил скетч все норм, смс отправилась, а теперь все точно так же ничего не менялось, но в сериал порте теперь модуль отвечает каракулями. скорости пробывал всякие разные эффекта 0. странно, что работало , а потом перестало
Ответить | Ответить с цитатой | Цитировать
0 # Denisionix 26.10.2015 23:38
Вообще логические уровни (RT TX) у этого модуля 2.8 вольт. напрямую подключать его к 5 вольтам убийственно.
Ответить | Ответить с цитатой | Цитировать
-1 # Алексий 06.11.2015 02:13
Проблемы ваши решаются просто- Присмотритесь. У товарища КИТАЙСКИЙ ардуино на чипсете 341. Блок работает хорошо только на этом ардуино и на ардуино Мега. Остальные пытал-пытал и питание и всё на свете - чаще не работает нормально, к примеру не приходят смс.
Ответить | Ответить с цитатой | Цитировать
+1 # Сергей 21.11.2015 19:24
Модем отсылает сообщения по нажатию кнопки только при питании UNO от usb компа. При подключении на внешний блок питания 2А 5В сообщения не отправляются.
Подскажите в чем может быть проблема
Ответить | Ответить с цитатой | Цитировать
+1 # Евгений 22.11.2015 21:53
Соедините землю между Arduino и gsm-модуля.
Ответить | Ответить с цитатой | Цитировать
0 # Denisionix 23.11.2015 06:13
Надо соединить земли внешнего питания и питания от USB.
Ответить | Ответить с цитатой | Цитировать
+1 # Сергей 24.11.2015 17:12
Спасибо за помощь. С питанием все OK, шнур из компа переключался в блок питания 5В через USB.
Проблема решена путем установки паузы в 1 с в начале цикла загруски UNO. Возможно задержка инициализация модема при подачи питания.
Ответить | Ответить с цитатой | Цитировать
+1 # Алексей 22.11.2015 21:43
При питании от внешнего блока не работает терминал в ардуинке. Поэтому и не отправляет. Попробуйте закоментировать в скетче все, касаемое Serial.*
Ответить | Ответить с цитатой | Цитировать
+2 # Алексей 22.11.2015 21:50
Кстати, у меня модем пришел со скоростью 19200.
Попробовал переключить на 115200, сыплются ошибки.
Остановился на 38400, работает нормально...
Команда для смены скорости: AT+IPR=38400
Потом в скетче скорость тоже не забываем поменять.

И еще, кому нужет терминал через ардуинку:
#include
SoftwareSerial BTSerial(2, 3); // TX | RX
void setup()
{
Serial.begin(38400);
Serial.println('Enter AT commands:');
BTSerial.begin(38400);
}

void loop()
{
if (BTSerial.available())
Serial.write(BTSerial.read());
if (Serial.available())
BTSerial.write(Serial.read());
}
Ответить | Ответить с цитатой | Цитировать
0 # Станислав 28.11.2015 01:04
Подскажите пожалуйста как в sms выслать значение переменной. получаю переменную в "h" (температура с DHT11). Преобразовать строкой String a = atoi (h); и передавать значение "а" не получается. Выдает ошибку на операторе String.
Ответить | Ответить с цитатой | Цитировать
0 # Алексей 29.11.2015 12:31
плиииз!!! как получить смску))) ну могу понять как прочитать, если можно не пример, а лучше объяснить! в общем отослал на ардуино с какого нибудт телефона смс с текстом "ON1" и должен загореться светодиод пин 13.
Ответить | Ответить с цитатой | Цитировать
+1 # Олег 02.12.2015 12:34
Добрый день.
В данный момент собираю проэкт на м590. м590 подключена к arduino напрямую.
У меня все работает пока Arduino UNO R2 подключена к ноутбуку. Как только я подключаю её к аккумулятору либо к БП скетч не выполняется, гудки идут и все. Пробовал разные arduino. Если подключаю к ноутбуку все отлично.
Ответить | Ответить с цитатой | Цитировать
0 # Администратор 02.12.2015 12:38
Земля ардуины с аккумулятором общие ?
Ответить | Ответить с цитатой | Цитировать
0 # Олег 02.12.2015 13:28
подключена к обычному БП. 5v 1000ma. через стандартный разьем питания. Аккум подключал к тем же ногам что и м590. Земля у них одна. Модуль м590 подключен к ногам 5в и gnd на ардуине.
Ответить | Ответить с цитатой | Цитировать
0 # Олег 02.12.2015 13:37
Разобрался... таки да. Товарищь выше поставил задержку при инициализации на 1 сек. Я попробовал и помогло. Может стоит это добавить в статью.
зы: Статья супер. Мне очень помогла в освоении м590. Еще очень хочется научится передавать данные post'ом HTTP серверу посредством gprs. м590 так может. только у меня пока не получилось.
Ответить | Ответить с цитатой | Цитировать
0 # Администратор 02.12.2015 14:03
Спасибо, добавлю. Привычное GPRS соединение на этом модуле не совсем удобное. Адрес сервера только в виде IP адреса понимал и обмен не удобен. Гораздо удобней на модуле SIM800L.
Ответить | Ответить с цитатой | Цитировать
0 # Константин 02.12.2015 13:18
Замечательная статья. Мне нужно замутить включение отопления по смс "1", отключение по СМС "0", отправку смс с инфой по датчикам температуры и влажности по СМС "2".
Это для начала. Потом еще хочу чтобы свет включался... Ну и насколько фантазии хватит.
Начало буду делать на ДИГИСПАРК, а если перестанет хватать контактов, то на китайской ардуинке.
Думаю за месяц придет платка и начнутся вопросы)))
Ответить | Ответить с цитатой | Цитировать
0 # Станислав 03.12.2015 01:23
Добрый день! Опишу проблему поподробнее. Посоветуйте пожалуйста как отправить значение переменной "t" в строке sms. При такой строке выдает ошибку преобразования (String("TEMP", (t)), String("+71234567890"));. Я так понимаю что переменная "t" не строчный параметр. При попытке преобразовать String a = atoi (t); С последующей оправкой (String("TEMP", (a)), String("+71234567890")); выдает "ошибку преобразования". Подскажите пожалуйста где я допустил ошибку.
Ответить | Ответить с цитатой | Цитировать
0 # Алексей 03.12.2015 09:46
надо переменную t преобразовать в параметр String. он не может послать код, ему надо посылать текст, и запятую надо убрать
# define t "15"
sms("TEMP" t, "+7123456789");
Ответить | Ответить с цитатой | Цитировать
0 # Станислав 05.12.2015 21:26
Цитирую Алексей:
надо переменную t преобразовать в параметр String. он не может послать код, ему надо посылать текст, и запятую надо убрать
# define t "15"
sms("TEMP" t, "+7123456789");

SMS приходит "TEMP 15". Я что-то не правильно сделал?
Ответить | Ответить с цитатой | Цитировать
+1 # Алексей 03.12.2015 09:56
Спасибо огромное автору за статью! сделал автозапуск по звонку либо смс, с ответом о состоянии машины, и плюс к этому засунул туда еще управление заслонкой(карбюратор) по температуре и оборотам, модуль можно подключать и на ноги 3,4, ардуино. т.к. 2 нога используется для подсчета оборотов у меня. работает прекрасно на порту 38400. питание для модуля беру от обычной батарейки телефона) т.к. в офисе в основном писал программу.все это чудо засунул в arduno nano "mega 328" - кварц. вся плата, сервопривод, дуино, модуль обошелся(1000р). (мой первый проект) спасибо огромное за разжевывание.
Ответить | Ответить с цитатой | Цитировать
0 # Администратор 03.12.2015 10:50
//Или такой пример:
int val = 12;
String s = "Строка";
Serial.print(String(val) + s); //Соединили две строки плюсиком
Ответить | Ответить с цитатой | Цитировать
0 # Алексей 03.12.2015 11:55
только не могу понять, почему в терминале сама AT команда не пишется, потому что эхо не включил?
Ответить | Ответить с цитатой | Цитировать
0 # Администратор 03.12.2015 12:10
эхо по умолчанию включено. Проверьте проводки TX RX. один из них отправляет, другой получает данные.
Ответить | Ответить с цитатой | Цитировать
0 # Алексей 03.12.2015 19:33
так он все принимает и отправляет нормально, может у меня эхо выключено, он шлет ОК ОК ring и т.д.
Ответить | Ответить с цитатой | Цитировать
0 # андрей 13.12.2015 22:46
"Администратор 03.12.2015 07:10
эхо по умолчанию включено" можно поподробней про то как включается и выключается эхо? просто у меня идет отправка в терминал (serial), а отправки и ответы в myserial я не вижу. контроллер - leonardo. немного отличается. порты софтового (myserial в вашем коде) RX и TX оставил как у вас 2 и 3.
Ответить | Ответить с цитатой | Цитировать
0 # Администратор 15.12.2015 17:38
АТ команда "ATE0" - выключает эхо, "ATE1" включает.
Ответить | Ответить с цитатой | Цитировать
0 # Алексей 15.12.2015 18:02
так вы не разобрались как через интернет с ним работать?
Ответить | Ответить с цитатой | Цитировать
0 # Администратор 15.12.2015 18:07
Нет еще. Были заминки с подключением к серверу и отправкой данных и отложил этот вопрос. С модулем sim800l получилось с первого раза, там гораздо проще оказалось.
Ответить | Ответить с цитатой | Цитировать
0 # Алексей 15.12.2015 18:09
эх гуру, можно в ученики?
Ответить | Ответить с цитатой | Цитировать
0 # Иван 25.12.2015 12:20
Подскажите пожалуйста, а как сделать не сколько разрешенных номеров? Чтоб например с 3 разных номеров зажигался светодиод.
Ответить | Ответить с цитатой | Цитировать
0 # Олен 25.12.2015 12:23
:-) скопипастить либо процедуру сваять.
Ответить | Ответить с цитатой | Цитировать
0 # Администратор 25.12.2015 12:25
Поменять строку
if (val.indexOf("71234567890") > -1) {
на
if (val.indexOf("71234567890") > -1 || val.indexOf("79084567890") > -1 || val.indexOf("72277567890") > -1) {
знак двойной палки "||" - это "ИЛИ"
Ответить | Ответить с цитатой | Цитировать
0 # Иван 25.12.2015 17:11
а можно какой нибудь массив создать с базой номеров и искать нужный номер в массиве? какой тип массива использовать?
Ответить | Ответить с цитатой | Цитировать
0 # Роман 12.01.2016 17:22
А где взять такие провода?))
Ответить | Ответить с цитатой | Цитировать
0 # Администратор 12.01.2016 18:18
Можно в старом компьютере отковырять, можно у нас заказать (2150692.ru/product/view/14/56)
Ответить | Ответить с цитатой | Цитировать
0 # Роман 16.01.2016 18:08
Спасибо, все работает) :lol: а можно как нибудь сделать чтобы модуль сам звонил на указанный номер? И точно так же про выход в интернет, моя версия поддерживает gprs
Ответить | Ответить с цитатой | Цитировать
0 # сергей 20.01.2016 01:28
Всем привет!Может кто знает как отправить сообщение на русском языке? :-)
Ответить | Ответить с цитатой | Цитировать
0 # сергей 20.01.2016 01:30
Всем привет!может кто подскажет как отправить смс на русском языке?
Ответить | Ответить с цитатой | Цитировать
0 # Олег 21.01.2016 12:02
Покажите пожалуйста какой нибудь пример подключения датчика температуры. Что то разобраться не могу
Ответить | Ответить с цитатой | Цитировать
+3 # radioman 25.02.2016 13:22
Доброго дня, а подскажите корректно ли у Вас работает схема без преобразователя уровня TTL? В датише по M590E на 18 странице даже схема есть для 5V микроконтроллеров...
Ответить | Ответить с цитатой | Цитировать
+3 # Алексиус 30.03.2016 02:18
Скетч не полный) На счет смс:
В сетапе:
mySerial.println("ATE1");
mySerial.println("AT+CNMI=2,2");//если вместо "RING" написать "+CMT" то будет проверять не звонок, а смс с указанного телефона
В функции отправки смс:
mySerial.println("AT+CMGF=1");
delay(100);
mySerial.println("AT+CSCS=\"GSM\"");
delay(100);
Serial.println("SMS send started");

----
Иначе не отправит смс)
Ответить | Ответить с цитатой | Цитировать
0 # Александр 03.11.2016 17:39
fа у меня скейч ошибку компиляции бъёт
Ответить | Ответить с цитатой | Цитировать
+3 # mummykbf 08.11.2016 04:46
Господа, добрый вечер.
Подкиньте кусочек кода как из считанного времени с модуля по команде AT+CCLK? присвоить объявленным переменным hour и minute часы и минуты соответственно?
Ответить | Ответить с цитатой | Цитировать
0 # Вова 03.12.2016 22:14
Как известно Arduino Nano имеет лишь один Serial подключенный к выходам(пинам) D0(30) (RX) и D1(31) (TX). И через этот Serial подключен внутренний UART-USB(FT232RL) через который мы с помощью компьютера записываем прошивку. Но вот беда когда я хочу одновременно работать с вторичным устройством через TTL и делать отладку прошивки.

Один из вариантов решить проблему:
SoftwareSerial на другие порты
В скече создаем свой Serial_2 и пользуемся им как обычно.
Код:
#include

SoftwareSerial Serial_2(11, 12); // RX, TX

void setup()
{
Serial.begin(57600); // стандартный

Serial_2.begin(4800); // новый на другой скорости
Serial_2.println("Hello, world?");
}

void loop()
{

}
Ответить | Ответить с цитатой | Цитировать
+1 # nig 09.12.2016 19:50
спасибо. из всего, что прочитал за неделю самое понятное. заработало сразу в тестовом режиме.
Ответить | Ответить с цитатой | Цитировать
0 # iron 11.12.2016 16:03
Скажите пожалуйста, как прописать несколько номеров в этом месте:
if (val.indexOf("RING") > -1) { //если звонок обнаружен, то проверяем номер
if (val.indexOf("71234567890") > -1) { //если номер звонящего наш. Укажите свой номер без "+"
Ответить | Ответить с цитатой | Цитировать
+2 # Администратор 11.12.2016 17:50
Во вторую строку через оператор ИЛИ (две вертикальные палки ||) дописать проверку второго номера:
if (val.indexOf("71234567890") > -1 || val.indexOf("79125656565") > -1) { //
Ответить | Ответить с цитатой | Цитировать
0 # iron 11.12.2016 18:19
Спасибо большое- всё заработало как надо.
Ответить | Ответить с цитатой | Цитировать
0 # Евгений 17.12.2016 00:57
Доброго времени суток! Господа!.
при компиляции скетча постоянно ругается на строчку:
sms(String("hello world"), String("+71234567890"));
""exit status 1
'sms' was not declared in this scope"".
Если её (строчку блокировать) то работает, но смс-ку не отправляет.
Подскажите, в чём касяк
Ответить | Ответить с цитатой | Цитировать
0 # Евгений 18.12.2016 23:55
Кажется разобрался
Ответить | Ответить с цитатой | Цитировать
0 # Александр 12.01.2017 19:47
Евгений, ну и как вы разобрались? У меня аналогичная проблема.
Ответить | Ответить с цитатой | Цитировать
0 # Евгени 12.01.2017 20:10
Перед компиляцией создаю каждый раз новый скетч, с копированием туда старого, и так далее. Иногда не хватает или лишний знак окончания цикла { или }.
Ответить | Ответить с цитатой | Цитировать
0 # андрей 18.12.2016 20:12
подскажите пожалуйста скетч работает только при подключении к ПК и открытии монитор парта. Как только сбрасываешь питание и подкл.внешний источник перестает работать.Даже если подключаешь по USB к ПК не работает, пока не откроешь монитор порта и вуаля все снова работает
Ответить | Ответить с цитатой | Цитировать
0 # Евгений 06.01.2017 17:11
Андрей. По питанию ардуинку и модуль объединили?
Ответить | Ответить с цитатой | Цитировать
0 # Алексей 12.01.2017 17:02
уже третий день мучаюсь с данным модулем. В первое подключение с питанием от ардуины циклично писал Modem sturtup, иногда между этими ответами в терминале успевал отвечать на ат команды. Однако после экспериментов с разными скетчами перестал отвечать совсем. Попробовал запитать от аккумулятора на 4, 2 вольта - получил частоту мигания светодиода в 1 гц, но ответа также нет. Только после всех экспериментов стал глючить ардуино - перестал перезаписывать скетчи. Уже и не знаю, что с этой фигней делать.Может, подскажете чего, буду благодарен
Ответить | Ответить с цитатой | Цитировать
0 # Евгени 12.01.2017 20:05
День добрый! Что то было подобное с модулем. Дунька вроде не глючила. Проблема у меня была в том, что в месте подключения антенки, сама антенка от вращения замыкала на рядом стоящие контакты. Проверьте монтаж и пропайку. В моём блоке хреново работает АОН, но по команде Дуньки СМСки отправляет. У меня питание от 5V, (-) нужно объединить (соединить). Скорость порта 115200.
Ответить | Ответить с цитатой | Цитировать
0 # Алексей 12.01.2017 22:47
В смысле общий вывод питания и ардуиновский объединить? не вращается, пропаяно все хорошо. Начал так глючить после экспериментов с разными скетчами.к питанию параллельно подключен конденсатор на 1000 мкФ. В самый первый раз работал на 9600, на остальные скорости вообще не откликается
Ответить | Ответить с цитатой | Цитировать
0 # Евгений 13.01.2017 11:21
(-) питания ардуирки и модуля. У меня ардуино нано пит. по USB. Модуль пит. от "MB-102 Solderless" 5V. Конденсаторы не подключал. Устойчиво работает на скр.115200. (скр. и в скетче и в мониторе порта). А кнопка сброса на ардуино не помогает?
Ответить | Ответить с цитатой | Цитировать
0 # Алексей 13.01.2017 15:32
На ресет не реагирует. Все это время светодиод L тупо горит, при нажатии на сброс не реагирует, после отпускания кнопки 3 раза мигает. Заметил, что после отключения модуля от ардуино, ардуино через некоторое время оживает.
Ответить | Ответить с цитатой | Цитировать
0 # Алексей 13.01.2017 17:49
После согласования общих выводов устройств и подключения конденсатора на 3300 мкФ через терминал начал отвечать на ат команды. Перетащив выводы 2, 3 с ардуино на макетную плату перестал глючить. Скетч еще не пробовал заливать, но уже стало повеселее)
Ответить | Ответить с цитатой | Цитировать
0 # Aleksey 13.01.2017 13:38
При определении звонка пишит вот

RINGCЎCЎҐ(*
ҐєК’Љ‚’‚’ЄК‚b‰ўЄbbbbЉj
Ответить | Ответить с цитатой | Цитировать
0 # Евгений 13.01.2017 16:02
меняйте скорость порта. (в мониторе и в скетче)
Ответить | Ответить с цитатой | Цитировать
0 # Николай 13.01.2017 16:39
резисторы для TX/RX на 1кОм можно попробовать. На SIM800L по даташиту они рекомендованы.
Ответить | Ответить с цитатой | Цитировать
0 # Aleksey 13.01.2017 18:18
и все скорости перебрал и резисторы вешал. Причем с начало норм а потом вот так. В чем причина?
Ответить | Ответить с цитатой | Цитировать
0 # Андрей 28.01.2017 21:45
NEOWAY M590 полный отстой.Купитe sim800l и забудете о танцах с бубнами.Цена вопроса ничтожна.
Ответить | Ответить с цитатой | Цитировать
0 # Андрей 28.01.2017 21:50
А статья на отлично!Спасибо Автору.
Ответить | Ответить с цитатой | Цитировать
0 # Александр 07.02.2017 12:28
Все собрал скетч залил, модуль запитал от 3-х батареек ААА земли соединил светодиод на модуле один горит постянно один мигает , пишет начальную фразу
GSM tester v1.0 и на следующей строке смесь букв, на звонок не реагирует, при отправке смски выдает две фразы
SMS send started
SMS send complete
и опять смесь букв (но поменьше), что бы такое могло быть :cry:
Ответить | Ответить с цитатой | Цитировать
+1 # Евгений 07.02.2017 13:41
"смесь букв" у меня возникает из-за скоростей порта. У меня в скетче 115200 и в мониторе порта также. Строчка " sms(String("hello world"), String("+71234567890")); //отправляем СМС на номер +71234567890" - не потерялась?
Ответить | Ответить с цитатой | Цитировать
0 # александро 08.02.2017 09:50
Ура !!! Спасибо заработало
Ответить | Ответить с цитатой | Цитировать
0 # Александр 09.02.2017 12:56
Работает очень нестабильно то шлет СМС, то не шлет то при включении монитора все нормально, каракули пишет какие-то в чем причина, подскажите...., а то сигнализацию на таком у...ще делать неайс... :cry:
Ответить | Ответить с цитатой | Цитировать
0 # Иван 09.02.2017 14:53
У меня сигналка на таком работает безотказно уже 4 месяца, ни одного сбоя. Собирал по этой схеме:
http://mysku.ru/blog/ebay/43282.html
Ответить | Ответить с цитатой | Цитировать
0 # Дмитрий 19.02.2017 23:45
Суперская статья. Решила 75% моих вопросов по работе с модулем. И особенно парсинг строки. Спасибо.
Ответить | Ответить с цитатой | Цитировать
0 # Кирилл Романов 08.04.2017 18:09
Тоже столкнулся со скоростями, прописал в скетче 115200 и в мониторе - Но продолжало не работать, пока не повесил землю внешнего питания GSM-модуля на землю Arduino
Ответить | Ответить с цитатой | Цитировать
0 # Николай 31.10.2017 12:22
Все запустилось, однако постоянно в мониторе порта вспыхивает эта строка

MODEM:STARTUP

В чем может быть проблема? Не соединятется с оператором связи? Не подходит сим карта? ....

Эти команды работают
AT+CLHP=1
OK
AT+CMGF=0
OK
AT+CSCS="GSM"
OK
Ответить | Ответить с цитатой | Цитировать
0 # Николай 31.10.2017 15:41
Решено, питание увеличено до 6,4 вольта
Ответить | Ответить с цитатой | Цитировать
0 # Max 02.02.2019 05:02
Цитирую Николай:
Все запустилось, однако постоянно в мониторе порта вспыхивает эта строка

MODEM:STARTUP

В чем может быть проблема? Не соединятется с оператором связи? Не подходит сим карта? ....

Эти команды работают
AT+CLHP=1
OK
AT+CMGF=0
OK
AT+CSCS="GSM"
OK

Попробуй возле окна. Антенна слабая.
Ещё при соединении, он жрёт до 2 ампер. Я поставил конденсатор на 1000 мф на блок питания 750 мА, и все заработало.
Ответить | Ответить с цитатой | Цитировать
0 # arsenaleli 28.01.2018 22:17
а такого не было ни у кого

GSM tester v1.0
kccj?kRKRC?kScJJXC?

помогите если кто сможете
Ответить | Ответить с цитатой | Цитировать
0 # Ana Ramos 25.07.2018 22:04
GSM модуль используется для расширения возможностей обычных плат Ардуино – отправка смс, совершение звонков, обмен данными по GPRS. Существуют различные виды модулей, наиболее часто используемые — SIM900, SIM800L, A6, A7.
Ответить | Ответить с цитатой | Цитировать
0 # Max 02.02.2019 04:57
А 3 номера можно записать? Я пробовал вставлять через запятую и все перестало работать. Может надо как то иначе записывать?
Ответить | Ответить с цитатой | Цитировать
0 # Ivan Lutsenko 31.03.2019 00:04
Здравствуйте. Подскажите пожалуйста. В чем может быть проблема. Модуль в целом работает по скетчу. Отправляет СМС и принимает звонок. Но почему-то не могу выполнить ни одной АТ команды. К примеру, перемыкаю RST и GND. Подключаю к 0 и 1 выводам. Включаю Юсб. Включаю питание модуля. Что в терминале, что в Айдие ардуины, пишет Модуль стартует, потом +PBREADY и все. Тишина. Пишу AT или ATI, при нажатии из колонок идет звук динь но реакции от модуля нет. При попытке позвонить на модуль,выводится ring. Вчем причина, почему не могу командами управлять. Повторюсь, в скетче так же все работает.
Ответить | Ответить с цитатой | Цитировать
0 # Ivan Lutsenko 06.04.2019 18:35
Разобрался. Чтоб не гореть в аду, расскажу. Все оказалось рабочим, но так как работаю с подобным интерфейсом впервые, вычитал о том что провода RX - TX нужны максимально короткими. Укоротил до 4-5см, сразу все заработало. Ваш скетч что в шапке сразу переделал на: Звоним на модуль. Модуль встает на "охрану" Ардуинка отслеживает температуру. Ниже заданной температуры рассылает смс о том что потух котел в моем случае. Дальше буду подключать датчики движения PIR.
Ответить | Ответить с цитатой | Цитировать
Добавить комментарий