GSM 800L + DS18B20 + DTMF + BALANCE + VOLTAGE

Форум, с конкретными примерами и реальными задачами и их решением.
Пишите в личку (admin, LEV-PRAV, mim) ссылки на темы, достойные быть скопированы сюда.

Модератор: Иван Николаевич

GSM 800L + DS18B20 + DTMF + BALANCE + VOLTAGE

Сообщение 1945 (1945) » 11 фев 2019, 15:13

Здравствуйте предлагаю свой вариант реализации возможностей модуля жсм сим 800л .
Программа проходит инициализацию , дальше по циклу проверяет наличие длины приходящего по окончанию передачи ответа по уарту от модуля.
Если температура превысит порог 40 градусов - отсылаем сообщение по указанному телефону + баланс + напряжение аккумулятора, крутимься в
цикле пока температура не упадёт ниже 30 градусов.
Если при шёл звонок сверяем его с сохраннёным - если наш то модуль берёт трубку - дальше команды DTMF - если #
то записываем то же самое что выше и отсылаем.
Всё обропованно с МТС - всё работает, прилагаю файл протеуса с комрипом.
УДАЧИ!
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: 1945
Имя: 1945
(Тольятти)
Ученик
Ученик
Информация о пользователе

Re: GSM 800L + DS18B20 + DTMF + BALANCE + VOLTAGE

Сообщение pav13 (pav13) » 11 фев 2019, 18:07

вместо
sendrs232string "AT+CMGS="
sendrs232char 0x22 // \"
sendrs232string "+380991234567" // номер телефона
sendrs232char 0x22 // \"
sendrs232char 0x0D
// \r

проще писать так
sendrs232string "AT+CMGS=\"+380991234567\"\r"

я правильно понял, если в какой-то момент времени модем ответил сообщением не той длины, то МК сбрасывается и долбит модуль по новой? а так как в примере watchdog выключен, МК вообще может уйти в бесконечный цикл?
Изображение
FC AVR 5.5.2.1 + исправления / Proteus 8.8 / AtmelStudio 7
drive.google.com/open?id=1zOOA1dH952RegF1N4-jipYkr13iuToSY
Аватар пользователя
Ник: pav13
Имя: pav13
(Тёмовск)
Ученик
Ученик
Информация о пользователе

Re: GSM 800L + DS18B20 + DTMF + BALANCE + VOLTAGE

Сообщение 1945 (1945) » 11 фев 2019, 19:14

Я цеплялся УСБ уартом к модулю и после каждой команды просматривал длину переменной, она всегда одинакова при той или иной команде от меня. Ты знаешь всё таки макрос стирания receive - отрабатывает хорошо, а на счёт долбит - так как работает пара мк-модуль? Отсылаю запрос, он дублируется и ответ ок, дальше жду если надо ещё один ответ ну там баланс или напругу, всё общее количество байт получилось. Выхожу из цикла и дальше по программе. Можно поставить боды поскоростнее, но и так работает хорошо.
Ник: 1945
Имя: 1945
(Тольятти)
Ученик
Ученик
Информация о пользователе
Вернуться наверх

Re: GSM 800L + DS18B20 + DTMF + BALANCE + VOLTAGE

Сообщение livrena (livrena) » 11 фев 2019, 21:35

[quote="pav13"]
проще писать так
sendrs232string "AT+CMGS=\"+380991234567\"\r"


pav13 подскажи как правильно записать.вместо номера телефона подставить переменную А.( А=0991234567 )
такая запись отправит СМС ( sendrs232string "AT+CMGS=\"А\"\r" ) ?
Ник: livrena
Имя: livrena
Ученик
Ученик
Информация о пользователе
Вернуться наверх

Re: GSM 800L + DS18B20 + DTMF + BALANCE + VOLTAGE

Сообщение pav13 (pav13) » 12 фев 2019, 06:08

Одним кубиком - никак.
Номер хранить не в одной переменной long типа, а в байтовом массиве A[10]={0,9,9,1,2,3,4,5,6,7} или в А[5] если группировать по две цифры. Далее отправить номер побайтово в цикле.
Либо для экономии места хранить номер в двух переменных unsigned int, потом в помощью операции ToString() перевести каждую в string, сложить в одну строку и отправить.

Там же в кубике sendrs232string написано или значение или переменная, но не вместе.
Изображение
FC AVR 5.5.2.1 + исправления / Proteus 8.8 / AtmelStudio 7
drive.google.com/open?id=1zOOA1dH952RegF1N4-jipYkr13iuToSY
Аватар пользователя
Ник: pav13
Имя: pav13
(Тёмовск)
Ученик
Ученик
Информация о пользователе
Вернуться наверх

Re: GSM 800L + DS18B20 + DTMF + BALANCE + VOLTAGE

Сообщение livrena (livrena) » 12 фев 2019, 07:01

pav13 спасибо за ответ. Это я понимаю. меня интересует или правильная запись в последней строке моего предыдущего сообщения? Переменная А = номеру string

"AT+CMGS=\"А\"\r" в таком варианте я думаю что сообщение уйдёт не на номер а на букву А. Как правильно сформировать запись ?

Или нужно использовать 3 кубика,значение,переменная,значение
Ник: livrena
Имя: livrena
Ученик
Ученик
Информация о пользователе
Вернуться наверх

Re: GSM 800L + DS18B20 + DTMF + BALANCE + VOLTAGE

Сообщение pav13 (pav13) » 12 фев 2019, 10:10

"AT+CMGS=\"А\"\r" - неправильно(ты сам попробуй и посмотри что будет в терминале в протеусе)
3 кубика,значение,переменная,значение - правильно
Изображение
FC AVR 5.5.2.1 + исправления / Proteus 8.8 / AtmelStudio 7
drive.google.com/open?id=1zOOA1dH952RegF1N4-jipYkr13iuToSY
Аватар пользователя
Ник: pav13
Имя: pav13
(Тёмовск)
Ученик
Ученик
Информация о пользователе
Вернуться наверх

Re: GSM 800L + DS18B20 + DTMF + BALANCE + VOLTAGE

Сообщение 1945 (1945) » 12 фев 2019, 13:59

Да кстати прилагаю файлы алгоритма записи аудио файлов для модуля (можно сделать менюшку).
Кароче можно позвонить войти в дтмф режим и набирая номера в тональном режиме прослушать соответствующие ранее записанные файлы
Файлы нужно конвертировать в amr формат и записать программой а дальше вызвать ну кароче в pdf всё есть.
Удачи!!
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: 1945
Имя: 1945
(Тольятти)
Ученик
Ученик
Информация о пользователе
Вернуться наверх


Вернуться в Готовые решения и примеры

Кто сейчас на форуме

Пользователь просматривает форум: saho