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

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

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

#1

Сообщение stapmoff » 10.06.2016{, 12:45}

Для начала хочу поблагодарить автора проэкта за замечательную программу!!! Особенно за огромную работу над  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-FLPROG-.flp
(204.57 КБ) 148 скачиваний

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

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

#2

Сообщение Max » 10.06.2016{, 19:25}

Что мешает разбирать присланную строку и выделять нужный фрагмент? Все инструменты для этого есть в разделе "Строки". Все прекрасно разбирается.

Кстати, сам сейчас эксперементирую с модулем SIM800L, он мне больше понравился, нежели модуль M590. Гораздо стабильнее работает.
Последний раз редактировалось Max 10.06.2016{, 19:27}, всего редактировалось 1 раз.

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

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

#3

Сообщение stapmoff » 10.06.2016{, 20:59}

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

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

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

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

#4

Сообщение Max » 10.06.2016{, 22:02}

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



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

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

Кстати, в примере, который я выложил тут пример и там есть разбор строки и так же есть видео.
Вложения
1326665.jpg
Последний раз редактировалось Max 10.06.2016{, 22:14}, всего редактировалось 1 раз.

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

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

#5

Сообщение stapmoff » 14.06.2016{, 05:20}

Спасибо за ответ! Но что то не получается, какие индексы только не пробовол от 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 вставляется после каждой буквы, ответа от модема - это получается что от модема прихожят не строки, а буквы по одному?

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

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

#6

Сообщение Max » 14.06.2016{, 09:26}

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

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

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

#7

Сообщение stapmoff » 15.06.2016{, 07:03}

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

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

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

#8

Сообщение Boroda » 15.06.2016{, 19:17}

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

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

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

#9

Сообщение stapmoff » 18.06.2016{, 05:34}

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

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

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

#10

Сообщение stapmoff » 22.06.2016{, 21:17}

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

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

holodaleksey
Лейтенант
Сообщения: 566
Зарегистрирован: 10.01.2016{, 13:47}
Репутация: 14

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

#11

Сообщение holodaleksey » 22.06.2016{, 23:18}

Мне интересно п.п. 1-6 ))
Подпись удалена мною по требованию администрации форума, что является нарушение демократии )

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

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

#12

Сообщение stapmoff » 23.06.2016{, 07:25}

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

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

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

#13

Сообщение stapmoff » 23.06.2016{, 07:36}

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

Это пока так сказать набросок программы, хочется отточить до почти идеала, времени маловато на это, а вообще если были бы блоки или блок, по работе с gsm модулями, то это облегчило нам жизнь)))
Вложения
SIM800L-GSM_TES.flp
(642.66 КБ) 182 скачивания

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

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

#14

Сообщение Boroda » 23.06.2016{, 11:23}

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

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

Вложения
3515008.jpg
Последний раз редактировалось Boroda 23.06.2016{, 12:00}, всего редактировалось 1 раз.

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

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

#15

Сообщение stapmoff » 23.06.2016{, 14:41}

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

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

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

#16

Сообщение Boroda » 23.06.2016{, 16:08}

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

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

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

#17

Сообщение stapmoff » 24.06.2016{, 08:16}

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

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

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

#18

Сообщение Boroda » 24.06.2016{, 14:53}

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

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

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

#19

Сообщение stapmoff » 30.06.2016{, 16:57}

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

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

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

#20

Сообщение Max » 01.07.2016{, 06:55}

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

Ответить

Вернуться в «GSM / GPRS»