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

Ғылым және технология

Видео о библиотеке для парсинга АТ команд GSM модуля Quectel MC60. Рассказывается о библиотеке для работы с модулем. Особенностях парсинга команд и работе в среде FreeRTOS.
Детальный обзор GSM модем Quectel MC60 GSM/GPRS/GNSS. Изучаем оценочную плату - • Детальный обзор GSM мо...
Канал в телеграмм - t.me/vladimir_medintsev
Канал Яндекс.Дзен - zen.yandex.ru/vladimir_medintsev
Канал на RuTube - rutube.ru/channel/1797552/
Канал на KZread - / vladimirmedintsev
------------------------------------------
Если вы хотите поддержать автора канала номер карты Сбер:
2202-2023-2480-4008
------------------------------------------
Не забывайте подписываться.
Библиотека - github.com/nimaltd/Sim800_V2

Пікірлер: 59

  • @admin_of_youtube
    @admin_of_youtube4 жыл бұрын

    тут ценное не только готовая библиотека, а то как она сделана. есть чему поучиться.

  • @WrongBee13
    @WrongBee133 жыл бұрын

    Первые секунды просто улыбнули так сказать ностальгически. 33600! На 57200 в конце соединения был звук струны

  • @megannnn98
    @megannnn984 жыл бұрын

    Давно работаю с AT командами, оказалось что в ходе эволюции своей программы работы с GSM модулем пришел примерно к тому же, что в этой библиотеке. Только freertos не пользую, делаю на протопотоках. Спасибо что делаете качественный и полезный контент.

  • @nimaltd
    @nimaltd4 жыл бұрын

    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

    3 жыл бұрын

    @@nimaltd Assalomu aleykum! Ba shumo siposguzor hastem baroi mehnathoyaton! Az Tojikiston salom))

  • @nimaltd

    @nimaltd

    3 жыл бұрын

    @@lilyaosim3634 lovely 🤗🤗

  • @drone_tales
    @drone_tales4 жыл бұрын

    И еще добавлю: обмен с модемом это именно диалог. Если мне мой склероз не изменяет, то запрещено параллельное выполнение команд. Также, запрещено слать нотификации во время выполнения команд. Так что надуманных коллизий с "одна команда раньше, другая позже" просто не произойдет. Единственное, что может случиться, это когда нотификация получена железом, но не прочитана софтом и софт отправил команду и ждет на нее ответ. Для этого и нужна State Machine.

  • @megannnn98

    @megannnn98

    4 жыл бұрын

    Во время выполнения команды может прийти сообщение что модуль готов принимать звонки, это не приятно, может испортить систему обработки

  • @drone_tales

    @drone_tales

    4 жыл бұрын

    @@megannnn98 Ну для этого и нужен флажок текущей команды. Все что не OK/ERROR - уведомление (ну или все что не цифра, если включен числовой режим отчета о результатах)

  • @user-dq2ci5ln5g
    @user-dq2ci5ln5g4 жыл бұрын

    Вах, звук аналогового модема, это божественно! 👍 Лет 30 назад, когда начали налаживать связь с электроподстанциями, начали использовать, как раз, простенькие модемы. Я, хлопцев развлекая, звонил с местного номера на линию с модемом, и насвистывал "приветствие"! В результате таких "кощунственных" действий, в терминальном окошке появлялось CONNECT 300, а потом вылезали случайные символы! Публика в восторге, овации, аплодисменты, поздравления... занавес!

  • @alekseywolf5405
    @alekseywolf54054 жыл бұрын

    Спасибо за видео! Очень своевременно! Я сейчас как раз мучаюсь со схожей задачей - парсингом AT-команд. Правда, в моём случае ваш опыт не слишком помогает: и платформа другая (ESP32, C++), и модуль очень специфический (Acsip S76G), к тому же и с командами там полный бардак! Мало того, что сам протокол LoRaWAN весьма не прост, так еще и китайцы, создавая модуль, так разгулялись с реализацией, что мама не горюй! Достаточно сказать, что такой роскоши, как документирование времени ответа на каждую из комманд, наши китайские товарищи себе не позволяют... "Догадайся сам!" А там некоторые ответы приходят сразу, а некоторые - через интервальные окна RX1 & RX2.

  • @asurahan

    @asurahan

    4 жыл бұрын

    Кстати стандартная прошивка есп32 сама работает на АТ командах. Покопай ее там полюбой есть пример парсера ат команд. Я думаю есп проще так так сам проц и софт там помощнее чем стмка

  • @iwh1te340
    @iwh1te3404 жыл бұрын

    Ухх, старый добрый писк модема))

  • @MrLuzanov
    @MrLuzanov4 жыл бұрын

    Так же начинал писать свою библиотеку обработки и парсинга АТ-команд. Навеяло всё то, что находил в инете. И написал похожее «чудо». Потом сделал выводы, проанализировав все возможные варианты ответов модема (порядок получения подтверждения, тела ответа и пр.), переписал всё с нуля. Типизировав различные команды и написав универсальный парсер, обернул это всё в одну основную функцию отправки команды. В результате библиотека стала реально намного читабельнее и понятнее. Единственный минус (пока в процессе написания) - обработка тайм-аута выполнения команды. Чтобы помимо обработки ошибок выполнения в ответах модема, была возможность генерить ошибку по тайм-ауту и не впадать в вечный луп ожидания ответа, которого может и не случиться

  • @danilgaijin8366
    @danilgaijin83664 жыл бұрын

    СМСки в своё время не отправляли, а вот для интернета использовали PPP режим. Библиотека вроде LwIP была.

  • @romanvladimirovich7282
    @romanvladimirovich72822 жыл бұрын

    На початку відео прям як мій дрєвній саморобний комп, грузиться із касетного магнітофона.

  • @sp11kenny
    @sp11kenny4 жыл бұрын

    Использовал я часть этой библиотеки. Много спорных моментов, которые я переделал под себя, так же контрибьютил в эту либу исправив один баг с смс сообщениями. Самым "плохим" местом является функция _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 Ну сочувствую. Отлаживайте и у вас все получится. Или напишите автору.

  • @almazsayfullin8833
    @almazsayfullin88334 жыл бұрын

    Здравствуйте! Подскажите, пожалуйста, как сделать так чтобы GNSS модуля MC60 отвечал только на запросы типа AT+QGNSSRD=\"NMEA/GGA\, а не все время выдавал данные на uart. Спасибо!

  • @vahtang-testers
    @vahtang-testers2 жыл бұрын

    Хорошая была библиотека....

  • @user-tb9fx9li2l
    @user-tb9fx9li2l3 жыл бұрын

    помогите пожалуйста как стереть предыдущую информацию с gsm модуля если в нем записан номер телефона и адреса серверов куда отправлять отчеты о своем состоянии! ???

  • @panigo63
    @panigo634 жыл бұрын

    Здравия друзья! Никак не могу прикрутить MQTT к этой библиотеке. Может у кого есть опыт с MQTT? поделитесь куском кода пожалуйста.

  • @sp11kenny

    @sp11kenny

    4 жыл бұрын

    Я использовал часть этой либы. Sim800 в transparent mode плюс Paho MQTT library. Также использовал один из выводов SIM800 который показывает в каком режиме мы сейчас находимся в режиме AT команд или в режиме Transparent

  • @РусланЧПУ
    @РусланЧПУ4 жыл бұрын

    Добрый день. А почему выбрали этот модуль, а не симкомовский. Я выбрал sim868, что мне понравилось, так это то, что у него футпринт такой же как у sim800c и на одну и ту же плату, в зависимости от необходимости спутниковой навигации, можно ставить или sim868 или sim800c.

  • @VladimirMedintsev

    @VladimirMedintsev

    4 жыл бұрын

    Скажем так, на мой взгляд Simcom сильно переоценен. Просто он стал популярным т.к. на нем масса модулей для ардуино. А спектр GSM модулей достаточно большой и разнообразный.

  • @РусланЧПУ

    @РусланЧПУ

    4 жыл бұрын

    Я знаю что модулей много всяких разных. Но плюс симковмовских как раз и заключается в том, что они хорошо раскурены. Как по мне, то я быстрее выберу то, что уже опробовано и пройдено, чем сидеть и думать где косяк, у меня или у производителя. Я думаю, что такое мнение у большинства, а для начинающих это вообще очень важно.

  • @drone_tales
    @drone_tales4 жыл бұрын

    Что-то как-то у Вас все сложно. Любой ответ (или уведомление) от модема всегда заканчивается CRLF. Дальше скармливаем все, что получено между двумя CRLF парсеру. Ну и дальше простейшая State Machine с одним флагом (тип команды) решает все проблемы. Одно исключение: PDU SMS, но там тоже не так уж и сложно все. И никаких библиотек не нужно.

  • @alekseywolf5405

    @alekseywolf5405

    4 жыл бұрын

    "Любой ответ (или уведомление) от модема всегда заканчивается CRLF." - это в нормальных модемах. Я сейчас мучаюсь с Acsip S76G - там полный дурдом! CRLF прилетает посреди ответа! Или ответ на некоторые из команд прилетает только после выполнения следующей! Китайцы - они такие китайцы!

  • @drone_tales

    @drone_tales

    4 жыл бұрын

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

  • @f33net

    @f33net

    4 жыл бұрын

    В современном мире понажимать галочки в кубе, прикрутить кучу разной хрени, ковыряться в чужой библиотеке часто корявой, получить код на пол флэшки проца - это более приятно, чем написать несколько строк кода. :) Когда-то на PC делал прогу конфигурирования модема - никаких проблем не возникло с какими-то там не вовремя командами не по очереди и т.п. Примитивный парсер. :)

  • @oleholeynikov8659
    @oleholeynikov86594 жыл бұрын

    Здравствуйте, есть замысел собрать монитор сети (сбор данных о "видимых" базовых станциях на местности, в разных стандартах связи - только идентификаторы (LAC/Cid) и качество сигнала). Можете направить меня в кусок даташита или может другие источники, которые помогут найти общий язык с модулями? Связывать буду с СТМ и вести лог.

  • @VladimirMedintsev

    @VladimirMedintsev

    4 жыл бұрын

    Для получения информации о качестве принимаемого сигнала, операторе и базовой станции служат команды AT+CSQ, AT+CREG и AT+COPS. Эти команды поддерживаются всеми известными модулями сотовой связи. Больше ничего не требуется. По уарту шлете запрос и получаете ответ.

  • @oleholeynikov8659

    @oleholeynikov8659

    4 жыл бұрын

    @@VladimirMedintsev спасибо!!! бегу вычитывать!! желаю успехов на канале) всегда рад видеть ваши новые видео.

  • @f33net
    @f33net4 жыл бұрын

    Т.е., вместо того, чтобы что-то сделать и рассказать типа о парсиге, листаем чужую библиотеку и четверть часа восхизаемся? :)))

  • @almazsayfullin8833
    @almazsayfullin88334 жыл бұрын

    Здравствуйте! Я делаю свой первый проект на 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, я потому и спрашиваю. А так тестовый код, ничего не делается, просто библиотеку подключил

  • @rusrus9017
    @rusrus90172 жыл бұрын

    Возможно ли сделать напрямую работу через rf radio модуль отправка и получение пакетов? То есть без мобильного процесора написать свой

  • @VladimirMedintsev

    @VladimirMedintsev

    2 жыл бұрын

    Да, возможно

  • @rusrus9017

    @rusrus9017

    2 жыл бұрын

    @@VladimirMedintsev если есть любая информация буду благодарен. Не знаю как загуглить даже, я так понял нужна микросхема rf радио и антена, вопрос какая? не смог найти не одного примера, также нужна плис или мк для декодирование gsm чтение из rf и отправки. Если у вас есть модуль gsm можете разобрать как работает изнутри схему под крышкой и работу на сырую?

  • @VladimirMedintsev

    @VladimirMedintsev

    2 жыл бұрын

    Вам проще будет заказать.

  • @rusrus9017

    @rusrus9017

    2 жыл бұрын

    @@VladimirMedintsev у меня нет коммерческой выгоды это заказывать только учебный интерес, поэтому сам соберу по крупицам

  • @DenisS1983
    @DenisS19838 ай бұрын

    Я наверное лютый извращенец потому что я купил модуль sim800l и я посылая модулю команду жду ответ и зная какой должен быть ответ делаю что-то если получил например ОК и что-то другое если ERROR. А извращение мое в том что я даже стандартных сишных функций для работы со строками не использую все что мне нужно вручную из строки выковыриваю. Уже больше месяца мудохаюсь и он еще даже и работает и даже почти так как задумано(не считая мелких глюков). Зато работу со строками прокачал.

  • @asurahan
    @asurahan4 жыл бұрын

    я слышал что SIM8000 не каждый работает в сетях на территории РФ. подскажите какой нужен именно для РФ и СНГ

  • @megannnn98

    @megannnn98

    4 жыл бұрын

    Sim800h работает например

  • @VladimirMedintsev

    @VladimirMedintsev

    4 жыл бұрын

    Ни разу с таким не сталкивался.

  • @asurahan

    @asurahan

    4 жыл бұрын

    Да спасибо. Интересовал именно последняя буква sim800x А то что прошивку можно сменить вот этого не слышал

  • @VladimirMedintsev

    @VladimirMedintsev

    4 жыл бұрын

    @@asurahan У всех подобных модулей можно обновлять прошивку. И порой появляются очень интересные плюшки.

  • @SandAlone
    @SandAlone3 жыл бұрын

    Вроде неплохая библиотека. Но с freertos я готов подружиться, но с HAL нет. Вот как альтернатива библиотека с русскими коментариями Kvasshtain'а .github.com/Kvasshtain/SIM800

  • @VladimirMedintsev

    @VladimirMedintsev

    3 жыл бұрын

    Спасибо. Полезно.

Келесі