У нас продаются 3 типа модулей. Все они имеют 4 диапазона 850/900/1800/1900МГц, умеют передавать/принимать голосовые вызовы, работать с смс, делать ussd запросы и работать с сетью через GPRS, с поддержкой ftp, http или tcp/udp.
1. Основной, рекомендуемый к использованию Sim900. Небольшой (24х24мм), паябельный корпус, единственный поддерживающий протокол I2C.
2. Второй модуль — это Sim900B. Размер 40х33мм, крепление к плате через 60 контактный разъем с весьма мелким шагом. Предназначен для замены модулей sim300. В общем самый неудачный вариант для домашнего применения.
3. И последний модуль — Sim900D. Тоже небольшой (33х33мм), хорошо подходящий для пайки на плату, единственный имеющий цепи контроля и заряда для литий-ионных аккумуляторов. Предназначен для замены модулей sim340DZ, с которым совместим по выводам. Было мнение, что это переходная модель, которая будет сниматься с производства. Но производитель заявил, что это не совсем так. Точнее совсем не так и прекращать выпуск они не планируют.
В основном я буду писать про sim900D, т.к. у меня есть именно он и разница между разными модулями незначительная.
Питание
Для модулей необходимо питание от 3.2 до 4.8В. Номинальное значение 4.0В. Питание заводится на выводы VBAT. Ток потребления сильно зависит от текущего режима работы и может колебаться от 20-30мА до 500мА. При этом также возможны кратковременные скачки до 2-3А, особенно в процессе поиска сети или при приеме/передачи данных. Так что для питания необходимо использовать подходящие блоки питания и не экономить на электролитах. Можно использовать рекомендуемую производителем схему на MIC29302WT.
Так же им необходима дополнительная поддержка для часов реального времени, вывод VRTC. Для нее можно поставить батарейку, ионистор или просто конденсатор с емкостью не меньше 4.7мкФ.
Сим-карта
Сим-карта подключается к соответствующим выводам модуля по схеме из даташита. Лучше всего использовать специальные холдеры для монтажа на плату, благо стоят они недорого (~30р). Также что бы модуль понял, что к нему подключили карту нужно посадить на землю вывод sim-present. У модуля sim900D этот вывод совмещен с выводом KBR0. Использовать или нет защитные диоды личное дело каждого, но лучше перестраховаться.
Важно! Все модули работают только с сим-картами на 1.8 или 3В. Одна из ошибок, почему мой модуль по началу не ловил сеть, как раз была в том, что я вставлял свою старую карточку на 5В.
COM порт
В модулях реализован полный набор интерфейсных выводов для подключения по usart. В зависимости от настроек, управление потоком может быть аппаратное с использованием RTS,CTS,DTR,DCD и RI. Так же можно использовать режим без управления, когда используются только RXD и TXD. Программное управление (XON/XOFF) использовать не рекомендуется из-за наличия ошибок в его реализации. Неиспользуемые выводы нужно оставить висеть в воздухе, все необходимые подтяжки уже есть внутри.
Выход RI работает независимо от выбранного режима. В дежурном режиме он находится в «1». При поступлении звонка или наборе номера выход переходит в «0» и остается в нем до поднятия трубки абонентом/модулем или отбоя. При поступлении смс на нем появляется импульс «0» с длительностью 120мс.
Модуль может работать на скоростях от 1200 до 115200. При включении устанавливается режим авто-настройки скорости от 1200 до 57600, 8 бит данных, без четности и 1 стоп битом. Для синхронизации необходимо выждать 2-3с после включения и послать команду «AT» (обязательно большими буквами).
Аудио
Во всех модулях есть как минимум 1 вход микрофона и 1 выход на динамик. В зависимости от модели так же может присутствовать линейный вход и выход звонка. Мне все эти богатства особо не нужны, поэтому приведу только схемы подключения из даташита.
Подключение микрофона:
Подключение динамика:
Дополнительные входы/выходы
Сначала выходы. У модулей два информационных выхода — STATUS, который загорается после включения модуля и NETLIGHT, который мигает в зависимости от состояния сети.
Возможные режимы (Горит/Не горит):
Антенна
Тут все просто. Есть рекомендованная схема согласования, есть значение нужного сопротивления в 50 ом и есть мнение, что при длине проводника от ножки до разъема антенны меньше 2см никаких особых мер по согласованию не требуется. Я выбрал последний вариант:) Но на всякий случай схема согласования:
Результат
И вот что у меня получилось в итоге:
На данный момент модуль умеет звонить, принимать и отправлять смс, читать и писать в сим-карту, делать ussd запросы, читать и писать в файл на ftp сервере.
В архиве схема, плата и компоненты холдера для сим-карты и sim900D. Ссылка на народе для diptrace 2.1
Прошивка
Вот и обещанный бонус — последняя на данный момент прошивка для Sim900, версия B07. Также в архиве лежит B06, сама программа, pdf с инструкцией по прошивке и изменениями. Скачать с народа. Размер 3.86 МБ
Схема для прошивки модуля:
На плюс подключается, если для включения питания используется рекомендованная схема с транзистором
Если для связи с компом используется одна из разновидностей max232, то скорость лучше выбрать 115200. Я шил с такими параметрами:
Для прошивки — выбираем файл, меняем скорость и номер порта, замыкаем кнопку наглухо и жмем старт. В нижнем окне лога будет информация о ходе процесса.
Статья получилось какой-то слишком общей. Зато во второй части воды будет мало, зато будут основные команды управления модулем. На данный момент черновик уже весит в блокноте 12кБ.
Важной составляющей автоматизации любого объекта является система мониторинга и контроля. Если управлять объектом на небольших расстояниях (до нескольких сот метров) не вызывает больших проблем — можно использовать индивидуальные маломощные приемо-передатчики. То с мониторингом удаленных объектов такой прием не прокатит, организовать собственный радиоканал, скажем на 100 км, так просто не выйдет. Но тут есть один выход — можно использовать развернутые повсеместно сети сотовых операторов. Для этого есть даже специализированные GSM-модули, прикидывающиеся в сети опсоса простым мобильником. Один из таких GSM-модулей SIM900D попал ко мне в руки (за что спасибо товарищу RD3AVJ), о нем и пойдет речь.
SIM900D по сути является законченным устройством, который способен задействовать большинство услуг сотовой связи: совершать и принимать звонки, слать и получать SMS и MMS, использовать GPRS и заходить на FTP. Плюс такие плюшки как встроенный контроллер заряда Li-Ion батарей, часы реального времени, выход ШИМ интерфейс для подключения дисплея и аналогово-цифровой преобразователь (АЦП).
Для начала работы модуля нужно минимум внешних элементов и питание, но обо всем по порядку.
ПИТАНИЕ
Модуль необходимо запитывать постоянноым напряжением в диапазоне 3,2-4,5 вольта. Плюс питания подводится к выводам 38-39 (VBAT). Земля подводится ко всем выводам GND.
Потребление в режиме ожидания составляет всего 1мА, но следует учитывать что во время регистрации сети или при плохом сигнале модуль задирает мощность и потребление кратковременно может подниматься до 2 А. Источник питания должен быть готов к этому и электролиты на пару тысяч микрофарад здесь лишними не будут.
В апноте на модуль приведена рекомендуемая схема питания на стабилизаторе MIC29302WT:
В случае автономной работы рекомендуется использовать Li-Ion аккумуляторы, которые модуль может сам и подзаряжать. Для этого имеется встроенный контроллер заряда. Чтобы модуль мог контроллировать процесс заряда, имеется вход TEMP_BAT (27 вывод). К этому выводу подключается третий вывод аккумулятора (это вывод встроенного в аккумулятор термистра) и в случае перегрева акка, зарядка будет прекращена.
Источник питания для заряда аккумулятора подключается к выводу VCHG (28 вывод). Напряжение источника может находиться в диапазоне 5-6 Вольт с возможностью тянуть ток до 750 мА.
Заряд начинается автоматически при подаче напряжения на вывод VCHG, поэтому в управляющей программе следует организовать опрос состояния батареи и при необходимости подавать напряжение заряда, например, через транзисторный ключ.
ПОДКЛЮЧЕНИЕ SIM-КАРТЫ
Следующим основным элементом является сим карта. Это ключ ко входу в сеть опсоса 🙂 Для работы с модулем необходимы сим карты с напряжением питания 3 или 1,8 вольт (старые пяти вольтовые симки работать не будут). Общая схема подключения ниже.
Подключается она к выводам SIM_x (выводы 6-9). Для того чтобы на выводе SIM_VDD появилось питающее напряжение необходимо прижать вывод KBR0 (вывод 10) к земле.
Для защиты линий от статики рекомендуют использовать специальные TVS диоды типа SMF05С. Но их фиг где найдешь, поэтому можно оставить без них, главное поменьше трогать руками эти выводы. А при запайке, если нет паяльной станции, паять отключенным паяльником.
АНТЕННА
Тут вроде все просто, она подключается к выводу 33 (ANT). Желательно использовать специальную антенну GSM диапазона, от ее качества будет зависеть потребляемая мощность передатчика, и как итог — время автономной работы модуля. У меня на отрезок дорожки на плате длиной 7 мм уровень сигнала был 4 из 31, тоесть ловится но очень слабо. Но это при условии что репитер GSM находился на соседнем здании.
Правая часть схемы (обведенная пунктиром) служит для согласования импенданса антенны, если она подключается не напрямую к модулю, а через длинный провод. Номиналы здесь подбираются практически и по специальным приборам, поэтому эту часть схемы можно упустить.
ЧАСЫ РЕАЛЬНОГО ВРЕМЕНИ
В модуле имеется собственный RTC, способный вести время даже при отсутствии основного питания. Для этого к выводу VRTC (вывод 15) должен быть подключен источник резервного питания, например 3-х вольтовая батарейка CR2032 или ионистр. В случае подключения незаряжаемого источника (как простая батарейка) необходимо использовать диод Шоттки, для ограничения обратного тока. Ниже приведены две схемы, слева подключение ионистра; справа — батарейки.
ИНДИКАЦИЯ
Для индикации собственного состояния в процессе работы, у модуля есть несколько выводов для подключения светодиодов. Первый из них вывод NETLIGHT (вывод 41). На этом выводе при работающем модуле появляется меандр, с частотой зависящей от состояния подключения к сотовой сети: во время поиска и регистрации высокий уровень на этом выводе появляется с периодом 800мс, после регистрации сети — с периодом 3 сек. Подключать светодиод к этому выводу можно только через транзисторный ключ:
Для индикации работы модуля есть еще один вывод — STATUS (5 вывод). На нем появляется высокий уровень когда модуль находится в рабочем режиме. Светодиод к этой ноге подключается также как и к выводу NETLIGHT (через NPN транзистор).
Вывод RING (вывод 11) служит для индикации входящих звонков и текстовых сообщений. Этот вывод удобно использовать с внешним прерыванием контроллера, для оперативного реагирования на события. В отличии от двух предыдущих на выводе RING активным уровнем явлется низкий, поэтому если сюда цеплять светодиод, то в качестве ключа нужно использовать PNP транзистор:
ЗАПУСК МОДУЛЯ
Модуль запускается при отрицательном импульсе длинной не менее 1 сек. на ноге PWRKEY (вывод 12). Для подачи импульса рекомендуется использовать следующую схему:
Для открытия транзистора можно использовать кнопку или импульс с микроконтроллера. Если снова подать импульс на эту ногу, то модуль выключится.
АУДИО
У модуля SIM900D имеется по два входа для микрофона и выхода на динамик. Для подключения используются выводы с 18 по 26. Схема согласования ниже.
Подключение микрофона:
Подключение динамика:
Опять же желательно использовать защиту линий от статического электричества.
ШИМ и АЦП и остальные порты I/O
Помимо основных функций, модуль умеет по команде генерировать ШИМ сигнал в диапазоне 200-5000 Гц с разрешением 10 бит. Выход для ШИМ находится на ноге PWM (47 вывод). К нему можно подключить буззер и запрограммировать на проигрывание монофонической мелодии.
Еще одной полезной фишкой модуля является встроенный 10-битный АЦП, способный измерять напряжения до 2,8 В с частотой выборок 200кГц. Вход для преобразователя находится на выводе 29 — ADC0.
Остальные выводы представляют меньший интерес. Например, выводы 13,14,16 являются линией для подключения дисплея по SPI интерфейсу, но стандартная прошивка модуля не позволяет использовать эту функцию.
Перепрошивка модуля выполняется через специальную программу, которую можно скачать с офф сайта производителя. Для прошивки модуля используются выводы DBG_RXD (1) и DBG_TXD (2).
И теперь самое главное и интересное — УПРАВЛЕНИЕ. Управление модулем происходит через стандартный UART, посредством AT-команд. Здесь я их описывать не буду, это тема отдельной статьи, скажу лишь что модуль может работать на скоростях от 1200 до 115200 бод. При включении устанавливается режим авто-настройки скорости от 1200 до 57600, 8 бит данных, без четности и 1 стоп битом. Для синхронизации необходимо выждать несколько секунд после включения и послать команду «AT». В ответ модуль отправит «ОК». В дальнейшем можно запрограммировать общение модуля на фиксированной частоте.
Для подключения к микроконтроллеру или компьютеру используются выводы RXD (3) и TXD (4). Важным моментом является то, что на этих линиях может быть напряжение не более 3В и если используется контроллер с большим напряжением питания, необходимо использовать согласующие цепи. На этом пока все, немного позже выложу описание платы для этой железки, которая получилась у меня и приведу основные рабочие команды.
AT Команды.
С внешним миром модуль общается посредством AT команд. Пользователи модемов должны их помнить:) Все команды делятся на базовые, большинство из которых появились еще во времена U.S. Robotics, так называемые S-команды, родом оттуда же и расширенных, добавленных в стандартах GSM07.05-07.07. Практически все команды работают в 3 режимах — тестовом, чтения и записи.
В тестовом режиме возвращается OK, если команда поддерживается или возможные значения данных в параметре команды. Тестовый режим определяется окончанием команды в виде ‘=?’
В режиме чтения возвращаются текущие значения параметра, отличается от тестового наличием в конце просто символа ‘?’
И в режиме записи после ‘=’ идут новые значения параметров.
Количество параметров при чтении и записи не обязательно должно совпадать.
Как пример:
AT+CFUN=? тестовый режим, вернет +CFUN: (0,1,4),(0-1), что значит у нее 2 параметра. Первый может принимать значение 0,1 или 4, а второй может быть в интервале 0-1.
AT+CFUN? режим чтения, у меня возвращает +CFUN: 1, все хорошо.
AT+CFUN=4,0 запись, приемо/передатчик выключается без перезагрузки модуля.
Все команды могут вводиться как строчными, так и прописными буквами.
Включение.
При включении модуль должен выдать 00 49 49 49 49 FF FF FF FF в шестнадцатеричном режиме, у меня выдает обычно только последние один-два FF. Ну да ладно, смысловой нагрузки в них нет.
RDY
+CFUN: 1
Где
Управление портом.
Вначале работы необходимо задать режимы работы com порта. Для этого есть несколько основных команд:
AT+IPR=9600 — скорость порта.
Можно выбрать: 0, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
0 — автовыбор. Стоит по умолчанию и для правильной работы первый посылаемый символ должен быть прописной буквой ‘A’.
AT+IFC=0,0 — режим управления потоком в обе стороны.
0, Без контроля.
1, Программный режим (XON/XOFF). Имеются проблемы в использовании, лучше не использовать
2, Аппаратный. Управление через CTS, DTR и т.д.
AT+ICF=3,3 — устанавливает режим передачи.
Первое число — биты данных/четность/стоп биты
Информационные команды.
Тут собраны разнообразные команды, выдающие информацию о самом модуле и его текущем состоянии.
Команды информации о модуле.
AT+GMM — идентификатор модуля.
Вернет: SIMCOM_SIM900D, или какой именно у Вас модуль. Можно убедиться, что не обманули и не подсунули другой, более дорогой модуль.
AT+GOI — более короткий идентификатор модуля.
У меня SIM900D
AT+GMR — версия прошивки. Может пригодится при желании использовать новые фишки.
Мой порадовал меня строкой: Revision:1137B06SIM900D64_ST
После прошивки строка поменялась на: Revision:1137B07SIM900M64_ST
AT+GSV — команда 3-in-1.
Вернет и производителя модуля и его модель и версию прошивки:
SIMCOM_Ltd
SIMCOM_SIM900
Revision:1137B07SIM900M64_ST
AT+GSN — вернет IMEI модуля. Между прочим весьма полезная информация. Можно использовать для идентификации модуля в удаленной программе.
Команды получающие текущее состояние.
AT+CSQ — информация о качестве сигнала.
Вернет два числа +CSQ: 21,0
21, — уровень сигнала. Может быть в диапазоне 0..31 или 99. Чем больше тем лучше, но 99 значит его отсутствие. После прошивки значение почему то изменилось до 27.
0, — так называемый RXQUAL. Изменяется от 0 до 7, чем число меньше тем лучше.
AT+CREG=1 — разрешить выдачу сообщения о смене регистрации в сети.
Может принимать значения 0..2, где
Сервисные команды.
На самом деле эти команды управляют эхом, полнотой информации об ошибке и подобные.
ATE0 режим эха
Команды набора номера.
Все они пришли еще от модемов и ничего нового в них нет.
ATD1234567; — позвонить по номеру
ATD>1; — позвонить по 1 номеру из сим карты
ATDL — позвонить по последнему набранному номеру
В ответ можем получить:
BUSY
NO DIALTONE
NO CARRIER
NA ANSWER
CONNECT
AT+CLIP=1 — архи полезный параметр. Включает режим CLI (Calling Line Identification) или то, что по русски зовется АОН. После его включения при входящем вызове выдает не просто сообщение RING, а еще добавляет строку типа
+CLIP: «+7XXXXXXXXXX»,145,»»,,»»,0 или
+CLIP: «+7XXXXXXXXXX»,145,»»,,«main»,0
Где
СМС.
По умолчанию все сообщения сохраняются на сим карту. При поступлении сообщения придет сообщение:
+CMTI: «SM»,1
1, — номер полученного сообщения.
Настройки режимов приема смс.
AT+CSCA — номер сервис центра отправки сообщений. Берется автоматом из сим карты, но вдруг понадобится. Можно читать и писать. Вот что мне выдал для билайна:
+CSCA: «+79037011111»,145
AT+CMGF — формат сообщений, 0-1.
Теперь как влияет установки значения командой AT+CMGF.
Для CMGF=0
Сообщение с интернет-портала мегафон:
+CMGR: 0,»»,35
07919762020012F10414D0F7FBDDD52E9FC3E6B71B0000114010107565610DD4F29C0E6A97E7F3F0B9EC02
Сообщение с интернет-портала билайн:
+CMGL: 2,1,»»,34
07919730071111F10414D04937BD2C7797E9D3E6140000114010713564610CD4F29C0E6A97E7F3F0B90C
Сообщение с моего основного телефона:
+CMGL: 1,0,«4D31B76E»,31
07919730071111F1040B919760472105F50000114010811095610DD4F29C0E6A97E7F3F0B9EC02
И те же сообщения для CMGF=1
+CMGR: «REC UNREAD»,«www.megafon»,»»,«11/04/01,01:57:56+16»
Test message.
+CMGL: 2,«REC UNREAD»,«InternetSMS»,»»,«11/04/01,17:53:46+16»
Test message
+CMGL: 1,«REC UNREAD»,»+7XXXXXXXXXX»,«Main»,«11/04/01,18:01:59+16»
Test message.
В общем, если не хочется заняться героическим преодолеванием трудностей, то используем CMGF=1 и забываем о существовании русских символом.
USSD запросы.
Для проверки баланса и разных настроек обычно используются ussd запросы. Очень часто запросы начинающиеся со ‘*’ возвращают ответ в юникоде, на родном языке. К счастью, многие телефоны не понимают этой кодировки и для них были введены запросы начинающиеся с ‘#’. Они возвращают ответ в стандартном ascii.
Сделать запрос можно 2 способами.
Первый, используя специальную команду:
AT+CUSD=1,»#102#»
1, — режим обработки ответа
Телефонная книга.
Данные на карте хранятся подобно массивам, с индексами начинающимися с 1. В принципе данные могут храниться не только на сим-карте, но и в других местах, например в памяти телефона. Но в данном случае эти знания нам не особо актуальны:)
AT+CPBS=«SM» — выбрать как основную память сим-карту. Данный режим стоит по умолчанию.
AT+CPBS? — сообщит тип памяти, количество имеющихся записей и их максимальное количество. Например:
+CPBS: «SM»,3,250 значит, что на сим-карте есть 3 записи из 250 возможных.
Чтение данных.
AT+CPBR=1 — считывает запись с индексом 1.
AT+CPBR=2,5 — считать записи со 2-о по 5-ю.
AT+CPBF=«что ищем» — поиск информации. У меня работало очень нестабильно. Мог найти запись, а мог и нет. Отчего это зависит не очень понятно. На версии B07 поиск стал гораздо стабильней.
AT+CPBF — выдача всех записей на карте.
В любом случае информация идет в виде:
+CPBF: (или +CPBR) 2,»+7ХХХХХХХХХХ»,145,«Home», где
2, — номер (индекс) записи.
+7ХХХХХХХХХХ», — номер.
145, — формат имени.
Используя эти команды вполне можно организовать несложное управление обогревателем на даче или то же не менее простую охранную сигнализацию для нее же. Для более сложных задач лучше использовать сетевые возможности модуля.
Сеть.
Модуль содержит два блока — APPTCP, через который идет работа с TCP/UDP и блока SAPBR, работающий с FTP/HTTP. В принципе общение с ними весьма простое, для примера приведу общение по ftp. Общение по http будет в другой статье, с уже с готовым устройством и реальной задачей.
GPRS.
Настройка и установка GPRS соединения:
AT+SAPBR=3,1,«CONTYPE»,«GPRS»
AT+SAPBR=3,1,«APN»,«internet.beeline.ru»
AT+SAPBR=3,1,«USER»,«beeline»
AT+SAPBR=3,1,«PWD»,«beeline»
AT+SAPBR=1,1 — установка GPRS связи
AT+SAPBR=2,1 — полученный IP адрес
+SAPBR: 1,1,«10.229.9.115»
AT+SAPBR=4,1 — текущие настройки соединения
AT+SAPBR=0,1 — разорвать GPRS соединение
FTP.
Параметры ftp соединения
AT+FTPSERV=«ftp.site.ru» — адрес ftp сервера
AT+FTPUN=«login» — логин
AT+FTPPW=«password» — пароль
AT+FTPPUTPATH=»/» — путь
AT+FTPPUTNAME=«test.txt» — имя файла
AT+FTPMODE=1 — режим работы ftp
Для чтения все практически аналогично, только PUT меняется на GET. Так AT+FTPPUTPATH становится AT+FTPGETPATH.
AT+FTPGET=1 — открытие ftp соединения.
+FTPGET:1,1 — данные для чтения доступны.
AT+FTPGET=2,10 — чтение 10 байт данных. Если данных меньше, то вернется сколько есть.
+FTPGET:2,10 — сколько данных будет для считывания.
Повторное чтение, если указатель стоит на конце файла вернет +FTPGET:2,0.
AT+FTPGET:2,0 — закрытие ftp соединения.
Я не привел и половины имеющихся команд, например команд управления чувствительностью микрофона, генерации сигналов dtmf или измерения напряжения на AC0. Я ими не пользовался, а в тупую переводить даташит не хочется. Так же многие команды дублируются аналогичными. Все они есть в мануалах.
S900d- GSM сигнализация
Компания SIM Com производит модуль SIM900D. Достаточно простой, надёжный и многофункциональный. Отлично подходит для организации GSM сигнализации. В отличии от своего собрата SIM900 оптимизирован для удобства разводки печатной платы. Правда отличается несколько большим габаритом. Во всех случаях модуль управляется через стандартный порт RS232, потребуется только согласовать уровни сигналов. В случае подключение к МК уровни согласовывать не потребуется. Работа с модулем во многом напоминает управление обычным модемом.
Далее команды которые нам понадобятся.
Модуль сам настраивается на скорость обмена. Но рекомендуемая скорость 19200, 8 бит без контроля чётности.
ATZ – Общий сброс.
ATE0 – выключить эхо – будут возвращаться только ответы самого модуля.
AT+COPS? — вернёт название оператора связи
AT+CSQ -уровень сигнала( чем больше тем лучше)
ATD*101# -баланс по карте.
AT+CPBF=»хх» – найти номер на СИМ карте с именем хх
Отправить СМС;
AT+CMGS=»+38хххххххххх» – вернёт значок “>”
И ожидает ввод текста СМС. Окончание ввода – 0х1Ah
Вернётся «ОК»
AT+CMGDA=»DEL ALL» –удалить все СМС с карточки СИМ.
ATD+38ххххххххх; — звонок по номеру.
ATH – завершить или «отбить» вызов.
AT+CLCC – контроль во время вызова.
Всем процессом управляет микроконтроллер STM8S003.
Процедура включения модуля — в следующей последовательности.
Сначала подключаем аккумулятор. Потом подаётся напряжение зарядки. Иначе модуль уходит в режим «CHARGE-ONLY MODE». Далее микроконтроллер на выводе D4 формирует сигнал включения модуля длительностью 800 мкс. И контролирует наличие GSM станции. (команды AT+CSQ, AT+COPS?). При успешной регистрации в сети на команду AT+COPS? – вернётся ответ -не равный нулю, а в кавычках название оператора сотовой связи. Затем считывается номера абонентов с СИМ карты и удаляются все СМС. При отсутствии ошибок процесс инициализации считается законченным. Светодиод HL 3 миганием с частотой 2 Гц. оповестит о том, что процесс инициализации модуля и СИМ карты прошёл успешно.
При срабатывании датчика охраны (обрабатывается только спад уровня). Сначала отправляется СМС затем осуществляется вызов абонента. В случае невозможности ( недостаточно средств на счёте, нет сети и пр.) осуществить операцию включается светодиод HL 2. О работе модуля сигнализирует диод НL 1. Мигание с интервалом 300 мс. Свидетельствует о наличии GSM станции. Непрерывное свечение HL3 свидетельствует о том , что происходит отправка СМС или дозвон.
Всё что делает сигнализация v1.0 –это звонит и отправляет СМС на номера с именем «АВ1» и «AB2» в случае если замкнуть «тревожный» контакт.И кроме этого отправит СМС при пропадании напряжения зарядки.
Минимально необходимое условие работы это положительный баланс на карте , наличие питания и сотовой сети.В следующих версиях планируется увеличить число абонентов и входов сигнализации , управлять модулем посредством СМС. Задействовать микрофонный вход для звукового контроля помещения.
Отдельно следует сказать о настройках СИМ карты.
В компании МТС желательно отключить услугу «МТС клик» и удалить все номера с карточки. В противном случае время готовности системы к работе возрастает.Конструктивно сигнализация выполнена в корпусе под DIN рейку Z101. Внутренняя антенна расположена на плате. Желательно не покрывать её припоем и отполировать. Конечно это не самый лучший вариант антенны но тем не менее – работает. Плата выполнена по технологии ЛУТ. Программа для МК написана на ассемблере.
Потребляемый ток в дежурном режиме от источника питания около 2-3 mA. Но сам источник должен обеспечивать ток 400-500 mA. Что достаточно для зарядки АКБ.
На этапе отладке. Весь процесс обмена между модулем и МК можно просматривать при помощи обычной терминальной программы – которых в «сети» достаточно. Потребуется только собрать адаптер на MAX232. Думаю приводить схему – это лишнее. -)
В архиве «прошивка V.1.1 и плата в sprintlayout6 для корпуса Z101.
Файлы:
Архив — прошивка + плата
Все вопросы в Форум.
Как вам эта статья? | Заработало ли это устройство у вас? |
Эти статьи вам тоже могут пригодиться:
В предыдущей статье – GSM модем SIM900 – рассмотрели, как запаять данный модем. Сейчас разберемся, как его подключить к компьютеру и пообщаемся с ним по средством AT команд.
SIM900 подключенный к компьютеру
Начнём с подключения к компьютеру, т.к. с него проще всего вести диалог с модулем. В нём нет нечего сложного, если модуль собран по схеме приведенной в предыдущей статье или подобной. Берем любой преобразователь интерфейса, например cp2102, ft232, max232 и подключаем к USB или COM порту компьютера. Открываем любую терминальную программу, я же предпочитаю свою – AL Terminal (кстати, её версию обновил). На компьютере подключаемся к COM порту со скорость 9600 (по умолчанию для SIM900), к которому подключен модуль и общаемся. Если питать от компьютера, через преобразователь интерфейса, т.е. от USB порта компьютера, то подключаем толстым USB кабелем, т.к. рабочие токи модуля могут быть в районе полу ампера, а кратковременные пики могут достигать 2А. Для питания модуля от 5В перемычкой JUMP1 нужно подать питание через стабилизатор, а не шунтировать его. Если питать от батареи (3,2-4,7В), то шунтируем стабилизатор.
Диалог происходит по средством AT команд. Мы шлём модулю нужную команду или запрос, а он её выполняет и отвечает. Самая простая команда AT, на которую модуль тут же ответит OK, если модуль подключен и исправен.
Почти все команды имеют 3 режима:
A/ — повтор предыдущей команды
В статье, идёт речь о GSM модуле SIM900 (B09). Напоминаю, т.к. есть ещё и другие разновидности этого модуля и формат команд с ними может немного отличаться.
Управление портом
По умолчанию модуль настроен 9600 8N1, 9600 – скорость, 8 – бит в посылки, N – нет контроля чётности, 1- стоп бит.
Команда | Ответ | Описание |
AT+IPR? | +IPR: 0 OK | Скорость порта: 0 – автоматически 1200 2400 4800 9600 19200 38400 57600 115200 |
AT+ICF? | +ICF: 3,3 OK | Настройки передачи. Первый параметр: Бит в посылке/чётность/стоп бит 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+IFC? | +IFC: 0,0 OK | Контроль передачи данных Первый параметр – терминалом от модуля Второй параметр – модулем от терминала 0 – нет контроля 1 – программный 2 – аппаратный |
Информация и состояние
Информация о модуле
Команда | Ответ | Описание |
AT+GCAP | +GCAP:+FCLASS,+CGSM OK | Возможности модуля |
AT+GMM | SIMCOM_SIM900 OK | Идентификатор модуля |
AT+GMR | Revision:1137B09SIM900M64_ST OK | Ревизия |
AT+GSN | 01322600XXXXXXX OK | IMEI |
Информация о состояние модуля
Команда | Ответ | Описание |
AT+COPS? | +COPS: 0,0,»MTS-RUS» OK | Информация об операторе |
AT+COPS=? | +COPS: (2,»MTS RUS»,»»,»25001″),(1,»MOTIV»,»MOTIV»,»25035″),(1,»Utel»,»Utel»,»25039″),,(0,1,4),(0,1,2) OK | Доступные операторы |
AT+CPAS | +CPAS: 0 OK | Информация о состояние модуля 0 – готов к работе 2 – неизвестно 3 – входящий звонок 4 – голосовое соединение |
AT+CREG? | +CREG: 0,1 OK | Тип регистрации сети Первый параметр: 0 – нет кода регистрации сети 1 – есть код регистрации сети 2 – есть код регистрации сети + доп параметры Второй параметр: 0 – не зарегистрирован, поиска сети нет 1 – зарегистрирован, домашняя сеть 2 – не зарегистрирован, идёт поиск новой сети 3 – регистрация отклонена 4 – неизвестно 5 – роуминг |
AT+CSQ | +CSQ: 17,0 OK | Уровень сигнала: 0 -115 дБл и меньше 1 -112 дБл 2-30 -110..-54 дБл 31 -52 дБл и сильнее 99 – нет сигнала. |
AT+CCLK? | +CCLK: «00/01/01,04:21:27+00» OK | Текущая дата и время телефона. |
AT+CBC | +CBC: 0,95,4134 OK | Монитор напряжения питания модуля Первый параметр: 0 – не заряжается 1 – заряжается 2 – зарядка окончена Второй параметр: 1-100 % — уровень заряда батареи Третий параметр: Напряжение питание модуля (VBAT), мВ |
AT+CADC? | +CADC: 1,7 OK | Значение АЦП (до 2,8В) |
Настройки
Вызовов
Команда | Ответ | Описание |
AT+CLIP=1 | OK | АОН 1 – вкл / 0 – выкл |
AT+GSMBUSY=0 | OK | Запрет входящих звонков 0 – разрешены 1 – запрещены |
ATS0=0 | OK | Автоответ 0 – ручной 1-более – автомотический после заданного количества звонков |
СМС
Команда | Ответ | Описание |
AT+CMGF=1 | OK | Текстовый режим 1 – включить 0 – выключить см. примечание |
AT+CSCS= «GSM» | OK | Кодировка текстового режима Доступны следующие кодировки: IRA, GSM, UCS2, HEX, PCCP, PCDN, 8859-1 см. примечание |
AT+CSCB=0 | OK | Приём специальных сообщений 0 – разрешен (по умолчанию) 1 – запрещен |
Остальные
Команда | Ответ | Описание |
ATE0 | OK | ЭХО 1 – вкл (по умолчанию) / 0 – выкл |
ATV1 | OK | Формат ответа модуля 0 – только ответ 1 – полный ответ с ЭХО (по умолчанию) |
AT+CMEE=0 | OK | Информация об ошибках 0 – отключён (по умолчанию) 1 – код ошибки 2 – описание ошибки |
AT+CCLK=»13/09/25,13:25:33+05″ | OK | Установка часов «yy/mm/dd,hh:mm:ss+zz» Где: год/месяц/дата, часы:минуты:секунды +часовой пояс |
AT+CPIN=XXXX | Ввод PIN кода | |
ATZ0 | Сброс настроек до по умолчанию (не до заводских) 0 или 1 – выбор профиля | |
AT&F | Сброс настроек до заводских | |
AT&W | OK | Сохранение настроек для текущего профиля Параметр 0 или 1 — выбор профиля Параметр указывать сразу за командой (AT&W0) |
AT+CPOWD=1 | NORMAL POWER DOWN | Выключение модуля 0 – срочное 1 – нормальное |
AT+CFUN=1,1 | Энергосберегающий режим и перезагрузка Первый параметр: 0 – минимальный функционал 1 – нормальный режим (по умолчанию) 2 – выключения цепей приёма и передачи сигнала Второй параметр: 0 – выполнить без перезагрузки 1 – перезагрузить (доступно только в нормальном режиме, т.е. параметры = 1,1) |
Телефонные звонки
Команда | Ответ | Описание |
ATD+790XXXXXXXX; | OK | Позвонить на номер +790XXXXXXXX; |
NO DIALTONE BUSY NO CARRIER NO ANSWER | Нет сигнала Если вызов отклонён Повесили трубку Нет ответа | |
ATDL | OK | Позвонить по последнему исходящему номеру |
ATA | OK | Ответить на звонок |
ATH0 | OK | Повесить трубку/ разорвать соединение |
RING | Входящий звонок | |
AT+CLIP=1 | OK | см. настройки |
RING +CLIP: «+790XXXXXXXX»,145,»»,,»»,0 | Входящий звонок с включенным АОН Где: Первый параметр – номер телефона входящего звонка 2 – тип входящего номера 129 – не определен 161 – национальный 145 – интернациональный 177 – сетевой, специальный |
СМС
Команды приведены для текстового режима и в GSM кодировке.
Команда | Ответ | Описание |
AT+CMGS=»+790XXXXXXXX» >Test sms. alex-exe.ru | > +CMGS: 15 OK | Отправка СМС. Указываем номер получателя в кавычках и отправляем модулю с символом переноса строки (13 в ASCII). После приглашения «>» вводим текст сообщения. Для отправки в конце сообщения отправляем символ SUB (26 в ASCII) или ESC (27) для отмены. |
AT+CMGF=1 AT+CSCS= «GSM» | Режим и кодировка. см. настройки и примечание | |
+CMTI: «SM»,4 | Уведомление о приходе СМС. Второй параметр номер пришедшего СМС. | |
AT+CMGL=»REC UNREAD» | +CMGL: 4,»REC UNREAD»,»+790XXXXXXXX»,»»,»13/09/24,23:02:22+24″ Test2. OK | Чтение групп СМС. Всего 5 групп: REC UNREAD – входящие непрочитанные REC READ – входящие прочитанные STO UNSENT – Пользовательские непрочитанные STO SENT – пользовательские прочитанные ALL – прочитать все сообщения |
AT+CMGR=2 | +CMGR: «REC READ»,»+790XXXXXXXX»,»»,»13/09/21,11:57:46+24″ Test sms. alex-exe.ru OK | Чтение SMS сообщений. Запрос: Первый параметр – номер сообщения. Второй параметр (необязателен): 0 – обычный режим (по умолчанию) 1 – не изменять статус сообщения Ответ: Первый параметр – группа сообщений, см предыдущий пункт. Второй параметр – номер отправителя 3 – дата отправки Далее следует текс сообщения. |
AT+CMGDA=»DEL SENT» | OK | Удаление групп СМС: DEL READ — прочитанные DEL UNREAD — не прочитанные DEL SENT — отправленные DEL UNSENT — не отправленные DEL INBOX — полученные DEL ALL — всех сообщения |
AT+CMGD=4 | OK | Удаление СМС. Первый параметр – номер сообщения Второй параметр: 0 – удаление указанного сообщения (по умолчанию) 1 – удаление прочитанных сообщений 2 – удаление прочитанных и отправленных сообщений 3 – удаление прочитанных, отправленных и не отправленных сообщений 4 – удаление всех сообщений |
AT+CSCA? | +CSCA: «+79126313431»,145 OK | Возвращает номер сервис центра отправки сообщений. |
Тоновый набор (DTMF)
Тоновые сигналы: 0-9,#,*,A-D
Команда | Ответ | Описание |
AT+VTD=3 | OK | Длительность тоновых сигналов для AT+VTD. Значение параметра 1..255 |
AT+VTS=»1,4,#,A,6,7,0″ | OK | Отправить последовательность тоновых сигналов (до 20). Длительность задается командой AT+VTS. |
AT+CLDTMF=7, «1,4,#,A,6,7,0» | OK | Проиграть на модуле (через аудио выход) тоновые сигналы. Первый параметр — длительность 1-100 Второй параметр – строка тоновых сигналов, до 20. |
AT+VTD и AT+VTS команды, как мне кажется, работаю не корректно. VTD – должна устанавливать длительность тонового сигнала, а не паузу между ними, в то время когда тоновый сигнал в AT+VTS проигрывается быстро.
USSD
Команды приведены для текстового режима и в GSM кодировке.
Команда | Ответ | Описание |
AT+CUSD=1,»#100#» | OK +CUSD: 0,»Balance:240,68r «, | USSD запрос Первый параметр – режим обработки операции: 0 – выполнить запрос, ответ проигнорировать 1 – выполнить запрос, вернуть ответ 2 – отменить запрос Второй параметр – запрос в кавычках. |
ATD#100#; | OK +CUSD: 0,»Balance:240,68r «, | Упрощенный USSD запрос (работает только при GSM кодировке) |
Отмечу, что есть 2 варианта USSD запроса: начиная с * и начиная с #. В первом варианте ответ приходит на русском языке, во втором в латинице, если оператор такой запрос поддерживает и не ответит так же, как и в первом случае.
Режим отображения такой же, как и для СМС.
Примечание по текстовому режиму и кодировке
От текстового режима (PDU или текстовый) и кодировки модуля зависит формат ввода номеров, USSD запросов, входящих и исходящих СМС.
Самый геморройный и универсальный вариант – это PDU режим, т.к. в нём можно без проблем отправлять и принимать любые текстовые данные, но из-за его «геморойности» рассматривать его не буду.
Самый простой вариант – GSM кодировка. В нём номера вводятся привычным цифровым методом, исходящие и исходящие сообщения, как СМС, так и USSD в латинице отображаются, как им и полагается. С кириллицей дела обстоят посложнее, модуль входящие сообщения с ней отображает в UNICOD, точнее в HEX значениях UNICOD. С исходящими сообщениями дела обстоят сложнее!
Второй вариант, посложнее – UCS2 кодировка. Входящие и исходящие сообщения, USSD запросы, номера телефонов в запросах – всё пишется в UNICOD. Упрощенные USSD запросы не работают.
Другие варианты мной плохо опробованы, но у них тоже всё идёт в своей кодировке.
Пример (номер телефона заменён на +79012345678, добавлены переносы):
Кодировка | Запрос | Ответ |
PDU | AT+CMGR=2 | +CMGR: 1,»»,38 07919720780110F0000B919710325476F800003190121 175644215D4F29C0E9AB7E72E50985DC6B7CAF8B24B5E07 OK |
AT+CMGR=3 | +CMGR: 1,»»,59 07919720780110F0000B919710325476F800083190122 185134228005400650073007400200073006D00730020 0032002E0020042204350441044200200441043C0441 OK | |
GSM | AT+CMGR=2 | +CMGR: «REC READ»,»+79012345678″,»»,»13/09/21,11:57:46+24″ Test sms. alex-exe.ru OK |
AT+CMGR=3 | AT+CMGR=3 +CMGR: «REC READ»,»+79012345678″,»»,»13/09/21,12:58:31+24″ 005400650073007400200073006D007300200032 002E0020042204350441044200200441043C0441 OK | |
AT+CUSD=1,»#100#» | OK +CUSD: 0,»Balance:240,68r «, | |
UCS2 | AT+CMGR=2 | +CMGR: «REC READ»,»002B0037003900300031 0032003300340035003600370038″,»»,»13/09/21,11:57:46+24″ 005400650073007400200073006D0073002E0020 0061006C00650078002D006500780065002E00720075 OK |
AT+CMGR=3 | +CMGR: «REC READ»,»002B00370039003000310032 003300340035003600370038″,»»,»13/09/21,12:58:31+24″ 005400650073007400200073006D007300200032 002E0020042204350441044200200441043C0441 OK | |
AT+CUSD=1,»00230031 003000300023″ | OK +CUSD: 0,»00420061006C0061006E00630065003A0032 |
Текст сообщений выданного на запрос «AT+CMGR=3» — «Test sms 2. Тест смс»
Кратко о UNICOD.
В юникоде символы кодируются в шестнадцатиричке записанной в текстовом виде, при этом первые 127 символов просто переводятся в HEX, а вот к кириллице добавляется 350h.
Пример: 1 – 0031, G – 0047, z — 007A, Ы — 042B, я — 044F
Для кодировки и раскодировки UNICOD на скорую руку была написана небольшая программка – скачать .
В статье привёл значительную часть основных команд GSM модуля SIM900 из огромного списка поддерживаемых им. Для большинства задач все приведенные команды не будут нужны, а хватит только малой их части. В одной из следующих статьей рассмотрю, как пользоваться GPRS AT-командами и пример его использования на примере простенькой домашней сигнализации. Так же бы было интересно достать и посмотреть прошивку «All-in-One».
Так же может быть интересно:
Статья обновлена 2 октября 2013 года
Итак, после продолжительного времени раскуривания тонкостей работы с 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» (без ковычек) и номер, с которого была отправлена эта команда, записывается в энергонезависимую память микроконтроллера.
Скачать прошивку
Платка выполнена на двухстороннем стеклотекстолите размерами 60х80 мм. Благо что SIM900D выпускается в хорошо паябельном корпусе, с шагом выводов 1,5мм. Поэтому изготовить печатную плату под него не составит труда.
На верхнем слое запаян сам модуль, кнопка включения, держатель сим карты, светодиоды индикации и штырьковые разъемы на которые выведены: вход АЦП, вход микрофона, выход динамика, вывод Ring, вывод Power (для включения модуля по сигналу с микроконтроллера), UART (RX и TX). Плюс всякая необходимая SMD мелочь в типоразмере 0805. Для подключения питания служит тройной клеммный разъем, на него помимо плюса и земли, выведен вход Temp_bat, для возможности контроллировать процесс заряда Li-Ion аккумулятора (для себя я решил использовать именно его для питания устройства). Второй клеммный разъем предназначен для подключения зарядного устройства, с помощью которого будет заряжаться аккумулятор.
По индикации: светодиод Led1 показывает наличие питающего напряжения;
Led2 светится когда модуль включен;
Led3 мигает при включенном модуле, показывая статус подключения к сети;
Led4 дублирует выход Ring, при выключенном модуле постоянно горит, при включении гаснет, а при входящем звонке мигает.
На нижнем слое расположен держатель для батарейки CR2032 с диодом Шоттки D1 и электролит на 1000мкФ С1. В конце выложу архив с печатной платой и списком номиналов деталей.
Вот как это выглядит «вживую»:
Осталось вставить батарейку резервного питания RTC, сим-карту, подключить основное питание (3,3-4,5 В, 2А) и можно запускать модуль, нажатием на кнопку PWRKEY.
После нескольких секунд после включения светодиод LED3 начнет мигать с интервалом 3 секунды, значит регистрация модуля в сети прошла удачно. Теперь можно подключать модуль к микроконтроллеру или COM-порту компьютера и кидать в него команды.
Самая первая команда которую нужно отправить это «AT». Модуль ждет эту команду и после приема, автоматически настроит скорость порта. В ответ модуль вернет «ОК»:
Дальше будут рассмотрены основные команды для общения с модулем. А пока для желающих повторить плату, ниже можно скачать файлик печатки выполненной в DipTrace со списком необходимых компонентов.
Печатная плата
Программа PuTTY, небольшая но удобная терминальная программа
SIM900A — это легко доступный GSM / GPRS модуль , используемый во многих мобильных телефонах и КПК. Модуль также можно использовать для разработки IOT (Интернета вещей) и встроенных приложений. SIM900A — это двухдиапазонный процессор GSM / GPRS, работающий на частотах EGSM 900 МГц и DCS 1800 МГц. SIM900A имеет GPRS-класс 10/8 (дополнительно) и поддерживает схемы кодирования GPRS CS-1, CS-2, CS-3 и CS-4.
SIM900A — это 68-контактное устройство, как показано на -контактной схеме . Мы опишем функцию каждого контакта ниже.
Контактный номер | ПИН-код | Описание |
1 | PWRKEY | Вход напряжения для PWRKEY.PWRKEY должен быть переведен в низкий уровень для включения или выключения системы. Пользователь должен нажимать клавишу в течение короткого времени при включении или выключении системы, потому что системе требуется время для установки программного обеспечения. |
2 | PWRKEY_OUT | Соединение PWRKEY и PWRKEY_OUT на короткое время, после чего можно также включить или выключить модуль. |
3 | DTR | Терминал данных готов [последовательный порт] |
4 | RI | Индикатор звонка [Последовательный порт] |
5 | DCD | Обнаружение переноса данных [Последовательный порт] |
6 | DSR | Data Set Ready [последовательный порт] |
7 | CTS | Очистить для отправки [Последовательный порт] |
8 | РТС | Запрос на отправку [Серийный порт] |
9 | TXD | Передача данных [последовательный порт] |
10 | RXD | Получение данных [последовательный порт] |
11 | DISP _CLK | Часы для дисплея [Интерфейс дисплея] |
12 | DISP_DATA | Вывод данных на дисплей [Интерфейс дисплея] |
13 | DISP _D / C | Показать данные или выбрать команду [Интерфейс дисплея] |
14 | DISP _CS | Дисплей включен [Интерфейс дисплея] |
15 | VDD_EXT | 2.8В выходной блок питания |
16 | NRESET | Внешний вход сброса |
17,18,29,39,45, 46,53,54,58,59, 61,62,63,64,65 | GND | Земля |
19 | MIC_P | Положительный микрофон |
20 | MIC_N | Отрицательный микрофон |
21 | СПК_П | Позитивный динамик |
22 | СПК_Н | Динамик Отрицательный |
23 | LINEIN_R | Вход правого канала [Внешние линейные входы доступны для прямого микширования или мультиплексирования сгенерированных извне аналоговых сигналов, таких как полифонические сигналы от внешней мелодической микросхемы или музыки, сгенерированной ИС или модулем FM-тюнера.] |
24 | LINEIN_L | Вход левого канала |
25 | АЦП | Аналого-цифровой преобразователь общего назначения. |
26 | VRTC | Токовый вход для RTC, когда батарея не поставляется для системы. Токовый выход для резервного аккумулятора, когда присутствует основной аккумулятор и резервный аккумулятор находится в состоянии низкого напряжения. |
27 | DBG_TXD | Передающий вывод [Последовательный интерфейс для отладки и обновления прошивки] |
28 | DBG_RXD | Пин получения [Последовательный интерфейс для отладки и обновления прошивки] |
30 | SIM_VDD | Электропитание для SIM-карты |
31 | SIM_DATA | SIM-выход данных |
32 | SIM_CLK | SIM-часы |
33 | SIM_RST | Сброс SIM-карты |
34 | SIM_PRESENCE | SIM обнаруживает |
35 | ШИМ1 | ШИМ Выход |
36 | ШИМ2 | ШИМ Выход |
37 | ПДД | Последовательные данные [I2C] |
38 | SCL | Serial Clock [I2C] |
40,41,42,43,44 и 47,48,49,50,51 | KBR0 до KBR4 и ОтKBC4 до KBC0 | Интерфейс клавиатуры [ROWS & COLUMNS] |
52 | NETLIGHT | Укажите состояние сети |
55,56,57 | VBAT | Три контакта VBAT предназначены для подключения напряжения питания.Источник питания SIM900A должен быть от одного источника напряжения VBAT = от 3,4 до 4,5 В. Он должен обеспечивать достаточный ток в пакете передачи, который обычно возрастает до 2А. |
60 | RF_ANT | Антенное соединение |
66 | СТАТУС | Укажите рабочее состояние |
67 | GPIO 11 | Универсальный ввод / вывод |
68 | GPIO 12 | Универсальный ввод / вывод |
SIM800L, QUECTEL M95
Для понимания использования модуля давайте рассмотрим простую схему применения, как показано ниже.
Как показано выше, связь с этим модулем осуществляется через интерфейс UART или RS232. Данные отправляются в модуль или принимаются от модуля через интерфейс UART.
Модуль обычно подключается к стандартному источнику питания + 4,0 В. Он может работать при + 4,5 В регулируемой мощности, и любое более высокое напряжение может повредить модуль. И источник питания должен обеспечивать пиковый ток 2А. Интерфейс UART устанавливается, как показано на рисунке. Все, что вам нужно сделать, это подключить RXD модуля к TXD Arduino, а TXD подключиться к RXD ARDUINO.Заземления контроллера и модуль должны быть подключены к источнику опорного напряжения. Здесь AUDIO IN подключен к микрофону, а AUDIO OUT подключен к динамику или гарнитуре. И, наконец, нам нужно подключить работающую GSM SIM-карту к модулю. При включении модуля светодиод NETLIGHT периодически мигает, указывая на успешное соединение.
После того, как все подключения выполнены, нам нужно написать программу для микроконтроллера для обмена данными с модулем. Поскольку последовательность обмена данными между контроллером и модулем действительно сложна, мы будем использовать библиотеки, предварительно написанные для модуля.Вы можете скачать библиотеки для контроллера или модуля через их сайты. Использование этих библиотек облегчает общение. Все, что вам нужно сделать, это загрузить эти библиотеки и вызывать их в программах. После того, как файл заголовка включен, вы можете использовать простые команды в программе, чтобы сообщить контроллеру об отправке или получении данных. Контроллер отправляет данные в модуль через интерфейс UART на основе настройки протокола в библиотеках. Модуль отправляет эти данные другому пользователю GSM через сотовую сеть.Если модуль получает какие-либо данные из сотовой сети (или другого пользователя GSM), он передает их контроллеру через последовательную связь UART.
Таким образом, мы можем использовать модуль GSM900A для установления сотовой связи.
Измерения в миллиметре
, Технология:
TDD-LTE / FDD-LTE / WCDMA / GSM / GNSS
Размеры:
30 X 30 X 2,9 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS
Размеры:
17,6 х 15,7 х 2,3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
GPS (автономно)
Размеры:
10.1 х 9,7 х 2,5 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
GPS и ГЛОНАСС
Размеры:
10,1 х 9,7 х 2,5 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Двухдиапазонный HSPA / WCDMA
Двухдиапазонный GSM / GPRS / EDGE
Размеры:
24.0 х 24,0 х 2,4 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS + GNSS
Размеры:
17,6 х 15,7 х 2,3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Двухдиапазонный HSPA / WCDMA
Двухдиапазонный GSM / GPRS / EDGE
Размеры:
24.0 х 24,0 х 2,4 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
LTE-TDD / LTE-FDD / HSPA +
GSM / GPRS / EDGE
Размер:
30 X 30 X 2,9 мм
Нормальная температура:
-40 + до + 85 ℃
Технология:
Четырехдиапазонный GSM / GPRS
Размеры:
24 x 24 x 3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS
Размеры:
15.8 х 17,8 х 2,4 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS
Размеры:
17,6 х 15,7 х 2,3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS
Размеры:
24.0 х 24,0 х 3,0 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS
Размеры:
24,0 х 24,0 х 3,0 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS
Размеры:
17.6 х 15,7 х 2,3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
четырехдиапазонный GSM / GPRS + GPS + BT 3.0
Размеры:
24,0 х 24,0 х 2,6 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS + GNSS
Размеры:
17.6 х 15,7 х 2,3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS + GNSS
Размеры:
17,6 х 15,7 х 2,3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Двухдиапазонный UMTS
Размеры:
30 х 30 х 2.9 мм
Нормальная температура:
-30 ° C до + 85 ° C
Технология:
Двухдиапазонный HSPA +
Размеры:
30,0 х 30,0 х 2,9 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Двухдиапазонный HSPA / WCDMA
Двухдиапазонный GSM / GPRS / EDGE
Размеры:
24.0 х 24,0 х 2,4 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Двухдиапазонный HSPA / WCDMA
Двухдиапазонный GSM / GPRS / EDGE
Размеры:
24,0 х 24,0 х 2,4 мм
Нормальная температура:
-40 ° C до + 85 ° C
EVB KIT для модуля серии SIM5320.
Технология:
TDD-LTE / FDD-LTE / WCDMA / GSM / GNSS
Размеры:
30 X 30 X 2,9 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
LTE-FDD / GSM
Размер:
24 х 27 х 2,75 мм
Нормальная температура:
-40 + до + 85 ℃
Технология:
LTE-FDD / HSPA
Размер:
24 X 27 X 2.75 мм
Нормальная температура:
-40 + до + 85 ℃
Технология:
LTE-TDD / LTE-FDD / HSPA + / TD-SCDMA
Размер:
30 X 30 X 2,9 мм
Нормальная температура:
-40 + до + 85 ℃
Технология:
LTE-TDD / LTE-FDD / HSPA +
GSM / GPRS / EDGE
Размер:
30 X 30 X 2.9 мм
Нормальная температура:
-40 + до + 85 ℃
Технология:
Multi-Band NB-IoT
Размеры:
17,6 X 15,7 X 2,3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Трехдиапазонный LTE-FDD Двухдиапазонный GPRS / EDGE
Размеры:
24 X 24 X 2.6мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
GPS (автономно)
Размеры:
10,1 х 9,7 х 2,5 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
GPS и ГЛОНАСС
Размеры:
10,1 x 9.7 х 2,5 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
GPS и ГЛОНАСС
Размеры:
13,0 х 15,0 х 2,3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
MTK GNSS (Антенна)
Размеры:
14,0 х 9,6 х 2,15 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
TDD-LTE / FDD-LTE / WCDMA / GSM / GNSS
Размеры:
30 X 30 X 2,9 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS
Размеры:
17,6 х 15,7 х 2,3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
GPS (автономно)
Размеры:
10.1 х 9,7 х 2,5 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
GPS и ГЛОНАСС
Размеры:
10,1 х 9,7 х 2,5 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Двухдиапазонный HSPA / WCDMA
Двухдиапазонный GSM / GPRS / EDGE
Размеры:
24.0 х 24,0 х 2,4 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS + GNSS
Размеры:
17,6 х 15,7 х 2,3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Двухдиапазонный HSPA / WCDMA
Двухдиапазонный GSM / GPRS / EDGE
Размеры:
24.0 х 24,0 х 2,4 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
LTE-TDD / LTE-FDD / HSPA +
GSM / GPRS / EDGE
Размер:
30 X 30 X 2,9 мм
Нормальная температура:
-40 + до + 85 ℃
Технология:
Четырехдиапазонный GSM / GPRS
Размеры:
24 x 24 x 3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS
Размеры:
15.8 х 17,8 х 2,4 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS
Размеры:
17,6 х 15,7 х 2,3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS
Размеры:
24.0 х 24,0 х 3,0 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS
Размеры:
24,0 х 24,0 х 3,0 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS
Размеры:
17.6 х 15,7 х 2,3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
четырехдиапазонный GSM / GPRS + GPS + BT 3.0
Размеры:
24,0 х 24,0 х 2,6 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS + GNSS
Размеры:
17.6 х 15,7 х 2,3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Четырехдиапазонный GSM / GPRS + GNSS
Размеры:
17,6 х 15,7 х 2,3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Двухдиапазонный UMTS
Размеры:
30 х 30 х 2.9 мм
Нормальная температура:
-30 ° C до + 85 ° C
Технология:
Двухдиапазонный HSPA +
Размеры:
30,0 х 30,0 х 2,9 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Двухдиапазонный HSPA / WCDMA
Двухдиапазонный GSM / GPRS / EDGE
Размеры:
24.0 х 24,0 х 2,4 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Двухдиапазонный HSPA / WCDMA
Двухдиапазонный GSM / GPRS / EDGE
Размеры:
24,0 х 24,0 х 2,4 мм
Нормальная температура:
-40 ° C до + 85 ° C
EVB KIT для модуля серии SIM5320.
Технология:
TDD-LTE / FDD-LTE / WCDMA / GSM / GNSS
Размеры:
30 X 30 X 2,9 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
LTE-FDD / GSM
Размер:
24 х 27 х 2,75 мм
Нормальная температура:
-40 + до + 85 ℃
Технология:
LTE-FDD / HSPA
Размер:
24 X 27 X 2.75 мм
Нормальная температура:
-40 + до + 85 ℃
Технология:
LTE-TDD / LTE-FDD / HSPA + / TD-SCDMA
Размер:
30 X 30 X 2,9 мм
Нормальная температура:
-40 + до + 85 ℃
Технология:
LTE-TDD / LTE-FDD / HSPA +
GSM / GPRS / EDGE
Размер:
30 X 30 X 2.9 мм
Нормальная температура:
-40 + до + 85 ℃
Технология:
Multi-Band NB-IoT
Размеры:
17,6 X 15,7 X 2,3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
Трехдиапазонный LTE-FDD Двухдиапазонный GPRS / EDGE
Размеры:
24 X 24 X 2.6мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
GPS (автономно)
Размеры:
10,1 х 9,7 х 2,5 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
GPS и ГЛОНАСС
Размеры:
10,1 x 9.7 х 2,5 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
GPS и ГЛОНАСС
Размеры:
13,0 х 15,0 х 2,3 мм
Нормальная температура:
-40 ° C до + 85 ° C
Технология:
MTK GNSS (Антенна)
Размеры:
14,0 х 9,6 х 2,15 мм
Нормальная температура:
-40 ° C до + 85 ° C