GSM A6 вопрос про RING
- Войдите на сайт для отправки комментариев
Пнд, 26/09/2016 - 21:02
Заказал потестить GSM модуль A6 такой. Пказался очень достойной заменой M590. При не на много большей цене - больше функционал и меньше энергопотребление.
Пока едет, подробнее полистал доступные доки - не нашел есть ли в нем аналог ноги RING в M590? Т.е. GSM модуль работает автономно, а при получении SMS или входящем звонке будит МК дергая ногу RING.
Только получил пару A6C, сейчас разбираюсь. И похоже один дохлый. Что мешает будить МК от COM порта.
Только получил пару A6C, сейчас разбираюсь. И похоже один дохлый. Что мешает будить МК от COM порта.
Точняк)) Мешает разве что религия воспитанная спец ногой на М590)))
A6C - это который с камерой? А, если не сложно, поделитесь доками про него. С пол пинка сейчас не нашел.
Здесь про все http://www.electrodragon.com/w/GSM_GPRS_A6_Module
А есть готовые библиотеки под этот модуль?
Там ни к чему библиотека. Он управляется АТ командами в духе:
Список поддерживаемых команд есть в приведенной выше ссылке (спасибо!).
Что он нам отвечает тоже ловим с сериала, и разбираем в соответствии с задачами.
Спасибо, придет - буду разбираться.
Разбираюсь с этим модулем и не могу разобраться с чтением смс. Ранее стоял МС35 там все работало.
суть вопроса. отравляю несколько смс на модуль.
модуль принимает но не сохраняет их.
вот к примеру три подряд полученных смс:
+CIEV: "MESSAGE",1
+CMT: "+790********",,"2016/10/31,19:46:29+03
test1
+CIEV: "MESSAGE",1
+CMT: "+790********",,"2016/10/31,19:46:32+03
test2
+CIEV: "MESSAGE",1
+CMT: "+790********",,"2016/10/31,19:46:34+03
test3
везде смс в ячейке 1....
при попытке чтения выдает ошибку.
at+cmgr=1
+CMS ERROR:321
и так по любой ячейке..... никто не разбирался?
Разбираюсь с этим модулем и не могу разобраться с чтением смс. Ранее стоял МС35 там все работало.
суть вопроса. отравляю несколько смс на модуль.
модуль принимает но не сохраняет их.
вот к примеру три подряд полученных смс:
+CIEV: "MESSAGE",1
+CMT: "+790********",,"2016/10/31,19:46:29+03
test1
+CIEV: "MESSAGE",1
+CMT: "+790********",,"2016/10/31,19:46:32+03
test2
+CIEV: "MESSAGE",1
+CMT: "+790********",,"2016/10/31,19:46:34+03
test3
везде смс в ячейке 1....
при попытке чтения выдает ошибку.
at+cmgr=1
+CMS ERROR:321
и так по любой ячейке..... никто не разбирался?
У меня то же самое, только ошибка +CME ERROR: 58. Причем эту ошибку он выдает на любую команду, даже просто на АТ. Хотя звонить с модуля на другой телефон получается без проблем.
У меня причина все-таки в коде. Уважаемые гуру, подскажите, пожалуйста, где ошибка?
Команды в setup отрабатываются с ответом ОК, но при вводе команд в мониторе порта выдается ошибка +CME ERROR:58.
Звонок с моего телефона проходит, но не сбрасывается и диод не моргает.
Если закомментить строку 49, то смс мне отправляются без ошибок, но тогда команды в шилд не отправляются.
Модуль А6, плата UNO R3. Модуль подключен Tx на 2, Rx на 3, по другому модуль не отзывался. Питание на модуль подал через USB от телефонной зарядки 1,6а. Земли соединил.
У меня тоже косяки перли ри попытке работать с софтовым сериал и хардовым одновременно. потому сделал проще подключил еще один адаптер FTDI им смотрел что там происходит в обмене между модемом и ардуиной.
У меня логика работы другая я жду извещения о приходе смс и потом читаю из ячейки содержимое.
придется переделывать.
Здравствуйте! Как работает модуль, зависаний нет? Интересно, как вы его запитывали и как согласовали уровни портов? Ведь судя по ссылке, вы взяли голый модуль практически без обвязки...
Я предполагаю всё-так вместо гасящего диода по питанию использовать DC-DC конвертер на 4В, а вот с Rx/Tx портами, под вопросом. Ведь в модуле на входах Стоят ограничительные диоды, как я понимаю на 2,8В, а с Ардуинки приходят уровни 3,3В. В более дорогих модулях на А6, например в том, что ниже на фото, мы видим предобразователь уровней на МАХ232, явно не зря они его ставят? Может поставить на порты внешние стабилитроны на 2,8В дополнительно? Вопрос в том, насколько надежно Ардуинка будет воспринимать уровни 2,8В?
>> может кто дальше продвинулся?
alexlord, ага
там текст в семибитной кодировке
Всем привет, проконсультируйте пожалуйста, требуется в офисе поднять gsm шлюз с 10-20 номерами, вот сижу и ломаю голову, удастся ли подключить 10-20 модулей a6 к arduino. Прошу сильно не пинать, я новичек в этом и хочу разобраться с arduino ну и по возможности поднять данную задумку. Заранее благодарен за консультацию.
А можно сделать в 16bit UCS2, тогда и русские символы будут доступны
AT+CSCS="HEX"
OK
AT+CUSD=1,*100#,15
OK
+CUSD: 2, "00310030002E003000300440002E000A0416043C04380020002A00320034003000230
0200020041F043E043B044304470438002000350030003000300440002E002004370430002004320
43D0438043C043004420435043B044C043D043E04410442044C002000200028003300300440002F0
031003000200434043D0029" ,72
Расшифровка: "10.00р.
Жми *240# Получи 5000р. за внимательность (30р/10 дн)"
Это вывод непосредственно с терминала, модуль подключен к компу напрямую
А дальше либо PDU Converter, вводим в окно "USSD Entry/Display" и ставим "UCS2"
либо ручками Таблица кодировки UCS2 для СМС
сутки тестовой работы с отправкой данных каждые 6 минут на narodmon.ru
отравляю несколько смс на модуль.
модуль принимает но не сохраняет их.
при попытке чтения выдает ошибку.
at+cmgr=1
+CMS ERROR:321
и так по любой ячейке..... никто не разбирался?
В этом модуле по умолчанию не задана настройка куда сохранять входящие СМС, т.е. по умолчанию он их вообще нигде не хранит, ни в памяти ни на СИМ-карте, 3й параметр пустой:
Для того чтобы сохранялись на СИМ-карте нужно дать комманду:
.
>> может кто дальше продвинулся?
alexlord, ага
там текст в семибитной кодировке
Поделитесь пожалуста полным кодом.
...
Поделитесь пожалуста полным кодом.
И я за. Можете оформить в виде функции Decode7bit, у которой на вход два параметра: 1-й ссылка на входной буфер, 2-й ссылка на выходной буфер. Можно и третий - размер выходного буфера, чтобы по памяти не побежать.
Вот моя функция перекодировки.
Как пользоваться
А вот что получил в терминале
Так вот у меня вопрос что обозначает первый параметр в возвращаемом сообщении (1 или 2)?
Вот моя функция перекодировки.
Большое спасибо. Но у меня в терминале ничего не выходит. можете показать весь код пожалусто , либо хотябы ту часть где идет запрос на USSD , и void Setup ?
Большое спасибо. Но у меня в терминале ничего не выходит. можете показать весь код пожалусто , либо хотябы ту часть где идет запрос на USSD , и void Setup ?
И цикл программы
Функции waitConnect и waitRegistration, это ожидание конекта с GSM-модулем, и ожидание регистрации в сети соответственно. Если нужны скину код, но это простой цикл отправки и ожидания ответа опредкоманд.
Функции waitConnect и waitRegistration, это ожидание конекта с GSM-модулем, и ожидание регистрации в сети соответственно. Если нужны скину код, но это простой цикл отправки и ожидания ответа опредкоманд.
Большое спасибо. Очень помогло. Ваш код работает. Единственное добавил переход на скорость 9600. т.к.SoftwareSerial я так понял не особо любит эту скорость. Но почемуто не получается заставить работать по событию например проверять состояние счета при наличии входящего звонка. В сериал летят сплошные иероглифы. Не подскажите в чем проблема?
Надеюсь у тебя GSM модуль A6? Так вот у него автоматическая подстройка частоты сериала, нужно только несколько раз в секунду подать простую команду AT и дождаться на неё OK, при этом посылка команду установки скорости (ATZ+IPR=9600) явно не нужна. Это у меня выполняет функция waitConnect, вот её код:
После этого идёт ожидание регистрации в сети. Ответ на команду должен прийти 1,1. Вот код
И только после этого можно отсылать команды настройки, такие как
AT+CLIP=1
AT+CMGF=1
Большое спасибо, за совет. Исправил, все заработало.
Здравствуйте! А кто нибудь запитывал этот модуль от акб 18650 минуя встроенный стабилизатор?
Доброе утро!
Помогите новичку! Заказал GSM модуль A6 mini https://geardx.com/ru/p/gprs-a6-mini-Серийный-gprs-gsm-модуль-ядра-developemnt-совет-для-arduino-443770 , после чего обратил внимание, что у нет примеров подключения. На данной модели 16 контактов, а у большенства моделей - 24. Подскажите - для чего контакты HTX, HRX, IO14, NET, MIC2_P. Если правильно понял, то URX и UNX для подключения к компу или ардуино.
Сравните с другими моделями и с доками, пост #3. URX и UTX сериал порт.
Сравнивал.. пока не понятно... Может это для меня и лишние навороты, но интересно все же... Во всех элементарных примерах просто подключают через urx-utx и довольны... Ничего более полного пока не нашел...
Если названия выводов на плате не соответствуют названию в доках надо прозвонить от модема к пинам, ну и китайца пнуть на предмет описания. Из наворотов мне интересна камера, из за неё и брал. Это модель A6C.
Камера то же интересна, но это другой проект... Я заказал 590 для телеметрии и А6 - друг попросил дисковый сотовый телефон сделать для подарка товарищу... Я так понимаю, то же из Ростова будете?
Ну если дисковый сотовый с камерой вообще круто будет:) Из Ростова н/Д.
Круто.... но тогда еще экран приделать надо... и вайбер поставить.... Главное чтоб полифония была цветная ?-) Кстати - звонок оставляю родной.... А аппарат железный... с горгазовой аварийки, кажется... киллограм 5-6 весит :-)
Приехало и мне такое чудо. Вроде даже на АТ отвечает после доработок по опыту камрадов myxaz и novak. За что им спасиба, ибо на 115200 одни краказябы были. Код для старта так
Почитал по ссылке #3, и его первоисточник http://smart-prototyping.com/image/data/9_Modules/101756%20Wireless%20A6C/A6_A7_A6C_datasheet-EN.pdf почитал.
А девайс вобще от 5В нормально работает? Обосную вопрос цитатой "Working voltage : 3.3V-4.2V;" Заодно отвечу Iguana "А кто нибудь запитывал этот модуль от акб 18650 минуя встроенный стабилизатор? ", судя по диапазону он как раз на такое и заточен.
ПС. Думаю что ответ про 5В нашел на плате в виде стабилизатора. Т.е сам А6 - железная коробочка не расчитан на 5В, но продаваемая плата с А6 (которую называют А6_mini или тоже просто А6)))) уже с стабилизатором и может держать 5В и наверно даже несколько выше. Я верно понимаю?
Дело движется, но результат не получен.
скетч
Выдает
На карте деньги есть? У меня иногда регистрация в сети проходила даже больше минуты.
У меня один модуль на 5В 0.5А не запустился, думал что убитый. Второй заработал, но были сбои. От 1А БП оба заработали.
Несмотря на:
1. БП 5В 2А
2. электролит 3300мкФ
оно упрямствует :(
При этом в процессе включения статус регистрации последовательно, секунд за 30-40 проходит состояния
Ха! Кажется загадка решена. В списке сетей, а его я только что получил командой at+cops=? секунд за 20. Среди 3-х обнаруженых операторов напроч отсутствует мой. Тут я вспомнил "мелочь", он стандарта wcdma. А что с этим делом у A6? Ща почитаю.
Наигрался я этим А6. Не плох вроде. Сложноватый конечно набор команд, но терпимо. Стабилен, но без аппаратного ресета бывают неприятности с автоопределением скорости. Модем занимается чем то долгим, МК ребутнулся, пытается достучатся до модема, а он молчит да еще и на нетой скорости:) А потом чего выплевывает непонятное.
Код.
синематограф. https://youtu.be/cx0dIHB1zH8
Звонки принимает, номера определяет. А с СМС не так просто. Видать его настроить надо, а то он даже не сохраняет их. Я попробовал парочку прислать. Выдает кучу ошибок, а принятой не появляется в памяти. Я и плюнул.
....
А с СМС не так просто. Видать его настроить надо, а то он даже не сохраняет их. Я попробовал парочку прислать. Выдает кучу ошибок, а принятой не появляется в памяти. Я и плюнул.
Нужно подать команду куда сохранять СМС. По умолчанию она сразу приходит в терминал. Формат вывода тоже настраивается AT-командами. Разберись сначало с латинскими. Для руских букв особый формат.
Я как раз разбираюсь с USSD-запросами, там разбор тоже особый. Хочу баланс получать.
СМС. По умолчанию она сразу приходит в терминал.
Так вот что мне валилось в сириал! А я смотрю - странные какието ошибки большим потоком, а то наверно SMS была в PDU.
Я вобще не сильно уверен в востребованости функционала SMS. Для обмена данными TCP по GPRS явно предпочтительный. На крайняк если есть причины не держать его постоянно, можна по входящему звонку без ответа на него подымать TCP.
ПС. Пациент с вчерашнего вечера в сети, ни ребутов ни сбоев. ОК. Да на видео упомянут электролит по питанию на 3300мкФ. Без него включается, начинает работать но поиск сетей не проходит. Питание от USB через ардуино нано. Так что к питанию требователен.
Продолбавшись с SMS начал замечать некоторые странности в данных поступающих с A6. После исключения всех возможных факторов и экспериментов с разными скоростями взглянул на реализацию софтового сириала в SoftwareSerial.cpp.
Я много херни видел за жизнь в *.cpp, но такого пи...ватизма не припоминаю даже у джуниора.
Вот так,
Итого: МК уходит в прерывание и висит в нем все время пока не приймет стоповый. А это значить что при сплошном потоке данных у скетча времени на обработку принятого практически нет. Короткие паузы между стопом и стартом успешно забирает прерывание системного таймера. И на практике именно так выглядит ситуация. При приеме более 64 байт буфер софтового сириала заканчивается. А выбирать данные из него МК просто не успевает, он все время занят выполнением tunedDelay. И внутри прерывания. У остального кода нет шансов. Причем понижение скорости только ухудшает ситуацию.
Я счтитаю, что авторы такого кода должны быть известны каждому, чтоб услышав о них каждый мог плюнуть и обходить стороной все, к чему прикасались эти жопоруки.
Вот они, безславные ублюдки, выродки рода разработчиков. Будте прокляты в веках.
ladyada (http://ladyada.net)
Mikal Hart (http://www.arduiniana.org)
Я не строю атомные реакторы. Не умею и может й..нуть. Но я писал софтверный сириал и не раз, и на ассемблере для пиков и т.д. Прерывание пина и таймер легко решают задачу, пусть не для высоких скоростей но решает. Почему ублюдки-авторы берутся делать то, чего не умеют? Они надеются на свой фарт, что их не долбанет за их говнокод? А я думаю и надеюсь долбанет, и сильно.
ПС. Я Вам рассказал о своем последнем случае использования SoftwareSerial. И Вам не советую.
Да, там буфер 64 байта по умолчанию. Измени переменную отвечающую за буфер, советуют менять на 180.
Я отлаживаюсь на софтсериале, потом переключаюсь на аппаратное.
Я отлаживаюсь на софтсериале, потом переключаюсь на аппаратное.
Это для тех плат, где аппаратное одно? Те на меге можно сразу на аппаратном пробывать или есть другие причины?
Gprs никто ещё не юзал???, поделитесь если есть кодом.
Гммм.. ну как бы раз ТСР юзаю, наверно по GPRS. Код выше. Но вобщето актуальней АТ командами делится. Продолжаю здесь http://arduino.ru/forum/apparatnye-voprosy/gsm-modem-a6-v-rezhime-tcp т.к. к рингу это явно не относится.