GSM модуль Quectel MC60 GSM/GPRS/GNSS. AT команды, универсальная библиотека для парсинга.

  Рет қаралды 8,444

Vladimir Medintsev

Vladimir Medintsev

Күн бұрын

Пікірлер: 59
@WrongBee13
@WrongBee13 3 жыл бұрын
Первые секунды просто улыбнули так сказать ностальгически. 33600! На 57200 в конце соединения был звук струны
@drone_tales
@drone_tales 4 жыл бұрын
И еще добавлю: обмен с модемом это именно диалог. Если мне мой склероз не изменяет, то запрещено параллельное выполнение команд. Также, запрещено слать нотификации во время выполнения команд. Так что надуманных коллизий с "одна команда раньше, другая позже" просто не произойдет. Единственное, что может случиться, это когда нотификация получена железом, но не прочитана софтом и софт отправил команду и ждет на нее ответ. Для этого и нужна State Machine.
@megannnn98
@megannnn98 4 жыл бұрын
Во время выполнения команды может прийти сообщение что модуль готов принимать звонки, это не приятно, может испортить систему обработки
@drone_tales
@drone_tales 4 жыл бұрын
@@megannnn98 Ну для этого и нужен флажок текущей команды. Все что не OK/ERROR - уведомление (ну или все что не цифра, если включен числовой режим отчета о результатах)
@megannnn98
@megannnn98 4 жыл бұрын
Давно работаю с AT командами, оказалось что в ходе эволюции своей программы работы с GSM модулем пришел примерно к тому же, что в этой библиотеке. Только freertos не пользую, делаю на протопотоках. Спасибо что делаете качественный и полезный контент.
@admin_of_youtube
@admin_of_youtube 4 жыл бұрын
тут ценное не только готовая библиотека, а то как она сделана. есть чему поучиться.
@alekseywolf5405
@alekseywolf5405 4 жыл бұрын
Спасибо за видео! Очень своевременно! Я сейчас как раз мучаюсь со схожей задачей - парсингом AT-команд. Правда, в моём случае ваш опыт не слишком помогает: и платформа другая (ESP32, C++), и модуль очень специфический (Acsip S76G), к тому же и с командами там полный бардак! Мало того, что сам протокол LoRaWAN весьма не прост, так еще и китайцы, создавая модуль, так разгулялись с реализацией, что мама не горюй! Достаточно сказать, что такой роскоши, как документирование времени ответа на каждую из комманд, наши китайские товарищи себе не позволяют... "Догадайся сам!" А там некоторые ответы приходят сразу, а некоторые - через интервальные окна RX1 & RX2.
@asurahan
@asurahan 4 жыл бұрын
Кстати стандартная прошивка есп32 сама работает на АТ командах. Покопай ее там полюбой есть пример парсера ат команд. Я думаю есп проще так так сам проц и софт там помощнее чем стмка
@MrLuzanov
@MrLuzanov 4 жыл бұрын
Так же начинал писать свою библиотеку обработки и парсинга АТ-команд. Навеяло всё то, что находил в инете. И написал похожее «чудо». Потом сделал выводы, проанализировав все возможные варианты ответов модема (порядок получения подтверждения, тела ответа и пр.), переписал всё с нуля. Типизировав различные команды и написав универсальный парсер, обернул это всё в одну основную функцию отправки команды. В результате библиотека стала реально намного читабельнее и понятнее. Единственный минус (пока в процессе написания) - обработка тайм-аута выполнения команды. Чтобы помимо обработки ошибок выполнения в ответах модема, была возможность генерить ошибку по тайм-ауту и не впадать в вечный луп ожидания ответа, которого может и не случиться
@ГеннадийГром-в8ю
@ГеннадийГром-в8ю 4 жыл бұрын
Вах, звук аналогового модема, это божественно! 👍 Лет 30 назад, когда начали налаживать связь с электроподстанциями, начали использовать, как раз, простенькие модемы. Я, хлопцев развлекая, звонил с местного номера на линию с модемом, и насвистывал "приветствие"! В результате таких "кощунственных" действий, в терминальном окошке появлялось CONNECT 300, а потом вылезали случайные символы! Публика в восторге, овации, аплодисменты, поздравления... занавес!
@nimaltd
@nimaltd 4 жыл бұрын
Thanks for using my library 😘😘😘😘
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
Thanks a lot to you. This is a really best library.
@nimaltd
@nimaltd 4 жыл бұрын
@@VladimirMedintsev your welcome. please try last version www.github.com/nimaltd/gsm
@lilyaosim3634
@lilyaosim3634 4 жыл бұрын
@@nimaltd Assalomu aleykum! Ba shumo siposguzor hastem baroi mehnathoyaton! Az Tojikiston salom))
@nimaltd
@nimaltd 3 жыл бұрын
@@lilyaosim3634 lovely 🤗🤗
@sp11kenny
@sp11kenny 4 жыл бұрын
Использовал я часть этой библиотеки. Много спорных моментов, которые я переделал под себя, так же контрибьютил в эту либу исправив один баг с смс сообщениями. Самым "плохим" местом является функция _Sim80x_BufferProcess_ . Её стоит оптимизировать используя _else if_ конструкцию вместо _if_ что будет проверять строку дальше не смотря на то, что ответ уже был найден. Вот как это должно выглядеть: _else if ((str1 = strstr(strStart, " Call Ready ")) != NULL)_ Также для AT комманд лучше использовать IDLE line interrupt, чтобы знать, когда мы получили ответ на отправленную команду и по получении этого прерывания отправлять семафор в задачу которая парсит полученную строку.
@sp11kenny
@sp11kenny 4 жыл бұрын
Создал pull request с изменениями в _Sim80x_BufferProcess_ .
@zakhar7730
@zakhar7730 3 жыл бұрын
Привет тоже проблема с смс сообщениями так и не понял куда копать в коде.
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
@@zakhar7730 У него нет проблем с СМС. Тут речь о некоторых логических ошибках в организации как самой библиотеки, так и в том, как она взаимодействует с FreeRTOS, а с СМС проблемы нету. У меня на них ни один проект построен.
@zakhar7730
@zakhar7730 3 жыл бұрын
@@VladimirMedintsev Добрый день. У меня проблема в задержки после после отправки в uart все зависает . В файле tasks.c переменная должна принимать нулевое значение uxSchedulerSuspended а на ней 536872388 откуда оно берется не понятно "configASSERT( uxSchedulerSuspended == 0 );".
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
@@zakhar7730 Ну сочувствую. Отлаживайте и у вас все получится. Или напишите автору.
@iwh1te340
@iwh1te340 4 жыл бұрын
Ухх, старый добрый писк модема))
@romanvladimirovich7282
@romanvladimirovich7282 2 жыл бұрын
На початку відео прям як мій дрєвній саморобний комп, грузиться із касетного магнітофона.
@danilgaijin8366
@danilgaijin8366 4 жыл бұрын
СМСки в своё время не отправляли, а вот для интернета использовали PPP режим. Библиотека вроде LwIP была.
@almazsayfullin8833
@almazsayfullin8833 4 жыл бұрын
Здравствуйте! Подскажите, пожалуйста, как сделать так чтобы GNSS модуля MC60 отвечал только на запросы типа AT+QGNSSRD=\"NMEA/GGA\, а не все время выдавал данные на uart. Спасибо!
@ІванВілюх-ь7н
@ІванВілюх-ь7н 4 жыл бұрын
помогите пожалуйста как стереть предыдущую информацию с gsm модуля если в нем записан номер телефона и адреса серверов куда отправлять отчеты о своем состоянии! ???
@vahtang-testers
@vahtang-testers 2 жыл бұрын
Хорошая была библиотека....
@panigo63
@panigo63 4 жыл бұрын
Здравия друзья! Никак не могу прикрутить MQTT к этой библиотеке. Может у кого есть опыт с MQTT? поделитесь куском кода пожалуйста.
@sp11kenny
@sp11kenny 4 жыл бұрын
Я использовал часть этой либы. Sim800 в transparent mode плюс Paho MQTT library. Также использовал один из выводов SIM800 который показывает в каком режиме мы сейчас находимся в режиме AT команд или в режиме Transparent
@SandAlone
@SandAlone 4 жыл бұрын
Вроде неплохая библиотека. Но с freertos я готов подружиться, но с HAL нет. Вот как альтернатива библиотека с русскими коментариями Kvasshtain'а .github.com/Kvasshtain/SIM800
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
Спасибо. Полезно.
@drone_tales
@drone_tales 4 жыл бұрын
Что-то как-то у Вас все сложно. Любой ответ (или уведомление) от модема всегда заканчивается CRLF. Дальше скармливаем все, что получено между двумя CRLF парсеру. Ну и дальше простейшая State Machine с одним флагом (тип команды) решает все проблемы. Одно исключение: PDU SMS, но там тоже не так уж и сложно все. И никаких библиотек не нужно.
@alekseywolf5405
@alekseywolf5405 4 жыл бұрын
"Любой ответ (или уведомление) от модема всегда заканчивается CRLF." - это в нормальных модемах. Я сейчас мучаюсь с Acsip S76G - там полный дурдом! CRLF прилетает посреди ответа! Или ответ на некоторые из команд прилетает только после выполнения следующей! Китайцы - они такие китайцы!
@drone_tales
@drone_tales 4 жыл бұрын
Конкретно с таким не работал, но через мои руки прошла минимум пара сотен различных устройств (телефонов, модемом, модулей типа Вашего) - ни разу не встречал неадекватной реализации протокола. Да, были косяки с поведением, да были проблемы с ошибками реализации, но чтобы криво реализованный протокол - никогда.
@f33net
@f33net 4 жыл бұрын
В современном мире понажимать галочки в кубе, прикрутить кучу разной хрени, ковыряться в чужой библиотеке часто корявой, получить код на пол флэшки проца - это более приятно, чем написать несколько строк кода. :) Когда-то на PC делал прогу конфигурирования модема - никаких проблем не возникло с какими-то там не вовремя командами не по очереди и т.п. Примитивный парсер. :)
@РусланЧПУ
@РусланЧПУ 4 жыл бұрын
Добрый день. А почему выбрали этот модуль, а не симкомовский. Я выбрал sim868, что мне понравилось, так это то, что у него футпринт такой же как у sim800c и на одну и ту же плату, в зависимости от необходимости спутниковой навигации, можно ставить или sim868 или sim800c.
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
Скажем так, на мой взгляд Simcom сильно переоценен. Просто он стал популярным т.к. на нем масса модулей для ардуино. А спектр GSM модулей достаточно большой и разнообразный.
@РусланЧПУ
@РусланЧПУ 4 жыл бұрын
Я знаю что модулей много всяких разных. Но плюс симковмовских как раз и заключается в том, что они хорошо раскурены. Как по мне, то я быстрее выберу то, что уже опробовано и пройдено, чем сидеть и думать где косяк, у меня или у производителя. Я думаю, что такое мнение у большинства, а для начинающих это вообще очень важно.
@rusrus9017
@rusrus9017 2 жыл бұрын
Возможно ли сделать напрямую работу через rf radio модуль отправка и получение пакетов? То есть без мобильного процесора написать свой
@VladimirMedintsev
@VladimirMedintsev 2 жыл бұрын
Да, возможно
@rusrus9017
@rusrus9017 2 жыл бұрын
@@VladimirMedintsev если есть любая информация буду благодарен. Не знаю как загуглить даже, я так понял нужна микросхема rf радио и антена, вопрос какая? не смог найти не одного примера, также нужна плис или мк для декодирование gsm чтение из rf и отправки. Если у вас есть модуль gsm можете разобрать как работает изнутри схему под крышкой и работу на сырую?
@VladimirMedintsev
@VladimirMedintsev 2 жыл бұрын
Вам проще будет заказать.
@rusrus9017
@rusrus9017 2 жыл бұрын
@@VladimirMedintsev у меня нет коммерческой выгоды это заказывать только учебный интерес, поэтому сам соберу по крупицам
@f33net
@f33net 4 жыл бұрын
Т.е., вместо того, чтобы что-то сделать и рассказать типа о парсиге, листаем чужую библиотеку и четверть часа восхизаемся? :)))
@oleholeynikov8659
@oleholeynikov8659 4 жыл бұрын
Здравствуйте, есть замысел собрать монитор сети (сбор данных о "видимых" базовых станциях на местности, в разных стандартах связи - только идентификаторы (LAC/Cid) и качество сигнала). Можете направить меня в кусок даташита или может другие источники, которые помогут найти общий язык с модулями? Связывать буду с СТМ и вести лог.
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
Для получения информации о качестве принимаемого сигнала, операторе и базовой станции служат команды AT+CSQ, AT+CREG и AT+COPS. Эти команды поддерживаются всеми известными модулями сотовой связи. Больше ничего не требуется. По уарту шлете запрос и получаете ответ.
@oleholeynikov8659
@oleholeynikov8659 4 жыл бұрын
@@VladimirMedintsev спасибо!!! бегу вычитывать!! желаю успехов на канале) всегда рад видеть ваши новые видео.
@almazsayfullin8833
@almazsayfullin8833 4 жыл бұрын
Здравствуйте! Я делаю свой первый проект на STM32F030 и хотел бы "прикрутить эту библиотеку к проекту". Подскажите пожалуйста, уважаемые знатоки, как это правильно сделать в Keil, а то у меня 98 ошибок, начиная с этой - cubetest\cubetest.axf: Error: L6406E: No space in execution regions with .ANY selector matching startup_stm32f030x6.o(STACK). До этого работал только c AVR . Спасибо!
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
В файле readme идущем с библиотекой все прекрасно описано и в видео показано, я не знаю что еще можно к этому добавить. Ваша ошибка указывает что у микроконтроллера место закончилось. В смысле памяти не хватило... Надо смотреть на сколько не хватает и или оптимизировать или микроконтроллер менять. Надо смотреть сколько вы ее тратите и еа что.
@almazsayfullin8833
@almazsayfullin8833 4 жыл бұрын
@@VladimirMedintsev, Вы просто сказали, что пробовали эту библиотеку на stm32f030, я потому и спрашиваю. А так тестовый код, ничего не делается, просто библиотеку подключил
@DenisS1983
@DenisS1983 Жыл бұрын
Я наверное лютый извращенец потому что я купил модуль sim800l и я посылая модулю команду жду ответ и зная какой должен быть ответ делаю что-то если получил например ОК и что-то другое если ERROR. А извращение мое в том что я даже стандартных сишных функций для работы со строками не использую все что мне нужно вручную из строки выковыриваю. Уже больше месяца мудохаюсь и он еще даже и работает и даже почти так как задумано(не считая мелких глюков). Зато работу со строками прокачал.
@asurahan
@asurahan 4 жыл бұрын
я слышал что SIM8000 не каждый работает в сетях на территории РФ. подскажите какой нужен именно для РФ и СНГ
@megannnn98
@megannnn98 4 жыл бұрын
Sim800h работает например
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
Ни разу с таким не сталкивался.
@asurahan
@asurahan 4 жыл бұрын
Да спасибо. Интересовал именно последняя буква sim800x А то что прошивку можно сменить вот этого не слышал
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
@@asurahan У всех подобных модулей можно обновлять прошивку. И порой появляются очень интересные плюшки.
99.9% IMPOSSIBLE
00:24
STORROR
Рет қаралды 26 МЛН
Мясо вегана? 🧐 @Whatthefshow
01:01
История одного вокалиста
Рет қаралды 7 МЛН
✔️GSM-управление ГАРАЖНЫМ ОТОПЛЕНИЕМ.
18:47
Reyax RYS8830. GNSS module with world's smallest GNSS chip from Sony Semiconductor
13:57
Электроника в объективе
Рет қаралды 43 М.
99.9% IMPOSSIBLE
00:24
STORROR
Рет қаралды 26 МЛН