Блок пользователя для работы с GSM

Создаем свой блок. Вопросы, помощь знатоков.
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#61

Сообщение Слимпер » 04.08.2016{, 12:03}

Судя по эхо ответу, команда просто переделается не правильно, как то не так символ # Передается.
Толи терминал косячит, то ли что.
Ладно буду думать

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#62

Сообщение Слимпер » 04.08.2016{, 12:41}

Нашел тут интересную тему 
Работа с GSM модулем. Отправляем сообщения по русски. PDU coder

Вот и стало интересно будет ли это работать, на пробу сделал блок, на основе статьи, чисто для проверки такой возможности.
Вложения
PDU.flp
(76.25 КБ) 89 скачиваний

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#63

Сообщение Слимпер » 05.08.2016{, 04:32}

Странно у меня при эмуляции нормально работает.
Ладно пошел дальше читать.
Пока перерыв, походу надо писать нормальный парсер AT команд.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#64

Сообщение Слимпер » 06.08.2016{, 05:51}

НовыйUser писал(а):если подать AT+CUSD=1,"#100#",15 то ответ идет кириллицей закрытой под знаки вопроса...т.е *100# в приоритете...
Хорошо, значит работает, главное мне разобраться почему код с реальным объектом не сработал.

П.С. Возможно у меня GSM модуль появится на той недели, спросил у брата, говорит вроде покупал, обещал поискать. А пока для тестов работы с AT командами вообще подключил ESP8266.

Аватара пользователя
Vitez
Сержант
Сообщения: 211
Зарегистрирован: 08.11.2015{, 14:32}
Репутация: 4

Блок пользователя для работы с GSM

#65

Сообщение Vitez » 06.08.2016{, 17:01}

Вот, еще пища для размышления :-)
http://arduinolab.pw/index.p....dmon-ru

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#66

Сообщение Слимпер » 07.08.2016{, 09:42}

НовыйUser, По пробуй новый вариант, надеюсь заработает хотя бы часть :)

При проблемах с балансом можешь пробовать подставить другой вариант запроса в функции  balance_S в строке AT_Command("ATD#100#",2 ) ;

Добавлено (07.08.2016, 09:42)
---------------------------------------------
Vitez писал(а):Вот, еще пища для размышления :-)http://arduinolab.pw/index.p....dmon-ru
Вот еще похожая GSM модуль NEOWAY M590 – GPRS команды
Тема интересная, я и сам ее видел уже, но:
1 даже это еще нормально не заработало,
2 я плохо знаю  интернет технологии,
3 надо свой проект доделать. Делаю Лабораторный блок питания.

Как резюме, возможно и займусь но точно позже.
Вложения
m590_mega2560_T.ubi
(327.88 КБ) 75 скачиваний
Последний раз редактировалось Слимпер 07.08.2016{, 09:33}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#67

Сообщение Слимпер » 08.08.2016{, 05:07}

Главное, что часть заработало, значит механизм, АТ команда - анализ у меня худо бедно заработал. :D
НовыйUser писал(а):ошибок тоже вроде не регистрирует..
Нюанс, ошибки появляются только на один программный цикл, так что их надо ловить.
Может это и не правильно, надо подумать.
НовыйUser писал(а):при звонке отсчет numbercall начинается с нуля. т.е 3 гуда в телефоне слышно но регистрируются на выходе как 2первый гудок - 0
второй - 1
третий - 2
___________
Ну это поправлю тут проблем нет.
Так как сейчас нормально или надо при разрыве соединения сбрасывать их число в ноль. 

С балансом еще посмотрю.
НовыйUser писал(а):не работает ответная СМС .... видно что приходит... но обратно не шлет (баланс самого номера телефона не меняется при мониторинге ) ошибок тоже вроде не регистрирует..при маркировки релюхами выход gosms - реле щелкают.
Вот смс не понятки, попробуй напрямую отправить команды :

AT+CMGS=“+79000000001”$0D
TEST SMS$1A
Просто, фигурирует в описания приглашение "> ", возможно при моем подходе (без пауз) необходимо его дожидаться.
Последний раз редактировалось Слимпер 08.08.2016{, 05:10}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#68

Сообщение Слимпер » 08.08.2016{, 12:37}

В рабочем блоке при старте идут команды
AT+CMGF=1$0D$0A
AT+CSCS="GSM"$0D$0A
AT+CNMI=2,2,0,0,0$0D$0A
AT+CLIP=1$0D$0A

При отправки СМС :
AT+CMGF=1$0D
AT+CMGS=“+79000000001”$0D$0A
TEXT SMS$0D$0A
$1A$0D$0A

Так то хоть сработает?

Аватара пользователя
dekorator
Лейтенант
Сообщения: 427
Зарегистрирован: 06.09.2015{, 09:39}
Репутация: 7
Откуда: Баку

Блок пользователя для работы с GSM

#69

Сообщение dekorator » 08.08.2016{, 12:56}

Как-то работал сNextion hmi. Там надо было отправлять строку
" например такую". Arduino ide мутило от кавычек -"

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#70

Сообщение Слимпер » 08.08.2016{, 13:02}

НовыйUser писал(а):та жа ошибка отправки...
Странно, я вроде код программы из print println, перевел в строки и завершающие символы.
А каким терминал сейчас пользуешься? 

Ладно, если не горит, отложим на пару тройку дней, там глядишь у меня модуль появится.
А я пока другими делами займусь.

Аватара пользователя
stapmoff
Лейтенант
Сообщения: 341
Зарегистрирован: 16.05.2016{, 10:21}
Репутация: 4

Блок пользователя для работы с GSM

#71

Сообщение stapmoff » 08.08.2016{, 20:23}

НовыйUser писал(а):нужны еще тестеры
Я бы помог, но у меня UNO 3.И модуль SIM800L Кстати этот модуль более стабилен чем 590
Последний раз редактировалось stapmoff 08.08.2016{, 20:29}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#72

Сообщение Слимпер » 09.08.2016{, 07:10}

stapmoff писал(а):Я бы помог, но у меня UNO 3.И модуль SIM800L Кстати этот модуль более стабилен чем 590
Ну как я писал выше на пару дней перерыв, может у меня модуль появится, будет проще.

Но для проверки совместимости модулей переделал проект и того сообщения, что со слов НовыйUser, работает оправка и прием СМС, под вариант SoftwareSerial. Попробуйте мне пока даташит на SIM800L читать не охота, но походу основные AT команды GSM должны быть одинаковы.
Вложения
6166790.flp
(340.98 КБ) 89 скачиваний

Аватара пользователя
stapmoff
Лейтенант
Сообщения: 341
Зарегистрирован: 16.05.2016{, 10:21}
Репутация: 4

Блок пользователя для работы с GSM

#73

Сообщение stapmoff » 09.08.2016{, 08:12}

После отправки смс в терменаале отображается следующее

Изображение

Ответ от модуля

Изображение

Входящий звонок сбрасывает сразу
Последний раз редактировалось stapmoff 09.08.2016{, 10:52}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#74

Сообщение Слимпер » 09.08.2016{, 18:23}

stapmoff писал(а):После отправки смс в терменаале отображается следующее
Ну значит работает как и должно. 

Вот на ваял еще один вариант. 
НовыйUser, Тебе прилагаю  только пользовательский блок.
stapmoff, Вам простенький проект "test_12_Soft"

Тестировал только на макетки, без модуля.

Провел работу по оптимизации кода, вроде стал по меньше и не должен так сильно разбухать, при расширение функционала.
Хотя и сейчас для UNO он становится тяжеловат :
8 806 bytes (27%) of program storage space. Global variables use 342 bytes (16%)
Но у меня закончились идеи как его еще уменьшить.
Вложения
test_12_Soft.flp
(568.87 КБ) 68 скачиваний
m590_mega2560_N.ubi
(332.95 КБ) 64 скачивания

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#75

Сообщение Слимпер » 09.08.2016{, 19:58}

НовыйUser писал(а):надо ли нулить или оставлять...даже пока не знаю..
Вот и я не знаю.
НовыйUser писал(а):- TEXTSMSinfo: ???? ??????? ?? после каждого звонка и автосброса
Походу СМС приходит типа "Вам звонил...."
НовыйUser писал(а):- баланс через TON не работает...
С балансом не знаю, что делать пока.
НовыйUser писал(а):за исключением того что каждое срабатывание модема...включая звонок на номер наглухо сносит датчик движения и он срабатывает ))
Это про что речь? 

А вообще из идей, что надо еще реализовать, пока только возможность перезапуска модуля, на случай зависания, но что до как делать это правильно не знаю. Пока была идея убрать команды из секции Setup, и сделать отдельный вход инициализации.

Ну и отдельная тема СМС на PDU, то есть на русском, это уже на потом, если вообще получится.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#76

Сообщение Слимпер » 09.08.2016{, 20:29}

stapmoff, в соседней теме Работа с SIM800L запрос температуры и влажности по смс в сообщении №14 выкладывал проект. Там фигурировала проверка баланса таким кодом
AT+CUSD=1,\"#100#\" , можно и так попробовать.

Добавлено (09.08.2016, 20:29)
---------------------------------------------
НовыйUser писал(а):а их убирать для чего ? (переход от задержек я всецело за...)вход инициализации всмысле для подачи АТ команд?
убрать из секции Setup :
delay(50);
Serial100.println("AT+CMGF=1");
delay(50);
Serial100.println("AT+CSCS=\"GSM\"");
delay(50);
Serial100.println("AT+CNMI=2,2,0,0,0");
delay(50);
Serial100.println("AT+CLIP=1");
delay(50);
Serial100.println("ATE0");
delay(50);

И сделать выдачу этих команд с проверкой результата по сигналу на вход, а уже заготовку делал, смотри функцию  setup_comand в блоке.
Последний раз редактировалось Слимпер 09.08.2016{, 20:30}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#77

Сообщение Слимпер » 10.08.2016{, 07:16}

НовыйUser писал(а):надо допилить этот баланс
А вообще комбинация \" -это только для arduino  команды print (println), так как там кавычки играют свою роль. Если шлешь команды из терминала то знак \ надо убирать.

Цитат с приведенной вами стать:

Команды приведены для текстового режима и в GSM кодировке.

AT+CUSD=1,"#100#"   +CUSD: 0,"Balance:240,68r ", 

   USSD запрос
Первый параметр – режим обработки операции:
0 – выполнить запрос, ответ проигнорировать
1 – выполнить запрос, вернуть ответ
2 – отменить запрос
Второй параметр – запрос в кавычках.

ATD#100#;    +CUSD: 0,"Balance:240,68r ",

Упрощенный USSD запрос (работает только при GSM 
кодировке)

Отмечу, что есть 2 варианта USSD запроса: начиная с * и начиная с #. В первом варианте ответ приходит на русском языке, во втором в латинице, если оператор такой запрос поддерживает и не ответит так же, как и в первом случае.
Режим отображения такой же, как и для СМС.

Правда даташите М590 формат команды:
AT+CUSD=<n>,<str>,<dcs>
Syntax <n>:
-0:not display back code
-1:display back code
-2:cancel the request
<str>:
string type:USSD string,USSD string,please use ASCII code.
<dcs>:
integer type,it is suggesti to use 15.


По этому получается, что для терминал надо пробовать
AT+CMGF=1
AT+CSCS="GSM"
А затем уже 
AT+CUSD=1,"#100#" 
или 
ATD#100#

А в блоке 
AT+CUSD=1,\"#100#\" 
или
ATD#100#

Лучше оставлю пока, может когда будет модуль, что пойму.


Добавлено (10.08.2016, 07:16)
---------------------------------------------
НовыйUser писал(а):не совсем понимаю для чего двойка ?AT_Command("ATD#100#",2 ) ;
Ну это параметры в моей функции AT_Command
1-передать команду функцией print()
2-передать команду функцией println()
3- передать команду функцией print(), а за тем отдельно передать  println((char)26)

Аватара пользователя
stapmoff
Лейтенант
Сообщения: 341
Зарегистрирован: 16.05.2016{, 10:21}
Репутация: 4

Блок пользователя для работы с GSM

#78

Сообщение stapmoff » 11.08.2016{, 07:39}

Сегодня вечерком буду тестить! Сразу отпишу что как!

Добавлено (11.08.2016, 07:39)
---------------------------------------------
И так результаты следующие!
Изображение

Надпись svonok stop появляется сразу после включения, при проверке баланса, баланс не прилетает. на смс, ответ присылает корректно, гудки считает, звонок сбрасывает. Не показывает текс сообщения. При отсутствии сим, все равно меряет сигнал, но надпись NET пропадает! Вместо надписи NET лучше выводить оператора мне кажется)) командой AT+COPS? Если вставить сим обратно в слот, появляется ошибка 3 и сразу 0. Почему сразу 0?? Мне кажется если 3 то 3 исли 0 то 0 если 5 то 5 до прихода следующей команды опроса на ошибки! NET так и не показал валилась ошибка 3 и сразу 0 пока не ребутнул дуину. Мне кажется блок работает только с заведенным модемом и чтоб тот уже поймал сеть, пробовал запустить модем и дуину одновременно, вываливается ошибка 3 и сразу ноль итак до бесконечности, хотя модем сеть уже поймал!
Но то, что происходит опрос модема на ошибки - это уже радует))!

Что еще хочу сказать по поводу баланса, когда делал свой проэкт, заметил, что при запросе баланса, сам баланс не всегда приходит, видимо сеть такая незнаю!
Последний раз редактировалось stapmoff 11.08.2016{, 10:02}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Блок пользователя для работы с GSM

#79

Сообщение Слимпер » 11.08.2016{, 12:13}

stapmoff писал(а):Надпись svonok stop появляется сразу после включения, при проверке баланса, баланс не прилетает. на смс, ответ присылает корректно, гудки считает, звонок сбрасывает. Не показывает текс сообщения. При отсутствии сим, все равно меряет сигнал, но надпись NET пропадает! Вместо надписи NET лучше выводить оператора мне кажется)) командой AT+COPS? Если вставить сим обратно в слот, появляется ошибка 3 и сразу 0. Почему сразу 0?? Мне кажется если 3 то 3 исли 0 то 0 если 5 то 5 до прихода следующей команды опроса на ошибки! NET так и не показал валилась ошибка 3 и сразу 0 пока не ребутнул дуину. Мне кажется блок работает только с заведенным модемом и чтоб тот уже поймал сеть, пробовал запустить модем и дуину одновременно, вываливается ошибка 3 и сразу ноль итак до бесконечности, хотя модем сеть уже поймал!Но то, что происходит опрос модема на ошибки - это уже радует))!

Что еще хочу сказать по поводу баланса, когда делал свой проэкт, заметил, что при запросе баланса, сам баланс не всегда приходит, видимо сеть такая незнаю!
Ну по порядку, надписи которые сыпятся в терминал, это уже внешняя обвязка блока, и тут надо ее под себя настраивать. Например в том файле что я вам послал, вывода текста смс в терминал вообще нет.
Надпись NET, означает, что модем "Зарегистрирован в домашней сети", и сигнал битовый.
Меряет сигнал это странно, хотя если значение -120, то это тоже значит нет сигнала.

Да сейчас все ошибки выскакивают ровна на один программный цикл, вот их перечень

0- норма;
1 - Ошибка в ответ на команду
2 - Нет ответа от модуля при отправки команды
3 - Неверный ответ
4 - модуль не готов
5 - нет регистрации в сети
10 - недопустимый номер для отправки СМС
Зеленым еще не реализовано.

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

И да сейчас инициализация модуля сделана через секцию Setup, а это значит, что питание на модуль и  ардуину надо подавать одновременно. Но уже сейчас начал доработку чтобы можно было его инициализировать по команде.

Вот сейчас собрал модуль включил, на команды отвечает, но в сети пока что не регится.
Отогнул антенну вертикально и заработал.
Буду дальше его мучить.
Последний раз редактировалось Слимпер 11.08.2016{, 12:24}, всего редактировалось 1 раз.

Аватара пользователя
stapmoff
Лейтенант
Сообщения: 341
Зарегистрирован: 16.05.2016{, 10:21}
Репутация: 4

Блок пользователя для работы с GSM

#80

Сообщение stapmoff » 11.08.2016{, 12:24}

Слимпер писал(а):и сразу ее сбросил
Не надо сбрасывать! Вылезла ошибка, я ее сравнил и например на дисплей вывел что это за ошибка!
Слимпер писал(а):Надпись NET, означает, что модем "Зарегистрирован в домашней сети", и сигнал битовый.
Это понятно, я написал все что наблюдал)
Слимпер писал(а):Меряет сигнал это странно, хотя если значение -120, то это тоже значит нет сигнала.
Нет -120 не было, как на скрине -83  -85 и так далее

Ответить

Вернуться в «Разработка пользовательских блоков»