Блок пользователя для работы с GSM
Блок пользователя для работы с GSM
Nikan, Посмотрел ваши код, общие замечания:
Почитайте Switch , а то вы много где не ставили break; в каждой секции case а это будет вызывать проблемы.
Функции блока
GSM_AT_Command(F(" команда без AT+"), Количество повторных отправок ); - отправка АТ команды в том случаи когда ответ должен быть OK или ERROR, функция сам сдвигает GSM_count +1
Если надо проанализировать ответ то в следующем блоке Case
GSM_analysisResponse(F("правильный текст ответа") ); если ответ совпадет произойдет то сдвинет GSM_count+1
Если ответ не совпадет и количество повторных отправок больше 0 то GSM_count -1 т.е произойдет повторная отправка последней команды.
Если количество повторных отправок было 0, то будет последовательность отправки будет отменна.
Еще GSM_analysisResponse возвращает 1 если ответ верный и 0 если нет, так что ее можно использовать как условие в if.
Если надо увеличить время ожидания ответа то в туже секцию после команды и перед break;
вставить
GSM_time =millis() +2000; // время ожидания 2000- 2 секунды
Для разделение разных функций используется GSM_team_room - код текущей операции.
Надо взять следующий свободный (например 8) при вызове отправки надо проверить что сейчас GSM_team_room==0 и присвоить ему GSM_team_room=8
И в главном блоке в switch ( GSM_team_room ) { добавить еще один
case 8: //
if (!GSM_wait) {
GSM_final = GSM_Send_Narodmon_comand(); //
}
break;
По пробуйте внести правки в код согласно описному выше
По результатам отпишетесь.
Если будут вопросу как работают, другие функции задавайте.
П.С. Сам несколько часов вспоминал как что работает.
Почитайте Switch , а то вы много где не ставили break; в каждой секции case а это будет вызывать проблемы.
Функции блока
GSM_AT_Command(F(" команда без AT+"), Количество повторных отправок ); - отправка АТ команды в том случаи когда ответ должен быть OK или ERROR, функция сам сдвигает GSM_count +1
Если надо проанализировать ответ то в следующем блоке Case
GSM_analysisResponse(F("правильный текст ответа") ); если ответ совпадет произойдет то сдвинет GSM_count+1
Если ответ не совпадет и количество повторных отправок больше 0 то GSM_count -1 т.е произойдет повторная отправка последней команды.
Если количество повторных отправок было 0, то будет последовательность отправки будет отменна.
Еще GSM_analysisResponse возвращает 1 если ответ верный и 0 если нет, так что ее можно использовать как условие в if.
Если надо увеличить время ожидания ответа то в туже секцию после команды и перед break;
вставить
GSM_time =millis() +2000; // время ожидания 2000- 2 секунды
Для разделение разных функций используется GSM_team_room - код текущей операции.
Надо взять следующий свободный (например 8) при вызове отправки надо проверить что сейчас GSM_team_room==0 и присвоить ему GSM_team_room=8
И в главном блоке в switch ( GSM_team_room ) { добавить еще один
case 8: //
if (!GSM_wait) {
GSM_final = GSM_Send_Narodmon_comand(); //
}
break;
По пробуйте внести правки в код согласно описному выше
По результатам отпишетесь.
Если будут вопросу как работают, другие функции задавайте.
П.С. Сам несколько часов вспоминал как что работает.
Блок пользователя для работы с GSM
.
Последний раз редактировалось Nikan 23 мар 2023, 17:47, всего редактировалось 1 раз.
Блок пользователя для работы с GSM
Нифига ардуина не видит сообщения с М590Е по softserial. Если сажать на 0 и 1 интерфейс то тем более не видит.
Через терминал видно ответы с М590 Е а ардуина не реагирует никак..
Я понимаю что возможно через интерфейсную микросхему USB- COM ардуино можно увидеть модуль. Но и через Softserial раз передается сигнал на 0 и 1 интерфейсной микросхемы- значит контроллер АВР м128 должна видеть что передает...
А он не видит никак.
Добавлено (04.11.2017, 20:27)
---------------------------------------------
Вообщем разобрался. Все прекрасно видит. Строку контроллером с модуля восприниматься но не в таком удобоваримом виде и тег *NO CARIER* там ненаблюдаеться.
Вот какую билеберду он шлет:
Вообщем контроллеру дал установку выцепить CARRIER и по этому тэгу выключить сообщением CPWROFF модуль.
Почему билеберда такая в строке? С чем это связано?
Через терминал видно ответы с М590 Е а ардуина не реагирует никак..
Я понимаю что возможно через интерфейсную микросхему USB- COM ардуино можно увидеть модуль. Но и через Softserial раз передается сигнал на 0 и 1 интерфейсной микросхемы- значит контроллер АВР м128 должна видеть что передает...
А он не видит никак.
СпойлерSPOILER_SHOW
---------------------------------------------
Вообщем разобрался. Все прекрасно видит. Строку контроллером с модуля восприниматься но не в таком удобоваримом виде и тег *NO CARIER* там ненаблюдаеться.
Вот какую билеберду он шлет:
СпойлерSPOILER_SHOW
Почему билеберда такая в строке? С чем это связано?
Последний раз редактировалось vivaldi26 04 ноя 2017, 20:28, всего редактировалось 1 раз.
Блок пользователя для работы с GSM
Добрый день. При использовании блоков M590, ide отказывается компилировать. В чем может быть проблема?
СпойлерSPOILER_SHOW
Блок пользователя для работы с GSM
.
Последний раз редактировалось Nikan 23 мар 2023, 17:46, всего редактировалось 1 раз.
Блок пользователя для работы с GSM
Спасибо.Nikan писал(а):к основному блоку необходимо добавить блок GSM_M590
Блок пользователя для работы с GSM
пришел модуль sim800L . подключил к компутеру, задал скорость 115200. модуль ответил. попробовал другие команды (типа версия прошивки и т.д) всё норм отвечал. цепляю дисплей 5110, sim800, заливаю прогу. данные с модуля не выводятся. может я просто под конец дня затупил уже...
гляньте
гляньте
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Блок пользователя для работы с GSM
.
Последний раз редактировалось Nikan 23 мар 2023, 17:46, всего редактировалось 1 раз.
Блок пользователя для работы с GSM
.
Последний раз редактировалось Nikan 23 мар 2023, 17:45, всего редактировалось 1 раз.
Блок пользователя для работы с GSM
Nikan, ничего. по ходу вообще обмена по уарту нет
Блок пользователя для работы с GSM
Не знаю как в вашем регионе, у нас по барабану что прописать...цепляется в любом случае)))Nikan писал(а):(для мтс и мегафон выбирайть соответсвующие) как совместить все в одном блоке пока не решил (надо как то АПН считать с сим карты и впихнуть в АТ команды)
Блок пользователя для работы с GSM
.
Последний раз редактировалось Nikan 23 мар 2023, 18:10, всего редактировалось 2 раза.
Блок пользователя для работы с GSM
там нет наличия смс вроде. только вывод номера при звонке. и в описании 1 висит пока идет вызов
Блок пользователя для работы с GSM
.
Последний раз редактировалось Nikan 23 мар 2023, 18:09, всего редактировалось 1 раз.
Блок пользователя для работы с GSM
обязательно попробую. просто было в лом всё отключать (дуня воткнута в макетную плату) думал с хардварным заведётся. а там даже диодики не моргают. хотя мож запросы оч короткие
Блок пользователя для работы с GSM
.
Последний раз редактировалось Nikan 23 мар 2023, 18:09, всего редактировалось 1 раз.
Блок пользователя для работы с GSM
убрал всё лишнее. оставил только это
модуль перед этим с копутера настроил на скорость 9600. подключил к пинам 2 и 3 , их же указал в блоке софт сериал. в основном блоке так же указал скорость 9600 и порт Serial_S.
в мониторе только строка test и тишина. где я мог затупить
СпойлерSPOILER_SHOW
в мониторе только строка test и тишина. где я мог затупить
Блок пользователя для работы с GSM
Помнится у меня модуль СИМ800 не хотел даже на 19200 работать, не говоря про 9600, стабильно только на 57600 заработал....проверьте этот вариант...
Блок пользователя для работы с GSM
Anydy, компутеру отвечает и на 9600 нормально. осцилографером даже смотрел- дуня ни чего не отправляет модулю
Последний раз редактировалось pan 15 ноя 2017, 10:31, всего редактировалось 1 раз.
Блок пользователя для работы с GSM
так я и говорю, компутеру отвечал на любой скорости, а с дуней и скетчем не хотел....не знаю почему...pan писал(а):компутеру отвечает и на 9600
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей