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


Яндекс.Метрика
Суббота, 03.12.2016, 05:24
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

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


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Работа с SIM800L запрос температуры и влажности по смс
Работа с SIM800L запрос температуры и влажности по смс
stapmoff
Дата: Пятница, 10.06.2016, 12:45 | Сообщение # 1
Майор
Группа: Проверенные
Сообщений: 154
Награды: 0
Репутация: 0
Статус: Offline
Для начала хочу поблагодарить автора проэкта за замечательную программу!!! Особенно за огромную работу над  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(205Kb)
 
Max Дата: Пятница, 10.06.2016, 19:25 | Сообщение # 2
Гуру
Группа: Проверенные
Сообщений: 482
Награды: 14
Репутация: 4
Статус: Offline
Что мешает разбирать присланную строку и выделять нужный фрагмент? Все инструменты для этого есть в разделе "Строки". Все прекрасно разбирается.

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


Максим (VK - Максим Дунаевский)

Сообщение отредактировал Max - Пятница, 10.06.2016, 19:27
 
stapmoff Дата: Пятница, 10.06.2016, 20:59 | Сообщение # 3
Майор
Группа: Проверенные
Сообщений: 154
Награды: 0
Репутация: 0
Статус: Offline
Цитата Max ()
Что мешает разбирать присланную строку и выделять нужный фрагмент? Все инструменты для этого есть в разделе "Строки". Все прекрасно разбира
Да я не спорю, может чего не понимаю? Затем и прошу обьяснить, а имено две вещи.
1. Как из присланного модулем смс, вытащить тот самый текст или буковку , что мне нужна, и  после сравнения и получить некое событие, например отправка температуры по запросу  T
2. Как вытащить например поступление вх. звонка по присланому RING и поднять трубку или в смс есть параметр заряда АКБ вытащить его и показать на дисплей?????
У меня не получается именно , ВЫТАЩИТЬ слово из строки присланной модулем это сделать, помогите буду благодарен! 

Кстати да, модуль стабилен))
 
Max Дата: Пятница, 10.06.2016, 22:02 | Сообщение # 4
Гуру
Группа: Проверенные
Сообщений: 482
Награды: 14
Репутация: 4
Статус: Offline
Цитата stapmoff ()
Как из присланного модулем смс, вытащить тот самый текст или буковку , что мне нужна,

Вот например:



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

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

Кстати, в примере, который я выложил тут пример и там есть разбор строки и так же есть видео.
Прикрепления: 1326665.jpg(26Kb)


Максим (VK - Максим Дунаевский)

Сообщение отредактировал Max - Пятница, 10.06.2016, 22:14
 
stapmoff Дата: Вторник, 14.06.2016, 05:20 | Сообщение # 5
Майор
Группа: Проверенные
Сообщений: 154
Награды: 0
Репутация: 0
Статус: Offline
Спасибо за ответ! Но что то не получается, какие индексы только не пробовол от 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 Дата: Вторник, 14.06.2016, 09:26 | Сообщение # 6
Гуру
Группа: Проверенные
Сообщений: 482
Награды: 14
Репутация: 4
Статус: Offline
Цитата stapmoff ()
с 48 индекса, у меня поче му то не прокатывает
Количество символов у М590 и SIM800L разные. Так что блоки чтения строк надо подправлять. Возьмите дисплей (на 4 строки 2004) и выводите туда строки, а не в COM порт (UART) компьютера. В ком порту компа. невидимые символы не выводятся, отсюда и ошибки в подсчете символов в строке у Вас.

Цитата stapmoff ()
даже начиная с 1 просто показывает 0
В настройках "получения подстроки" возьмите начальную константу 0, а конечную константу, например, 30 и выведете на дисплей(!) указанный выше, к тому же выведете не напрямую, а заведите переменную, а переменную уже в дисплей.


Максим (VK - Максим Дунаевский)

Сообщение отредактировал Max - Вторник, 14.06.2016, 09:30
 
stapmoff Дата: Среда, 15.06.2016, 07:03 | Сообщение # 7
Майор
Группа: Проверенные
Сообщений: 154
Награды: 0
Репутация: 0
Статус: Offline
Разобрался)) Ошибка была в том, что я не накапливал данные в uart и буфер чистился после каждого принятого байта. Теперь все понятно, только не могу ни как корректно очищять буфер, там накапливается много
 
Boroda Дата: Среда, 15.06.2016, 19:17 | Сообщение # 8
Майор
Группа: Проверенные
Сообщений: 149
Награды: 7
Репутация: 8
Статус: Offline
Сделайте так. Можно поиграть временем задержки. Сигнал на сброс приходит, если данных нет более 50мсек. Этого времени вполне должно хватить на обработку результата.
П.С. промышленный протокол ModBus-RTU работает на этом же принципе, только время другое.
Прикрепления: 8281471.png(5Kb)


Сообщение отредактировал Boroda - Среда, 15.06.2016, 19:33
 
stapmoff Дата: Суббота, 18.06.2016, 05:34 | Сообщение # 9
Майор
Группа: Проверенные
Сообщений: 154
Награды: 0
Репутация: 0
Статус: Offline
Спасибо за ответы, разобрался полность))) С модулем делаю все что пожелаю. Спасибо разработчику Flprog
 
НовыйUser Дата: Суббота, 18.06.2016, 14:29 | Сообщение # 10
Подполковник
Группа: Проверенные
Сообщений: 270
Награды: 1
Репутация: 2
Статус: Offline
Цитата stapmoff ()
Спасибо за ответы, разобрался полность))) С модулем делаю все что пожелаю. Спасибо разработчику Flprog


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


выложите пожалуйста новые версии ваших пользовательских блоков. очень интересно узнать функционал и применимость их в программе..
 
stapmoff Дата: Среда, 22.06.2016, 21:17 | Сообщение # 11
Майор
Группа: Проверенные
Сообщений: 154
Награды: 0
Репутация: 0
Статус: Offline
Цитата НовыйUser ()
выложите пожалуйста новые версии ваших пользовательских блоков. очень интересно узнать функционал и применимость их в программе..Ну это н
Ну это не пользовательские блоки, а полноценная программа!

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

 
holodaleksey Дата: Среда, 22.06.2016, 23:18 | Сообщение # 12
Лейтенант
Группа: Проверенные
Сообщений: 106
Награды: 1
Репутация: 1
Статус: Offline
Мне интересно п.п. 1-6 ))
 
stapmoff Дата: Четверг, 23.06.2016, 07:25 | Сообщение # 13
Майор
Группа: Проверенные
Сообщений: 154
Награды: 0
Репутация: 0
Статус: Offline
Цитата holodaleksey ()
Мне интересно п.п. 1-6 ))
Могу скинуть файлик, там только номерок поменять, думаю разберетесь
 
stapmoff Дата: Четверг, 23.06.2016, 07:36 | Сообщение # 14
Майор
Группа: Проверенные
Сообщений: 154
Награды: 0
Репутация: 0
Статус: Offline
СМС запросы, только маленькие буквы
status - Запрос статуса модема по нагрузкам и охранным шлейфам
meteo - Запрос температуры и влажности
balance - Запрос баланса сим в модуле (опреатор мтс если другой, то нужно поменять цифры в запросе)
redon - вкл. нагрузки на PIN4 arduino (естевственно redon можно менять)
redoff - тут понятно
greenon - аналогично redon только PIN4 arduino
greenoff - понятно

Это пока так сказать набросок программы, хочется отточить до почти идеала, времени маловато на это, а вообще если были бы блоки или блок, по работе с gsm модулями, то это облегчило нам жизнь)))
Прикрепления: SIM800L-GSM_TES.flp(643Kb)
 
Boroda Дата: Четверг, 23.06.2016, 11:23 | Сообщение # 15
Майор
Группа: Проверенные
Сообщений: 149
Награды: 7
Репутация: 8
Статус: Offline
Цитата stapmoff ()
Это пока так сказать набросок программы

Спасибо! Все хорошо, но есть одно но: почти во всех проектах Arduino+GSM, которые я видел, нет проверки работоспособности модуля GSM. Принял модуль команду или нет, зарегистрировался в сети или нет, повис или еще чего... Довольно просто такую проверку реализовать, но только на си, иначе в коробочках FBD запутаешься. Нужен лишь счетчик состояния системы ("конечный автомат").

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

Прикрепления: 3515008.jpg(103Kb)


Сообщение отредактировал Boroda - Четверг, 23.06.2016, 12:00
 
Форум » Основной » Спросить у знатоков » Работа с SIM800L запрос температуры и влажности по смс
Страница 1 из 212»
Поиск:

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