Отладочная плата на базе SIM900D
Здравствуйте!
Подключив все и подав питание, убедившись что все нормально, запускаем программу
Далее жмем Сохранить чтобы не вводить каждый раз и соединяемся с модулем нажимая кнопку Соединение. Появится вот такое окно:
Ну теперь можно начинать. Первая команда для соединения с модулем должна быть всегда AT. Если модуль ответил Ок значит все правильно, если нет, ищем ошибку.
Перед тем как переходить к командам немного болтовни. Как я понял все команды разделены на три части.
Теперь переходим к командам. Здесь я рассмотрю только основные команды, которые необходимы для работы модуля. Для более глубокого изучения читайте мануал. Но! Я в разделе Справочники создам ветку SIM900D и буду туда складывать команды с описанием по мере их изучения.
AT+GSV
AT+CSQ
AT+COPS?
AT+CCLK?
AT+CCLK=»гг/мм/дд,чч:мм:сс+чп»
ATEх
AT+CMEE=x
ATVx
ATD89161234567;
ATA
ATS0=x
ATH0
AT+CLIP=1
AT+GSMBUSY=x
AT+CMGR=x,y
AT+CMGD=x
AT+CMGS=»89161234567″
И на по следок смешная но очень важная команда.
ATD#102#
Отладочная плата на базе SIM900D
Вот и все. В следующей статье будем прикручивать модуль к МК.
Больше года прошло, а к МК до сих пор не прикрутили?)))))
Да чего-то я подзабил на него))) Платка покрылась пылью. Чел который хотел на ее базе мониторить температуру в доме передумал, а мне оно как-то пока не нужно. Если интересно прикрутить к МК то можно подумать. Там в общем ничего сложного нет.
Было бы интересно посмотреть на исходники прошивки)))
На недельке попробую че нить накидать
А обязательно прикручивать микроконтроллер? Вроде с поддержкой embedded AT он не нужен. Я ещё толком не разобрался если у вас есть подробная информация скиньте пожалуйста на почту([email protected]).
Поправьте кодировки
Вопрос — если на плате MAX3232 замкнуть пины RX и TX, в терминале мне должно будет приходить эхо на мои запросы? Т.е. схема такая: на компе запущена Putty, к компу подключен USB-COM конвертер, к которому подключена MAX3232. Дальше подключений нет, только замкнуты RX и TX. У меня не работает MAX3232 либо USB-COM конвертер, вот пытаюсь разобраться.
Давайте по порядку. Для того чтобы проверить USB-COM, просто перемкните 2 и 3 контакты на переходнике. При посылке в порт через Putty вам должно вернутся тоже самое. Ну будет казаться что вы просто печатаете текстовой файл. Если ничего выводится не будет, то не работает переходник. Но это мало вероятно. Внимательно посмотрите правильность разводки MAX3232 Питание не забудьте подвести 3,3в и обвязать общий провод.
Всё получилось! Несколько дней мучился, не у кого спросить было. Проблема была в том, что я не подавал питание на Vcc на плате MAX3232, т.к. почему-то решил, что плата сама от COM-порта питается. Подавать на Vcc можно от 3 до 5В, не обязательно 3.3В. У меня и от 2.9В работает. Спасибо за ответ.
Некрасиво запрещать copy paste на страничке пришлось сохранять страничку и открывать ее в ворде.. защита банальна но пользоваться неудобно
Каюсь. Исправлю. Самому надоело.
Команда A/ кошерная — Повтор предыдущей команды.
Может какую нибудь темку открыть по командам для SIM900D. Я вот сейчас с FTP файлик скачал платкой свежекупленой, пару вечеров откорячился с командами по форумам. Глядишь кому то пригодится. За примечание про точку с запятой в конце набора номера респектище большое. На других сайтах на ней внимание не акцентировалось, так тоже не сказать что бы сильно помучился, но и NO CARRIER на ровном месте радости не доставляло.
Можно даже все там переписать и сгруппировать по темам.
В «тут» продолжить может только хозяин сайта. с одной стороны это хорошо тем что получается не засраный флудом справочник. С другой стороны если возникнут вопросы там их уже не обсудить. Можно выкладывать на ветке форума, с отступлениями и развёрнутыми комментариями в качестве рабочего материала. А после проверки как минимум ещё одним человеком на предмет работоспособности забивать в скрижали «тут»
Ща сделаем)
Готово.
www.avrki.ru
Итак, после продолжительного времени раскуривания тонкостей работы с GSM модулем SIM900D анонсируем первый рабочий проект, совмещающий в себе охранную систему с возможностью удаленного контроля. Если кратко, то устройство способно отправлять информирующие SMS в случае срабатывания датчика проникновения, делать дозвон для возможности аудиоконтроля помещения, следить за температурой и отправлять ее смс-кой по запросу, а также управлять какой-нибудь нагрузкой по команде отправленной по смс.
Кто следил за данной темой, тот в курсе, что у меня GSM модуль и модуль управления им — две разные платы, соединенные бутербродом (см. плата с SIM900D и плата управления). На управляющей плате помимо микроконтроллера ATmega32a стоит модуль питания, выполненный на преобразователе LM2596, он запитывает схему постоянным напряжением 3,5 вольт. В принципе подойдет любой другой источник питания, главное чтобы он был способен кратковременно вытянуть до 2 ампер (именно такое потребление GSM-модуля в момент регистрации).
Удобства ради, к плате управления подключен дисплей от телефона Nokia3310, методы работы с котором уже ни раз описывались на этом сайте. Благодаря дисплею можно быстро определить состояние устройства и значение датчиков.
В итоге получившаяся схема подключения вышла такая (кликабельно):
Нумерация выводов микроконтроллера на схеме приведена для DIP корпуса, поэтому если повторяете схему с использованием мк в корпусе TQFP будьте внимательны, нумерация выводов у него отличается. Тактируется микроконтроллер от внешнего кварца на 16 МГц.
Линия Control идущая от коллектора транзистора Q2 к выводу PortD.4 микроконтроллера добавлена для перестраховки и нужна за тем чтобы следить включен ли модуль. Так как порог выключения у SIM900 составляет 3,2 вольта то даже при незначительной просадке напряжения модуль автоматически выключится, тогда как микроконтроллер продолжит работать и выполнять программу (порог сброса у ATmega32a 2,7 вольта). В рабочем состоянии на этой линии находится низкий уровень. Если микроконтроллер обнаружит что на этой линии высокий уровень, выполнится функция повторного запуска GSM модуля.
А вот так это выглядит в работе на данный момент.
После окончательной обгонки программы, все это будет засунуто в корпус, а разъемные соединения для надежности будут запаяны.
На дисплей выводится основная информация о состоянии устройства: название оператора, качество сигнала связи, значение температуры с датчика 18b20, состояние выхода нагрузки и датчика проникновения, а так же время и дата.
Видео включения модуля
Время и дата берутся от встроенных в GSM-модуль часов. Для их работы обязательно наличие 3-х вольтовой батарейки подключенной к выводу 15 (VRTC). Диод D1 рекомендуется ставить с низким падением напряжения, например Шоттки. Настройка часов и даты делается в ручную, команды были описаны ранее здесь
Дата выводится
на дисплей
в том формате как получается с модуля, тоесть сначала год, затем месяц и дата. Здесь пока ничего менять не стал.
За измерение температуры отвечает датчик DS18B20, он подключается к выводу PortD.3 микроконтроллера.
К PortD.6 можно подключить какую-нибудь нагрузку и управлять ей посредством команд смс. У меня сейчас висит светодиод — D4 на схеме. Но ничего не мешает повесить сюда релюху или симистор и управлять чем-нибудь посерьезней.
В охранных целях планируется применение датчика движения HC-SR501, купленного на E-bay. В случае срабатывания на выходе датчика появляется логическая единица. Поймав ее, микроконтроллер даст команду на отправку SMS сообщения по телефонному номеру, заданному в программе.
Выход датчика подключается к выводу PortD.7 микроконтроллера, на схеме, датчик условно заменен на кнопку.
Заместо датчика движения можно ставить любые другие средства обнаружения проникновения — датчики открывания окон и дверей, датчики разбития стекла, фотоэлектрические датчики и др. в общем все на что способна фантазия.
Для того чтобы предотвратить многократное отсылание предупреждающих смс в случае срабатывания датчика, в программу введено ограничение: после первого отправленного смс ставится запрет на последующую отправку. Чтобы заново разрешить отправку уведомляющих сообщений при срабатывании датчика, необходимо отослать на модуль смс с определенной командой. Когда посылка смс запрещена на дисплей возле состояния датчика, выведется восклицательный знак.
Список команд
А вот и список команд в смс которые обрабатывает модуль. Для удобства и простоты комады цифровые, возможно в следующих версиях прошивки будут более осмысленные имена команд 🙂
0 — Отключение нагрузки (на выводе PortD.6 выставляется логический 0)
1 — Включение нагрузки
(на выводе PortD.6 выставляется логическая 1)
2 — Приняв эту команду, модуль перезвонит на указанный в программе телефонный номер
3 — Запрос баланса и отправление его смс-кой обратно на указанный номер. Здесь есть один важный нюанс — ответы на USSD запросы обязательно должны приходить в латинице. Иначе заместо осмысленного текста в ответ придет сообщение в шестнадцатеричной кодировке. Как перевести USSD в латиницу нужно уточнить у своего оператора. К примеру, на используемой мной симке от Смартса, нужно ввести *102*1# (в мегафоне *105*0#)
4 — Запрос температуры. Значение температуры будет отправлено нам в смс.
5 — Разрешенить отсылать сообщения в случае срабатывания датчика проникновения.
6 — Запрет на отправление уведомляющих смс от датчика проникновения.
? — По этой команде модуль пришлет нам смс, в котором находится общая информация об устройстве, такие как значение с датчика температуры, включена ли нагрузка, состояние на входе от датчика проникновения и разрешена ли отправка уведомляющих смс от него. К примеру, вот как может выглядеть такое сообщение: температура +24, нагрузка выключена, на выходе датчика движения 0, отправка смс в случае срабатывания запрещена.
Теперь как настроить чтобы модуль отправлял sms именно на ваш номер. В архиве с программой находим основной файл программы, она так и называется «программа» 🙂 и находим в ней константу:
Const Phonenumber = «+7908390хххх»
подставляем сюда свой номер телефона, компилируем программу и получаем hex файл прошивки.
Программа как и всегда написана в Bascom-AVR, поэтому разобраться с алгоритмом работы с GSM модулем достаточно просто. Удачи!
Ну и напоследок демонстрация того как модуль обрабатывает команды.
Отдельное спасибо за участие и помощь в разработке, давнему товарищу сайта Сергею RD3AVJ!
Архив с исходниками
Схема в Proteus
UPD: от 31.10.12
Немного доработал прошивку, теперь для того чтобы задать номер на который будут слаться уведомляющие SMS не нужно перекомпилировать программу. Достаточно послать на модуль смску с сообщением «Firstnumber» (без ковычек) и номер, с которого была отправлена эта команда, записывается в энергонезависимую память микроконтроллера.
Скачать прошивку
avrproject.ru
Номер в каталоге | Описание (Функция) | производитель | |
SKY77552 | Quad-Band Tx / Dual-Band Rx iPAC™ FEM for GSM / GPRS (824–915 MHz and 1710–1910 MHz) | Skyworks Solutions | |
SKY77548 | Tx-Rx iPAC™ Front-End Module for Dual-Band GSM / GPRS | Skyworks Solutions | |
CXM3000GA | GSM900/1800/1900 Dual/Triple Band Rx/Tx GSM/GPRS Transceiver Module / 60-pin LFLGA module package | Sony Semiconductor | |
SKY77500 | SKY77500 iPAC™ FEM for Quad-Band GSM / GPRS | Skyworks Solutions | |
SKY77543 | Tx–Rx iPAC™ FEM for Dual-Band GSM / GPRS (824–849 MHz), (1850–1910 MHz) | Skyworks Solutions | |
SKY77555 | Tx–Rx FEM Based on CMOS PA for Dual-Band GSM / GPRS (880–915 MHz and 1710–1785 MHz) | Skyworks Solutions | |
SKY77542 | SKY77542 Tx–Rx iPAC™ FEM for Dual-Band GSM/GPRS (880–915 MHz), (1710–1785 MHz) | Skyworks Solutions | |
SKY77528 | Tx Front-End Module for Quad-Band GSM / EDGE | Skyworks Solutions | |
SKY77529 | Tx Front-End Module for Quad-Band GSM / EDGE | Skyworks Solutions | |
SKY77527-21 | Tx Front-End Module for Quad-Band GSM / EDGE | Skyworks Solutions |
ru.datasheetbank.com
Как уже писалось ранее, для начала общения с только что испеченным модулем, необходимо отправить команду «AT». После чего он автоматически подстроит скорость порта и вернет «OK». Теперь когда скорость настроена, нужно ее зафиксировать, чтобы каждый раз при включении не выпонять это действие. Для настройки порта служат следующие команды:
AT+IPR=19200 — настройка скорости порта.
Можно поставить слудующие значения: 0, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
0 — автовыбор, это значение стоит по умолчанию .
Также можно настроить режим передачи:
AT+ICF=3,3
Первое число — биты данных/четность/стоп биты
1. 8/0/2
2. 8/1/1
3. 8/0/1, стоит по умолчанию.
4. 7/0/2
5. 7/1/1
6. 7/0/1
Второе число — четность
0 — нечетный
1 — четный
3 — нет
После настройки эти параметры сохранятся в энергонезависимой памяти модуля, поэтому в следующий раз эти действия проделыватьа не придется.
Дальше можно глянуть информацию о модуле:
AT+GMM — идентификатор модуля.
Модуль в ответ вернет производителя и модель: «SIMCOM_SIM900D»
AT+GOI — более короткий идентификатор модуля.
В ответ приходит только «SIM900D»
AT+GMR — версия прошивки.
Может пригодится если захочется залить в модуль другую версию прошивки.
AT+GSV — она включает в себя все три предыдущие команды.
Вернет производителя модуля, его модель и версию прошивки.
AT+GSN — вернет IMEI модуля.
Может пригодится когда нужно точно идентифицировать модуль. IMEI также продублирован на этикетке наклееной на модуль, и они должны совпадать.
Следующим шагом можно настроить часы реального времени модуля. Для этого оправляем следующую команду:
AT+CCLK=«yy/mm/dd,hh:mm:ss+zz»
где по порядку идут
«год/месяц/дата,час:минуты:секунды+часовой пояс» Данные обязательно отправляются с ведущими нулями, тоесть, к примеру, если месяц у нас «4», то отправить должны «04».
Получить обратно текущие время и дату можно отправив ту же команду, только со знаком «?»:
AT+CCLK? — считываем время с модуля
Дальше можно настроить то, в каком формате будет отвечать модуль.
ATE0 — режим эха
0 — выключен
1 — включен. Стоит по умолчанию.
ATV0 — формат ответа модуля.
1 — полный текстовый ответ с эхом (если включен). Стоит по умолчанию.
0 — возврат только кода ответа.
В первом случае всегда будет возвращаться OK, ERROR и прочее, а во втором будут возвращаться коды результата. Так вместо OK вернется 0, а вместо ERROR 4.
AT+CMEE=0 — уровень информации об ошибке. Может быть от 0 до 2.
0 — отключено. Будет просто писать ERROR.
1 — код ошибки. Будет возвращать цифровой код ошибки.
2 — описание ошибки. Напишет что именно ему не нравится в команде.
Для работы с модулем через терминал удобней режимы ATV1, ATE1 AT+CMEE=2, для общения с микроконтроллером лучше использовать ATV0, ATE0 и AT+CMEE=0 — так проще будет обрабатывать полученные ответы.
Теперь глянем информацию о GSM сети. К примеру, можно узнать качество сигнала.
AT+CSQ — информация о качестве сигнала.
Модуль вернет два числа +CSQ: 17,0
17 — уровень сигнала. Может быть в диапазоне 0..31 или 99. Чем больше тем лучше, но 99 значит его отсутствие.
0 — коэффициент ошибок связи (т.н. RXQUAL). Может быть от 0 до 7, чем число меньше тем качество связи лучше.
AT+COPS? — информация об операторе, в сети которого зарегистрирован модуль.
Еще можно сделать запрос в виде AT+COPS=? После достаточно длительного поиска, модуль выдаст список найденных сетей.
Ну а теперь команды, позволяющие использовать сотовую связь по назначению.
ATD1234567890; — набор номера.
Модуль позвонит по указанному номеру и вернет один из вариантов
BUSY — номер занят
NO DIALTONE — нет сигнала на линии
NO CARRIER — нет сети или другая проблема (например, нет денег на счету)
NA ANSWER — нет ответа
CONNECT — есть контакт!
Если же номер сохранён, например, на SIM карте, и SIM карта выбрана в качестве телефонной книги (обычно, так оно и есть по умолчанию), то для его вызова существует команда ATD>1;. Числовое значение определяет номер ячейки карты, где хранится вызываемый номер.
AT+CLIP=1 — включение определения номера входящего звонка
Если отправить команду с 0, то определение номера отключится и модуль вместо номера вызывающего будет слать только сообщение «RING».
ATA — ответить на звонок.
ATH0 — разорвать все соединения. Может принимать значения 0..5, указывающие какие виды связи нужно разорвать.
ATS0=0 — этой командой можно установить сколько пройдет гудков до автоматического поднятия трубки. 0 — только вручную, стоит по умолчанию.
AT+GSMBUSY=1 — запрет всех входящих звонков.
1, — запретить все входящие звонки
0, — разрешить входящие
Результат данной команды не сохраняется в памяти и его надо повторять при каждом включении.
Проверка баланса, так называемый USSD запрос можно делать той же командой ATD, только здесь есть один нюанс.
Запрос лучше отправлять на #100#, так как на *100# сообщение приходит в шестнадцатеричном формате:
AT+CMIC=0,15 – команда для установки чувствительности микрофона. Чувствительность определяется числовым значением, которое находится после символа =. В сигнализациях используется очень часто – для аудиоконтроля охраняемого помещения. Экспериментируя с этим значением, можно добиться слышимости малейших шорохов.
При приеме SMS модуль сообщит об этом, выдав в терминал сообщение «+CMTI: «SM»,3». Где 3 означает номер пришедшего сообщения.
Для прочтения СМС можно использовать команду AT+CMGR=3,0 (3-номер сообщения, которое хотим прочитать, 0-изменить статус сообщения на прочитанный)
В ответ модуль пришлет информацию о том от кого прошло сообщение и в какое время. «REC UNREAD» означает что у сообщения стоит статус непрочитанного.
Также нужно уметь автоматически удалять сообщения, а то в последнее время операторы приноровились срать всякой рекламой, и в автономном плавании быстро произойдет заполнение памяти. Удаляются сообщения командой:
AT+CMGDA=«DEL ALL» команда удалит все сообщения
Также можно удалить только определенный тип сообщений:
«DEL READ» — прочитанных
«DEL UNREAD» — не прочитанных
«DEL SENT» — отправленных
«DEL UNSENT» — не отправленных
«DEL INBOX» — полученных
«DEL ALL» — всех сообщений
Чтобы отправить SMS нужно ввести команду:
AT+CMGS=«ХХХХХХХХХХХ» ххх..хх — номер на который нужно отправить сообщение (11 знаков)
После ввода этой команды появится символ «>» указывающий что можно вводить текст сообщения. После ввода и нажатия на Enter каретка сместится вниз и текст можно печатать с новой строки, и поэтому для того чтобы отправить сообщение нужно нажать сочетание CTRL+Z
Цифра 131 после CMGS показывает число отправленных сообщений, которые хранятся на симке.
Очень полезная функция при питании от автономных источников — проверка уровня заряда аккумулятора. Узнать сколько это можно отправив следующую команду:
AT+CBC — информация о питающем напряжении
в ответ модуль вернет напряжение питания в милливольтах (3829) и в процентах (66).
При понижении питающего напряжения ниже 3,3 Вольт модуль начинает слать соответствующие предупреждения. Сообщения будут отсылаться каждые 5 секунд.
А при достижении напряжения питания до 3,2 вольта, модуль выдаст сообщение «UNDER-VOLTAGE POWER DOWN» и выключится.
Для собственных нужд можно заюзать встроенный АЦП:
AT+CADC? — команда возвращает значение считанное с АЦП. Производитель рекомендует заводить на вход преобразователя не более 2,8 вольт.
Это малая часть всех команд с которыми может работать модуль и которые я проверил. Их намного больше и их все можно найти в документации на модуль.
avrproject.ru
AT+IPR=19200 – настройка скорости порта.
Можно поставить слудующие значения: 0, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
0 — автовыбор, это значение стоит по умолчанию .
Также можно настроить режим передачи:
AT+ICF=3,3
Первое число — биты данных/четность/стоп биты
1. 8/0/2
2. 8/1/1
3. 8/0/1, стоит по умолчанию.
4. 7/0/2
5. 7/1/1
6. 7/0/1
Второе число — четность
0 – нечетный
1 – четный
3 – нет
После настройки эти параметры сохранятся в энергонезависимой памяти модуля, поэтому в следующий раз эти действия проделыватьа не придется.
Дальше можно глянуть информацию о модуле:
AT+GMM — идентификатор модуля. Модуль в ответ вернет производителя и модель: “SIMCOM_SIM900D”
AT+GOI — более короткий идентификатор модуля. В ответ приходит только “SIM900D”
AT+GMR — версия прошивки. Может пригодится если захочется залить в модуль другую версию прошивки.
AT+GSV — она включает в себя все три предыдущие команды.Вернет производителя модуля, его модель и версию прошивки.
AT+GSN — вернет IMEI модуля. Может пригодится когда нужно точно идентифицировать модуль. IMEI также продублирован на этикетке наклееной на модуль, и они должны совпадать.
Следующим шагом можно настроить часы реального времени модуля. Для этого оправляем следующую команду:
AT+CCLK=«yy/mm/dd,hh:mm:ss+zz»
где по порядку идут «год/месяц/дата,час:минуты:секунды+часовой пояс» Данные обязательно отправляются с ведущими нулями, тоесть, к примеру, если месяц у нас “4”, то отправить должны “04”.
Получить обратно текущие время и дату можно отправив ту же команду, только со знаком “?”:
AT+CCLK? – считываем время с модуля
Дальше можно настроить то, в каком формате будет отвечать модуль.
ATE0 – режим эха
0 – выключен
1 – включен. Стоит по умолчанию.
ATV0 – формат ответа модуля.
1 – полный текстовый ответ с эхом (если включен). Стоит по умолчанию.
0 – возврат только кода ответа.
В первом случае всегда будет возвращаться OK, ERROR и прочее, а во втором будут возвращаться коды результата. Так вместо OK вернется 0, а вместо ERROR 4.
AT+CMEE=0 – уровень информации об ошибке. Может быть от 0 до 2.
0 – отключено. Будет просто писать ERROR.
1 – код ошибки. Будет возвращать цифровой код ошибки.
2 – описание ошибки. Напишет что именно ему не нравится в команде.
Для работы с модулем через терминал удобней режимы ATV1, ATE1 AT+CMEE=2, для общения с микроконтроллером лучше использовать ATV0, ATE0 и AT+CMEE=0 – так проще будет обрабатывать полученные ответы. Данные настройки не сохраняются после перезагрузки модуля, поэтому необходимо включать эти команды в код программы.
Теперь глянем информацию о GSM сети. К примеру, можно узнать качество сигнала.
AT+CSQ – информация о качестве сигнала.
Модуль вернет два числа +CSQ: 17,0
17 – уровень сигнала. Может быть в диапазоне 0..31 или 99. Чем больше тем лучше, но 99 значит его отсутствие.
0 – коэффициент ошибок связи (т.н. RXQUAL). Может быть от 0 до 7, чем число меньше тем качество связи лучше.
AT+COPS? – информация об операторе, в сети которого зарегистрирован модуль.
Еще можно сделать запрос в виде AT+COPS=? После достаточно длительного поиска, модуль выдаст список найденных сетей.
Ну а теперь команды, позволяющие использовать сотовую связь по назначению.
ATD1234567890; – набор номера. Модуль позвонит по указанному номеру и вернет один из вариантовBUSY – номер занят
NO DIALTONE – нет сигнала на линииNO CARRIER – нет сети или другая проблема (например, нет денег на счету)
NA ANSWER – нет ответа
CONNECT – есть контакт!
Если же номер сохранён, например, на SIM карте, и SIM карта выбрана в качестве телефонной книги (обычно, так оно и есть по умолчанию), то для его вызова существует команда ATD>1;. Числовое значение определяет номер ячейки карты, где хранится вызываемый номер.
AT+CLIP=1 – включение определения номера входящего звонка
Если отправить команду с 0, то определение номера отключится и модуль вместо номера вызывающего будет слать только сообщение “RING”.
ATA – ответить на звонок.
ATH0 – разорвать все соединения. Может принимать значения 0..5, указывающие какие виды связи нужно разорвать.
ATS0=0 – этой командой можно установить сколько пройдет гудков до автоматического поднятия трубки. 0 – только вручную, стоит по умолчанию.
AT+GSMBUSY=1 – запрет всех входящих звонков.
1, — запретить все входящие звонки
0, — разрешить входящие
Результат данной команды не сохраняется в памяти и его надо повторять при каждом включении.
Проверка баланса, так называемый USSD запрос можно делать той же командой ATD, только здесь есть один нюанс.
Запрос лучше отправлять на #100#, так как на *100# сообщение приходит в шестнадцатеричном формате:
AT+CMIC=0,15 – команда для установки чувствительности микрофона. Чувствительность определяется числовым значением, которое находится после символа =. В сигнализациях используется очень часто – для аудиоконтроля охраняемого помещения. Экспериментируя с этим значением, можно добиться слышимости малейших шорохов.
При приеме SMS модуль сообщит об этом, выдав в терминал сообщение «+CMTI: “SM”,3». Где 3 означает номер пришедшего сообщения.
Для прочтения СМС можно использовать команду AT+CMGR=3,0 (3-номер сообщения, которое хотим прочитать, 0-изменить статус сообщения на прочитанный)
В ответ модуль пришлет информацию о том от кого прошло сообщение и в какое время. «REC UNREAD» означает что у сообщения стоит статус непрочитанного.
Также нужно уметь автоматически удалять сообщения, а то в последнее время операторы приноровились срать всякой рекламой, и в автономном плавании быстро произойдет заполнение памяти. Удаляются сообщения командой:
AT+CMGDA=«DEL ALL» команда удалит все сообщения
Также можно удалить только определенный тип сообщений:
«DEL READ» – прочитанных
«DEL UNREAD» – не прочитанных
«DEL SENT» – отправленных
«DEL UNSENT» – не отправленных
«DEL INBOX» – полученных
«DEL ALL» – всех сообщений
Чтобы отправить SMS нужно ввести команду:
AT+CMGS=«ХХХХХХХХХХХ» ххх..хх – номер на который нужно отправить сообщение (11 знаков)
После ввода этой команды появится символ “>” указывающий что можно вводить текст сообщения. После ввода и нажатия на Enter каретка сместится вниз и текст можно печатать с новой строки, и поэтому для того чтобы отправить сообщение нужно нажать сочетание CTRL+Z
Цифра 131 после CMGS показывает число отправленных сообщений, которые хранятся на симке.
Очень полезная функция при питании от автономных источников – проверка уровня заряда аккумулятора. Узнать сколько это можно отправив следующую команду:AT+CBC – информация о питающем напряжении
в ответ модуль вернет напряжение питания в милливольтах (3829) и в процентах (66).
При понижении питающего напряжения ниже 3,3 Вольт модуль начинает слать соответствующие предупреждения. Сообщения будут отсылаться каждые 5 секунд.
А при достижении напряжения питания до 3,2 вольта, модуль выдаст сообщение “UNDER-VOLTAGE POWER DOWN” и выключится.
Для собственных нужд можно заюзать встроенный АЦП:
AT+CADC? – команда возвращает значение считанное с АЦП. Производитель рекомендует заводить на вход преобразователя не более 2,8 вольт.
Это малая часть всех команд с которыми может работать модуль и которые я проверил. Их намного больше и их все можно найти в документации на модуль.
shemopedia.ru