FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Понедельник, 05.12.2016, 19:33
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 8 из 36«126789103536»
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Блок пользователя для работы с GSM (SIM 900 и М590)
Блок пользователя для работы с GSM
stapmoff Дата: Понедельник, 08.08.2016, 20:23 | Сообщение # 106
Майор
Группа: Проверенные
Сообщений: 154
Награды: 0
Репутация: 0
Статус: Offline
Цитата НовыйUser ()
нужны еще тестеры
Я бы помог, но у меня UNO 3.И модуль SIM800L Кстати этот модуль более стабилен чем 590


Сообщение отредактировал stapmoff - Понедельник, 08.08.2016, 20:29
 
Слимпер Дата: Вторник, 09.08.2016, 07:10 | Сообщение # 107
Генерал-лейтенант
Группа: Проверенные
Сообщений: 671
Награды: 26
Репутация: 23
Статус: Offline
Цитата stapmoff ()
Я бы помог, но у меня UNO 3.И модуль SIM800L Кстати этот модуль более стабилен чем 590
Ну как я писал выше на пару дней перерыв, может у меня модуль появится, будет проще.

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

Прикрепления: 6166790.flp(341Kb)
 
stapmoff Дата: Вторник, 09.08.2016, 08:12 | Сообщение # 108
Майор
Группа: Проверенные
Сообщений: 154
Награды: 0
Репутация: 0
Статус: Offline
После отправки смс в терменаале отображается следующее



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



Входящий звонок сбрасывает сразу


Сообщение отредактировал stapmoff - Вторник, 09.08.2016, 10:52
 
Слимпер Дата: Вторник, 09.08.2016, 18:23 | Сообщение # 109
Генерал-лейтенант
Группа: Проверенные
Сообщений: 671
Награды: 26
Репутация: 23
Статус: Offline
Цитата stapmoff ()
После отправки смс в терменаале отображается следующее
Ну значит работает как и должно. 

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

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

Провел работу по оптимизации кода, вроде стал по меньше и не должен так сильно разбухать, при расширение функционала.
Хотя и сейчас для UNO он становится тяжеловат :
8 806 bytes (27%) of program storage space. Global variables use 342 bytes (16%)
Но у меня закончились идеи как его еще уменьшить.
Прикрепления: m590_mega2560_N.ubi(333Kb) · test_12_Soft.flp(569Kb)
 
НовыйUser Дата: Вторник, 09.08.2016, 19:33 | Сообщение # 110
Подполковник
Группа: Проверенные
Сообщений: 270
Награды: 1
Репутация: 2
Статус: Offline
Цитата Слимпер ()
овыйUser, Тебе прилагаю  только пользовательский блок.


результаты тестов:

+ обратное смс работает

-кол-во звонков правильно, но по окончанию нет сброса в 0. остается цифра NUMBERCALLinfo: 4
надо ли нулить или оставлять...даже пока не знаю..

- TEXTSMSinfo: ???? ??????? ?? после каждого звонка и автосброса

- баланс через TON не работает...

всо остальное работает отлично...
за исключением того что каждое срабатывание модема...включая звонок на номер наглухо сносит датчик движения и он срабатывает ))

Добавлено (09.08.2016, 19:33)
---------------------------------------------
Цитата stapmoff ()
следующее


протестируй запрос баланса


Сообщение отредактировал НовыйUser - Вторник, 09.08.2016, 19:41
 
Слимпер Дата: Вторник, 09.08.2016, 19:58 | Сообщение # 111
Генерал-лейтенант
Группа: Проверенные
Сообщений: 671
Награды: 26
Репутация: 23
Статус: Offline
Цитата НовыйUser ()
надо ли нулить или оставлять...даже пока не знаю..
Вот и я не знаю.
Цитата НовыйUser ()
- TEXTSMSinfo: ???? ??????? ?? после каждого звонка и автосброса
Походу СМС приходит типа "Вам звонил...."
Цитата НовыйUser ()
- баланс через TON не работает...
С балансом не знаю, что делать пока.
Цитата НовыйUser ()
за исключением того что каждое срабатывание модема...включая звонок на номер наглухо сносит датчик движения и он срабатывает ))
Это про что речь? 

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

Ну и отдельная тема СМС на PDU, то есть на русском, это уже на потом, если вообще получится.
 
НовыйUser Дата: Вторник, 09.08.2016, 20:19 | Сообщение # 112
Подполковник
Группа: Проверенные
Сообщений: 270
Награды: 1
Репутация: 2
Статус: Offline
Цитата Слимпер ()
Это про что речь? 


у меня компот намешан из плат и датчиков очень близко на 14 см площади и антенна модуля вносит дикие глюки на датчик движения... сейчас буду думать над экранированием или выносом антенны... :)

сотня смс потрачена на отладку всей схемы...пока не отодвинул ДД и все глюки прошли :)

Цитата Слимпер ()
перезапуска модуля, на случай зависания,


сейчас так же задумываюсь над этим решением.... это нужно...но без пайки тут скорее не обойтись...почитаю варианты в интернете, и по итогу сюда инфу скину..

Цитата Слимпер ()
Пока была идея убрать команды из секции Setup, и сделать отдельный вход инициализации.


а их убирать для чего ? (переход от задержек я всецело за...)

вход инициализации всмысле для подачи АТ команд?

Цитата Слимпер ()
Вот и я не знаю.


оставим пока. входе дегустации блока решение найдется... :)

Цитата Слимпер ()
С балансом не знаю, что делать пока.


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

каждое обновление блока смотрю содержимое...
работа грандиозная....

мелкие штрихи еще решатся в тестах smile


Сообщение отредактировал НовыйUser - Вторник, 09.08.2016, 20:20
 
Слимпер Дата: Вторник, 09.08.2016, 20:29 | Сообщение # 113
Генерал-лейтенант
Группа: Проверенные
Сообщений: 671
Награды: 26
Репутация: 23
Статус: Offline
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
 
НовыйUser Дата: Среда, 10.08.2016, 00:19 | Сообщение # 114
Подполковник
Группа: Проверенные
Сообщений: 270
Награды: 1
Репутация: 2
Статус: Offline
программа AL TERMINAL

скрины работы. дело похоже в настройках... может ответ найдется....

Добавлено (09.08.2016, 22:35)
---------------------------------------------
не совсем понимаю для чего двойка ?

AT_Command("ATD#100#",2 ) ;

Добавлено (09.08.2016, 22:42)
---------------------------------------------
меняю:
AT_Command(AT+CUSD=1,\"#100#\",2 ) ;

получаю компиляции ошибку IDE:

pr3.ino:624:2: error: stray '\' in program
pr3.ino:624:2: error: missing terminating " character
pr3.ino: In function 'void GotLineFromNeoway_115076593_1()':
pr3.ino:519:70: error: 'substring_commas_115076593_1' was not declared in this scope
pr3.ino:530:71: error: 'substring_commas_115076593_1' was not declared in this scope
pr3.ino: In function 'bool balance_S_115076593_1()':
pr3.ino:624:25: error: 'AT' was not declared in this scope
pr3.ino:624:28: error: 'CUSD' was not declared in this scope
pr3.ino:625:37: error: expected ')' before ';' token
pr3.ino:630:73: error: 'substring_commas_115076593_1' was not declared in this scope
Ошибка компиляции.

Добавлено (09.08.2016, 22:46)
---------------------------------------------
при попытке ввода этой команды:

AT+CUSD=1,"*100#"

ошибка компиляции:

pr4.ino: In function 'bool balance_S_171366301_1()':
pr4.ino:624:25: error: 'AT' was not declared in this scope
pr4.ino:624:28: error: 'CUSD' was not declared in this scope
Ошибка компиляции.

Добавлено (09.08.2016, 22:55)
---------------------------------------------
"Примечание по текстовому режиму и кодировке

От текстового режима (PDU или текстовый) и кодировки модуля зависит формат ввода номеров, USSD запросов, входящих и исходящих СМС.

Самый геморройный и универсальный вариант – это PDU режим, т.к. в нём можно без проблем отправлять и принимать любые текстовые данные, но из-за его «геморойности» рассматривать его не буду.

Самый простой вариант – GSM кодировка. В нём номера вводятся привычным цифровым методом, исходящие и исходящие сообщения, как СМС, так и USSD в латинице отображаются, как им и полагается. С кириллицей дела обстоят посложнее, модуль входящие сообщения с ней отображает в UNICOD, точнее в HEX значениях UNICOD. С исходящими сообщениями дела обстоят сложнее!

Второй вариант, посложнее – UCS2 кодировка. Входящие и исходящие сообщения, USSD запросы, номера телефонов в запросах – всё пишется в UNICOD. Упрощенные USSD запросы не работают.
"
http://alex-exe.ru/radio/wireless/gsm-sim900-at-command/

а может он баланс в UCS2 спрашивает.... ?

Добавлено (09.08.2016, 23:08)
---------------------------------------------
тут либо надо GSM кодировку прописывать перед каждый запросом... либо в ucs2 слать..

bool st=0;
switch ( count_ ) {
case 0:
AT_Command("ATD#100#",2 )
response_com=F("+CUSD");
break;
case 1:
if(return_AT_2)
{
Balance = substring_commas(reply) ;
count_=0;
st=1;
}
break;
}
return st;

Добавлено (09.08.2016, 23:25)
---------------------------------------------
забыл кавычки ... проверяю теперь с кавычками:

AT_Command("AT+CUSD=1,\"#100#\"",2 ) ;

нет ответа баланса.

Добавлено (09.08.2016, 23:36)
---------------------------------------------
AT_Command("AT+CUSD=1,\"AA180C3602\"",15) ;

и у этого запроса нет ответа на выходе.

Добавлено (09.08.2016, 23:52)
---------------------------------------------
такой вариант тоже не прокатил:

bool st=0;
switch ( count_ ) {
case 0:
AT_Command("AT+CMGF=1",2);
break;
case 1:
AT_Command("AT+CSCS=\"GSM\"",2);
break;
case 2:
AT_Command("AT+CNMI=2,2,0,0,0",2);
break;
case 3:
AT_Command("AT+CUSD=1,\"*100#\"",15) ;
response_com=F("+CUSD");
break;
case 4:
if(return_AT_2)
{
Balance = substring_commas(reply) ;
count_=0;
st=1;
}
break;
}
return st;

Добавлено (10.08.2016, 00:02)
---------------------------------------------
так тоже не прошло:

AT_Command("AT+CUSD=1,\"*100#\"",2) ;
response_com=F("+CUSD:");

Добавлено (10.08.2016, 00:13)
---------------------------------------------
так же не проходит:

AT_Command("ATD#100#\r",2) ;
response_com=F("+CUSD");

Добавлено (10.08.2016, 00:19)
---------------------------------------------
надо допилить этот баланс mobile

Прикрепления: 8147637.jpg(53Kb) · 6034957.jpg(54Kb) · 8018088.jpg(54Kb)


Сообщение отредактировал НовыйUser - Вторник, 09.08.2016, 22:56
 
Слимпер Дата: Среда, 10.08.2016, 07:16 | Сообщение # 115
Генерал-лейтенант
Группа: Проверенные
Сообщений: 671
Награды: 26
Репутация: 23
Статус: Offline
Цитата Новый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 Дата: Четверг, 11.08.2016, 07:39 | Сообщение # 116
Майор
Группа: Проверенные
Сообщений: 154
Награды: 0
Репутация: 0
Статус: Offline
Сегодня вечерком буду тестить! Сразу отпишу что как!

Добавлено (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
 
Слимпер Дата: Четверг, 11.08.2016, 12:13 | Сообщение # 117
Генерал-лейтенант
Группа: Проверенные
Сообщений: 671
Награды: 26
Репутация: 23
Статус: Offline
Цитата 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
 
stapmoff Дата: Четверг, 11.08.2016, 12:24 | Сообщение # 118
Майор
Группа: Проверенные
Сообщений: 154
Награды: 0
Репутация: 0
Статус: Offline
Цитата Слимпер ()
и сразу ее сбросил
Не надо сбрасывать! Вылезла ошибка, я ее сравнил и например на дисплей вывел что это за ошибка!
Цитата Слимпер ()
Надпись NET, означает, что модем "Зарегистрирован в домашней сети", и сигнал битовый.
Это понятно, я написал все что наблюдал)
Цитата Слимпер ()
Меряет сигнал это странно, хотя если значение -120, то это тоже значит нет сигнала.
Нет -120 не было, как на скрине -83  -85 и так далее
 
Слимпер Дата: Четверг, 11.08.2016, 12:30 | Сообщение # 119
Генерал-лейтенант
Группа: Проверенные
Сообщений: 671
Награды: 26
Репутация: 23
Статус: Offline
Цитата stapmoff ()
Не надо сбрасывать! Вылезла ошибка, я ее сравнил и например на дисплей вывел что это за ошибка!
Ладно подумаю, но тогда когда ее сбрасывать?
Была мысль выводить вообще ошибки самого модема, но пока отказался.
 
stapmoff Дата: Четверг, 11.08.2016, 12:34 | Сообщение # 120
Майор
Группа: Проверенные
Сообщений: 154
Награды: 0
Репутация: 0
Статус: Offline
Цитата Слимпер ()
но тогда когда ее сбрасывать
Я незнаю как у вас там реализован опрос по ошибкам, если циключеский, то до след. опроса пускай и висит

Добавлено (11.08.2016, 12:34)
---------------------------------------------

Цитата stapmoff ()
Была мысль выводить вообще ошибки самого модема, но пока отказался.
Ну и правильно, тут самое главное отвечает модуль или нет, есть сеть или нет! А по поводу AT+COPS? подумайте) Было бы шикарно
 
Форум » Основной » Спросить у знатоков » Блок пользователя для работы с GSM (SIM 900 и М590)
Страница 8 из 36«126789103536»
Поиск:

FLProg © 2016
Яндекс.Метрика