Страница 1 из 2

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 10.06.2016{, 12:45}
stapmoff
Для начала хочу поблагодарить автора проэкта за замечательную программу!!! Особенно за огромную работу над  modbus RTU. Теперь моя проблемка.

В настоящий момент балуюсь с модулем SIM800L. Накрутил проэктик, опрос датчика DHT11 по sms. Но я столкнулся с проблемой:
1. При отправке смс от модуля на телефон, кроме команд и самой смс , в конце нужно добавить символ ctrl-Z или в нашем случае (char)26, но при компиляции сам IDE заrлючает char 26 в ковычки "(char)26" приходится постоянно редактировать. Ну это мелочи
2. В моем примере для запроса температуры или влажности нужно отправить @ или % , и опять проблемка, хочется буквенный запрос, а сравнить строки не получается пришлось городить, может что не правильно сделал?
3. Не могу добиться Выделить именно ту строку которую мне надо, например вывести на дисплей, к примеру время или входящий смс
Прошу помощи!! Ну и такой вопросик, будет ли в скором времени какой нибудь блок для работы с GSM модулем?

Добавлено (10.06.2016, 12:45)
---------------------------------------------
Смотрю на форуме не сильно пользуется спросом работа с gsm модулями

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 10.06.2016{, 19:25}
Max
Что мешает разбирать присланную строку и выделять нужный фрагмент? Все инструменты для этого есть в разделе "Строки". Все прекрасно разбирается.

Кстати, сам сейчас эксперементирую с модулем SIM800L, он мне больше понравился, нежели модуль M590. Гораздо стабильнее работает.

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 10.06.2016{, 20:59}
stapmoff
Max писал(а):Что мешает разбирать присланную строку и выделять нужный фрагмент? Все инструменты для этого есть в разделе "Строки". Все прекрасно разбира
Да я не спорю, может чего не понимаю? Затем и прошу обьяснить, а имено две вещи.
1. Как из присланного модулем смс, вытащить тот самый текст или буковку , что мне нужна, и  после сравнения и получить некое событие, например отправка температуры по запросу  T
2. Как вытащить например поступление вх. звонка по присланому RING и поднять трубку или в смс есть параметр заряда АКБ вытащить его и показать на дисплей?????
У меня не получается именно , ВЫТАЩИТЬ слово из строки присланной модулем это сделать, помогите буду благодарен! 

Кстати да, модуль стабилен))

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 10.06.2016{, 22:02}
Max
stapmoff писал(а):Как из присланного модулем смс, вытащить тот самый текст или буковку , что мне нужна,
Вот например:



В конце, как раз принятое модулем СМС с кодами 65651 или 65652 (они могут быть любыми). При помощи инструмента "получение подстроки" отсекаете ненужное и выделяете нужное. Учтите, в строке передаются невидимые символы. Для распарсивания лучше подключите дисплей и выводите на него принятую строку, дабы видеть, что там. Подсчитывая символы вычисляете нужное место в теле строки.

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

Кстати, в примере, который я выложил тут пример и там есть разбор строки и так же есть видео.

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 14.06.2016{, 05:20}
stapmoff
Спасибо за ответ! Но что то не получается, какие индексы только не пробовол от 0 до 100 и наоборот, на дисплее ничего нет кроме индекса 0 который показывает все

Добавлено (11.06.2016, 11:25)
---------------------------------------------
Ваш пример я смотрел, от куда вы брали индексы я не понял

Добавлено (13.06.2016, 18:13)
---------------------------------------------
Max писал(а):В конце, как раз принятое модулем СМС с кодами 65651 или 65652 (они могут быть любыми). При помощи инструмента "получение подстроки" отсекаете ненужное и выделяете нужное. Учтите, в строке передаются невидимые символы. Для распарсивания лучше подключите дисплей и выводите на него принятую строку, дабы видеть, что там. Подсчитывая символы вычисляете нужное место в теле строки.

Далее, компаратором сравниваете и используете дальше. Можно и буквенный-цифровые сочетания (на латинице, естественно). Таких блоков обработки строки можно много наделать. Для каждой нужной команды и соот. отрабатывать ответ, или действие.
Я все еще раз прочел внимательно! То что написано все понятно! Но дисплей показывает билиберду, по одному символу! Опраляю на юарт, прилитает пачка символов, пробовал считать, НЕ РАБОТАЕТ! Так то по идеи длина должна быть одинакова, а как у вас в проэкте с 48 индекса, у меня поче му то не прокатывает((( что за беда прям незнаю

Добавлено (13.06.2016, 19:34)
---------------------------------------------
stapmoff писал(а):Я все еще раз прочел внимательно! То что написано все понятно! Но дисплей показывает билиберду, по одному символу! Опраляю на юарт, прилитает пачка символов, пробовал считать, НЕ РАБОТАЕТ! Так то по идеи длина должна быть одинакова, а как у вас в проэкте с 48 индекса, у меня поче му то не прокатывает((( что за беда прям незнаю
Сейчас попробовал, цепляю блок "получение подстроки" на выход с юарт модема, какие только индексы не ставил, даже начиная с 1 просто показывает 0. Далее на блок "получение подстроки" подаю константу , типо СМС он все корректно фильтрует то что мне надо! Это как понимать? Блок не принимает с порта модема??? Помогите решить проблему

Добавлено (14.06.2016, 05:20)
---------------------------------------------
Вчера с помощью блока подсчета символов в строке, от модема, на юарт компьютера, любой ответ от модема считает как один символ. И правда, подцепил сумму строк и зада константу z по идеи должен был увидеть, строка от модема и в конце z. Не тут то было, z вставляется после каждой буквы, ответа от модема - это получается что от модема прихожят не строки, а буквы по одному?

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 14.06.2016{, 09:26}
Max
stapmoff писал(а):с 48 индекса, у меня поче му то не прокатывает
Количество символов у М590 и SIM800L разные. Так что блоки чтения строк надо подправлять. Возьмите дисплей (на 4 строки 2004) и выводите туда строки, а не в COM порт (UART) компьютера. В ком порту компа. невидимые символы не выводятся, отсюда и ошибки в подсчете символов в строке у Вас.
stapmoff писал(а):даже начиная с 1 просто показывает 0
В настройках "получения подстроки" возьмите начальную константу 0, а конечную константу, например, 30 и выведете на дисплей(!) указанный выше, к тому же выведете не напрямую, а заведите переменную, а переменную уже в дисплей.

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 15.06.2016{, 07:03}
stapmoff
Разобрался)) Ошибка была в том, что я не накапливал данные в uart и буфер чистился после каждого принятого байта. Теперь все понятно, только не могу ни как корректно очищять буфер, там накапливается много

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 15.06.2016{, 19:17}
Boroda
Сделайте так. Можно поиграть временем задержки. Сигнал на сброс приходит, если данных нет более 50мсек. Этого времени вполне должно хватить на обработку результата.
П.С. промышленный протокол ModBus-RTU работает на этом же принципе, только время другое.

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 18.06.2016{, 05:34}
stapmoff
Спасибо за ответы, разобрался полность))) С модулем делаю все что пожелаю. Спасибо разработчику Flprog

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 22.06.2016{, 21:17}
stapmoff
НовыйUser писал(а):выложите пожалуйста новые версии ваших пользовательских блоков. очень интересно узнать функционал и применимость их в программе..Ну это н
Ну это не пользовательские блоки, а полноценная программа!

Добавлено (22.06.2016, 21:17)
---------------------------------------------
Кому интересно? В данный момент добился следующего:
1. Запрос температуры и влажности смс
2. Запрос баланса сим в модуле смс
3. Запрос статуса модема по нагрузкам и охранным шлейфам смс
4. Смс при критической влажности и температуры
5. Смс при сработке 2-х шлейфов
6. Смс вкл.или выкл 2-е нагрузки
В данный момент пытаюсь отправлять смс на тот номер, что в записной книге и на именно тот, кто прислал смс. Пока не совсем корректно работает

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 22.06.2016{, 23:18}
holodaleksey
Мне интересно п.п. 1-6 ))

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 23.06.2016{, 07:25}
stapmoff
holodaleksey писал(а):Мне интересно п.п. 1-6 ))
Могу скинуть файлик, там только номерок поменять, думаю разберетесь

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 23.06.2016{, 07:36}
stapmoff
СМС запросы, только маленькие буквы
status - Запрос статуса модема по нагрузкам и охранным шлейфам
meteo - Запрос температуры и влажности
balance - Запрос баланса сим в модуле (опреатор мтс если другой, то нужно поменять цифры в запросе)
redon - вкл. нагрузки на PIN4 arduino (естевственно redon можно менять)
redoff - тут понятно
greenon - аналогично redon только PIN4 arduino
greenoff - понятно

Это пока так сказать набросок программы, хочется отточить до почти идеала, времени маловато на это, а вообще если были бы блоки или блок, по работе с gsm модулями, то это облегчило нам жизнь)))

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 23.06.2016{, 11:23}
Boroda
Цитата stapmoff ()200?'200px':''+(this.scrollHeight+5)+'px');">Это пока так сказать набросок программы
Спасибо! Все хорошо, но есть одно но: почти во всех проектах Arduino+GSM, которые я видел, нет проверки работоспособности модуля GSM. Принял модуль команду или нет, зарегистрировался в сети или нет, повис или еще чего... Довольно просто такую проверку реализовать, но только на си, иначе в коробочках FBD запутаешься. Нужен лишь счетчик состояния системы ("конечный автомат").

Ниже представлена довольно абстрактная блок-схема работы одного моего устройства на PIC16F628. Там еще есть контроль дискретных входов, контроль питания и т.д. Вся программа выполняется циклически без всяких Delay и застреваний где-либо.


Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 23.06.2016{, 14:41}
stapmoff
Ну я в языке си не силен, да что не силен, вообще плохо знаю. Я проверку делал, но только с использованием задержки, т.е через определенное время происходил опрос модема! Это не правильно и я проверку убрал. А с другой стороны сколько я работал с sim800 он уже почти месяц во включеном состоянии и хоть бы что))

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 23.06.2016{, 16:08}
Boroda
Ну для локальной (для себя) информационной системы отсутствие контроля GSM модуля не столь критично, но если это охранка или система диспетчеризации, то контроль очень важен. Даже промышленные модемы от Сименса и Овна виснут раз в пару-тройку месяцев (всегда релюшки по питанию модемов в шкафы ставим). С модемом серии Easy xLogic тоже самое, но тут только передергивание питания всей системы поможет. О зависаниях сим900 тоже много тем в инете, человеки релюшки маленькие по питанию ставят.

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 24.06.2016{, 08:16}
stapmoff
Да согласен полностью, сброс при зависании нужен и контроль состояния нужен, но пока так как есть. Если есть мысли по этому поводу, давайте объединим усилия и состряпаем стабильный проэктик для применения в сфере охраны или промышлиности, оно же лишним не будет)))

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 24.06.2016{, 14:53}
Boroda
Времени свободного будет побольше, постараюсь на СИ блок написать. Да и модем никак с китая не приедет, протестировать пока неначем, а из готовых устройств таскать туда-сюда не хочется.

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 30.06.2016{, 16:57}
stapmoff
Немного допилил проэкт! Теперь запросы обрабатываются в том случае если номер совпадает с тем, что в записной книжке. Всего можно записать 4 номера

Работа с SIM800L запрос температуры и влажности по смс

Добавлено: 01.07.2016{, 06:55}
Max
НовыйUser писал(а):800ая пробрасывается на ардуино контактами TX и RX напрямую ?
У меня в макетном состоянии прекрасно напрямую работает. Но, в будущем лучше согласовывать.