Блок пользователя для работы с GSM
Блок пользователя для работы с GSM
Кто может, помогите с изменением оператора Delay на millis в скетче. никак не могу догнать, как правильно сделать.
if ( In_sms == true)
{
Serial1.print("AT + CMGS = \"");
delay(300);
Serial1.print( Phone );
delay(300);
Serial1.println("\"");
delay(300);
//
Serial1.println( text );
delay(300);
Serial1.println( "\n" );
delay(300);
//
Serial1.println( text1 );
delay(300);
Serial1.println( "\n" );
delay(300);
//
Serial1.println( text2 );
delay(300);
Serial1.println( "\n" );
delay(300);
//
Serial1.println( text3 );
delay(300);
Serial1.println( "\n" );
delay(300);
//
Serial1.println( text4 );
delay(300);
Serial1.println( "\n" );
delay(300);
//
Serial1.println( text5 );
delay(300);
Serial1.println( "\n" );
delay(300);
//
Serial1.println( text6 );
delay(300);
Serial1.println( "\n" );
delay(300);
//
Serial1.println((char)26);
delay(300);
Serial1.println();
delay(300);
}
if ( In_sms == true)
{
Serial1.print("AT + CMGS = \"");
delay(300);
Serial1.print( Phone );
delay(300);
Serial1.println("\"");
delay(300);
//
Serial1.println( text );
delay(300);
Serial1.println( "\n" );
delay(300);
//
Serial1.println( text1 );
delay(300);
Serial1.println( "\n" );
delay(300);
//
Serial1.println( text2 );
delay(300);
Serial1.println( "\n" );
delay(300);
//
Serial1.println( text3 );
delay(300);
Serial1.println( "\n" );
delay(300);
//
Serial1.println( text4 );
delay(300);
Serial1.println( "\n" );
delay(300);
//
Serial1.println( text5 );
delay(300);
Serial1.println( "\n" );
delay(300);
//
Serial1.println( text6 );
delay(300);
Serial1.println( "\n" );
delay(300);
//
Serial1.println((char)26);
delay(300);
Serial1.println();
delay(300);
}
Блок пользователя для работы с GSM
НовыйUser, Алгоритм работы блока меня устраивает полностью. 5 месяцев работы, 704 смс принято и отправлено. Зависаний и ошибок нет. Единственно, сейчас вылез баг из за оператора Delay.
Блок пользователя для работы с GSM
Когда приходит смс, основная программа тормозится на Delay, при работе с Каскадой вылетает ошибка
Последний раз редактировалось Vitez 29 июл 2016, 18:55, всего редактировалось 1 раз.
Блок пользователя для работы с GSM
На пальцах объяснять было не охота, поэтому взял блок из первого сообщения и переделал его.Vitez писал(а):Кто может, помогите с изменением оператора Delay на millis в скетче. никак не могу догнать, как правильно сделать.
Но так как устройства нет, проверить не могу, если не заработает пишите, будем разбираться.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Слимпер 29 июл 2016, 20:23, всего редактировалось 1 раз.
Блок пользователя для работы с GSM
Слимпер, спасибо.Интегрирую, отпишусь.
Последний раз редактировалось Vitez 29 июл 2016, 20:40, всего редактировалось 1 раз.
Блок пользователя для работы с GSM
Если я правильно понял, что вам надо ( в чем я не до конца уверен ), то вот так передел ваш проект.НовыйUser писал(а):но как это сделать - не знаю....если кто вкурсе - накидайте возможные решения кода, проверю....
Но проверить опять же нет возможности, пробуйте.
Когда Vitez, проверит тот вариант кода что я выкладывал раньше, и ваш блок лучше переделать.
Vitez, вопрос, а вариант SoftwareSerial не рассматривали?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Блок пользователя для работы с GSM
Можете выложить скриншот терминала что приходит (передает модуль) при получении SMS?НовыйUser писал(а):выход в терминал от модема при поступлении смс телефонный номер выглядит так:-сначала номер с некоторой доп инфой (онда строка)
-потом текст сообщения (вторая строка ниже)
Не могу понять последовательность.
Последний раз редактировалось Слимпер 30 июл 2016, 11:47, всего редактировалось 1 раз.
Блок пользователя для работы с GSM
Как не удобно без возможности самому проверить
Попробуйте эту версию.
Вроде нашел в коде пару косяков.
Попробуйте эту версию.
Вроде нашел в коде пару косяков.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Блок пользователя для работы с GSM
Странно, а можно глянуть, что на выходе Call, скажем вотНовыйUser писал(а):25 и 26 молчат
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Блок пользователя для работы с GSM
Ладно чуть позже попробую сымитировать приход SMS от модуля другой Arduino.НовыйUser писал(а):после коспиляции в системе только ком1 и ком5открываю монитор компорта 1 и 5
рефреш портов дает сброс контроллеру
подключение к 5 дает сброс контроллера
нулевого порта нету
снятие всей навески не решает глючности...
Блок пользователя для работы с GSM
Вот результат экспериментов, переделал блок так, что на выходе Call сразу номер телефон отправителя СМС.Слимпер писал(а):Ладно чуть позже попробую сымитировать приход SMS от модуля другой Arduino.
На выходе sms при получении СМС на один программный цикл подымается 1.
Внешнее обвязку тоже изменил.
На имитаторе прием проверял, срабатывает, проверьте на реальном варианте.
Дальше пока не полез.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Блок пользователя для работы с GSM
[spoiler=Спойлер]$IMAGE1$[/spoiler]Так добавляется,НовыйUser писал(а):только один пока вопрос...каким образом у верхнего AND появился 3 вход ?
[spoiler=Спойлер][/spoiler]
а так удаляется (или правой кнопкой на вход или значек)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Блок пользователя для работы с GSM
Сравнивать можно хоть десять и в блок AND (И), на выходе 1 будет только тогда когда на всех входах (2 или 10) будут 1.НовыйUser писал(а):я так к слову отвелчься от кода....просто не понятно какой смысл третьего входа если сравнение всего двух идет... просто проброс без обработки на выход...или недокументированная возможность сравнить разом 3 сигнала ?
Из хелпа Wiki, тоже есть и Онлайн помощи
Блок пользователя для работы с GSM
Вот это вообще странно, если прошёл сигнал gosms, то и на вход он должен прийти.НовыйUser писал(а):проверил оба телефона. оба работают ! ))) но через раз на них смски шлет....
Похоже, проблема в той части, что отправляет СМС, а раньше все всегда ответные смс уходили?
Может был перезапуск контроллера?НовыйUser писал(а):где-то за пол часа простоя была сработка реле без запросов... смс не отослало...как-то сам по себе сработал
Для контроля попробуй место gosms на вход блока поставить кнопку, и на вход Phone один конкретный телефон. Проверить в какой части все таки дело.НовыйUser писал(а):вообщем осталось понять как сделать чтобы отвечал на каждое смс любого номера...а не на 1-3-5-7-9
Блок пользователя для работы с GSM
Похоже дело в работе с самим модемом, хотя очень странно, что ровно через раз, блок отправки СМС там один, и он не может срабатывать по разному.НовыйUser писал(а):все три выхода стабильно разом срабатывают одновременно...и так же стабильно абсолютно через раз шлет ))
Что самое странное:
А код отправки я не менял.НовыйUser писал(а):а раньше все всегда ответные смс уходили?да
Надо будет еще посмотреть сам код отправки, возможно придется его править, для начало добавить проверку корректности отправки.
А что надо убирать, а зачем? Так то это сделать не проблема.НовыйUser писал(а):тайминги задержки роли не играют единственное что точно по выходам остается после выполнения висеть на выходе блока после выполнения всех операций содержимое смски и номер телефона...
Последний раз редактировалось Слимпер 31 июл 2016, 16:41, всего редактировалось 1 раз.
Блок пользователя для работы с GSM
Слимпер, Спасибо, все работает. Проблема с Каскадой то же устранилась.
Блок пользователя для работы с GSM
это разные формы записи одно и того символа.НовыйUser писал(а):на видео работа отправки смс. 16 минута. только у меня не кушает модем ни 0x0D не $1Aв сетапе только через \r и отправка (стрелка) через Serial3.println((char)26);
$0D (HEX) -- (char)13 (DEC)-- \r переноса строки
$1A - (char)26 тоже спец символ.
Ладно завтра еще посмотрю что можно сделать.
Блок пользователя для работы с GSM
Почитал описание команд, форум, переписал блок почти полностью.Слимпер писал(а):Ладно завтра еще посмотрю что можно сделать.
Сделал описание входов выходов
Новое:
Отправка по переднему фронту (один раз, даже если 1 все время висит)
Проверка корректности оправки СМС, выход с кодом Ошибки
Выходы Принята СМС и Отправлена СМС выдают одиночные импульсы
Была мысль добавить авто удаление СМС, т.е. кода сообщений становится много то удалять несколько старых. Но пока не до конца понял, что будет отвечать модуль на команду AT+CPMS?
Или лучше доделать авто удаление сообщения по его прочтению?
Еще есть команды готовности модуля к работе и регистрации в сети, можно было бы это анализировать, но в каком виде выводить не знаю.
Самое любопытное было бы разобраться как его в режим сна переводить, и будить обратно. Но это без модуля будет проблематично, т.к. необходимо подключение к реальному модулю.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Блок пользователя для работы с GSM
Блок получился супер, но где поддержка других контроллеров, например уно! Предлагаю вам в настройках блока сделать выбор портов для назначения RX TX
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя