Главная » Статьи » Полезная информация |
Как уже писалось ранее, для начала общения с только что испеченным модулем, необходимо отправить команду "AT". После чего он автоматически подстроит скорость порта и вернет "OK". Теперь когда скорость настроена, нужно ее зафиксировать, чтобы каждый раз при включении не выпонять это действие. Для настройки порта служат следующие команды: AT+IPR=19200 - настройка скорости порта. Можно поставить слудующие значения: 0, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 Также можно настроить режим передачи: AT+ICF=3,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 вольт. Это малая часть всех команд с которыми может работать модуль и которые я проверил. Их намного больше и их все можно найти в документации на модуль. | |
Просмотров: 64139 | Комментарии: 14
| Теги: |
Всего комментариев: 14 | |||||||||||||
| |||||||||||||
Проекты [46] |
Как подключить [32] |
Инструменты [3] |
Полезная информация [18] |
Объявления [3] |