Инструкция по установке и программированию sim900. Как происходит общение с GSM-модулем

GSM и GPRS модуль в проектах Ардуино позволяет подключаться к удаленным автономным устройствам через обычную сотовую связь. Мы можем отправлять команды на устройства и принимать информацию от него с помощью SMS-команд или через интернет-подключение, открытое по GPRS. В этой статье мы рассмотрим наиболее популярные модули для Arduino, разберемся с подключением и рассмотрим примеры программирования.

Модули GSM GPRS

GSM модуль используется для расширения возможностей обычных плат Ардуино – отправка смс, совершение звонков, обмен данными по GPRS. Существуют различные виды модулей, наиболее часто используемые – SIM900, SIM800L, A6, A7.

Описание модуля SIM900

Модуль SIM900 используется в различных автоматизированных системах. С помощью интерфейса UART осуществляется обмен данными с другими устройствами. Модуль обеспечивает возможность совершения звонков, обмен текстовыми сообщениями. Работа модуля релизуется на компоненте SIM900, созданным фирмой SIMCom Wireless Solution.

Технические характеристики:

С помощью устройства можно отслеживать маршрут транспорта совместно с ГЛОНАСС или GPS устройством. Возможность отправки смс-сообщений используется в беспроводной сигнализации и различных охранных системах.

Описание модуля SIM800L

Модуль выполнен на основе компонента SIM800L и используется для отправки смс, реализации звонков и обмена данными по GPRS. В модуль устанавливается микро сим карта. Устройство обладает встроенной антенной и разъемом, к которому можно подключать внешнюю антенну. Питание к модулю поступает от внешнего источника либо через DC-DC преобразователь. Управление осуществляется с помощью компьютера через UART, Ардуино, Raspberry Pi или аналогичные устройства.

Технические характеристики:

  • Диапазон напряжений 3,7В – 4,2В;
  • Поддержка 4х диапазонной сети 900/1800/1900 МГц;
  • GPRS class 12 (85.6 кБ/с);
  • Максимальный ток 500 мА;
  • Поддержка 2G;
  • Автоматический поиск в четырех частотных диапазонах;
  • Рабочая температура от –30С до 75С.

Описание модуля A6

Модуль A6 разработан фирмой AI-THINKER в 2016 году. Устройство используется для обмена смс-сообщениями и обмена данными по GPRS. Плата отличается низким потреблением энергии и малыми размерами. Устройство полностью совместимо с российскими мобильными операторами.

Технические характеристики:

  • Диапазон напряжений 4,5 – 5,5В;
  • Питание 5В;
  • Диапазон рабочих температур от -30С до 80С;
  • Максимальное потребление тока 900мА;
  • GPRS Class 10;
  • Поддержка протоколов PPP, TCP, UDP, MUX.

Модуль поддерживает карты формата микросим.

Описание модуля A7

A7 является новейшим модулем от фирмы AI-THINKER. По сравнению со своим предшественником A6 имеет встроенный GPS, позволяющий упрощать конструкцию устройства.

Технические характеристики:

  • Диапазон рабочих напряжений 3,3В-4,6В;
  • Напряжение питания 5В;
  • Частоты 850/900/1800/1900 МГц;
  • GPRS Class 10: Макс. 85.6 кбит;
  • Подавление эха и шумов.

Устройство поддерживает микросим карты. Модуль поддерживает обмен звонками, обмен смс-сообщениями, передачу данных по GPRS, прием сигналов по GPS.

Где купить GSM модули для ардуино

Традиционно, прежде чем начать, несколько советов и полезных ссылок на продавцов Aliexpress.

Очень качественный модуль KEYES SIM900 GSM GPRS Модуль SIM800C для ардуино от проверенного поставщика
Шилд для разработки, совместимый с Ардуино, на базе модуля SIM900 GPRS/GSM Недорогой модуль mini A6 GPRS GSM

Подключение GSM GPRS шилда к Arduino

В этом разделе мы рассмотрим вопросы подключения GSM – модулей к плате адуино. За основу почти во всех примерах берется Arduino Uno, но в большинстве своем примеры пойдут и для плат Mega, Nano и т.д.

Подключение модуля SIM800

Для подключения нужны плата Ардуино, модуль SIM800L, понижающий преобразователь напряжения, провода для соединения и батарея на 12В. Модуль SIM800L требует нестандартное для ардуино напряжение в 3,7В, для этого нужен понижающий преобразователь напряжения.

Распиновка модуля SIM800 приведена на рисунке.

Плату Ардуино нужно подключить к компьютеру через USB кабель. Батарею на 12 В подключить через преобразователь: -12В на землю Ардуино, от земли в преобразователь в минус, +12В в преобразователь в плюс. Выходы с модуля TX и RX нужно подключить к пинам 2 и 3 на Ардуино. Несколько модулей можно подключать к любым цифровым пинам.

Подключение модуля A6

Модуль A6 стоит дешевле, чем SIM900, и его очень просто подключать к Ардуино. Модуль питается напряжением 5В, поэтому для соединения не нужны дополнительно понижающие напряжение элементы.

Для подключения потребуются плата Ардуино (в данном случае рассмотрена Arduino UNO), GSM модуль А6, соединительные провода. Схема подключения приведена на рисунке.

Вывод RX с модуля GSM нужно подключить к TX на плате Ардуино, вывод TX подключить к пину RX на Ардуино. Земля с модуля соединяется с землей на микроконтроллере. Вывод Vcc на GSM модуле нужно соединить с PWR_KEY.

Подключение с помощью GSM-GPRS шилда

Перед подключением важно обратить внимание на напряжение питания шилда. Ток в момент звонка или отправки данных может достигать значений в 15-2 А, поэтому не стоит запитывать шилд напрямую от Ардуино.

Перед подключением к Ардуино нужно установить сим-карту на GSM-GPRS шилд. Также нужно установить джамперы TX и RX, как показано на рисунке.

Подключение производится следующим образом – первый контакт (на рисунке желтый провод) с шилда нужно соединить с TX на Ардуино. Второй контакт (зеленый провод) подключается к RX на Ардуино. Земля с шилда соединяется с землей с аруино. Питание на микроконтроллер поступает через USB кабель.

Макет соединения шилда и платы Ардуино изображен на рисунке.

Для работы потребуется установить библиотеку GPRS_Shield_Arduino.

Для проверки правильности собранной схемы нужно сделать следующее: соединить на Ардуино RESET и GND (это приведет к тому, что данные будут передаваться напрямую от шилда к компьютеру), вставить сим-карту в шилд и включить питание шилда. Плату Ардуино нужно подключить к компьютеру и нажать кнопку включения. Если все соединено правильно, загорится красный светодиод и будет мигать зеленый.

Краткое описание взаимодействия через AT-команды

AT-команды – это набор специальных команд для модема, состоящий из коротких текстовых строк. Чтобы модем распознал поданную ему команду, строки должны начинаться с букв at. Строка будет восприниматься, когда модем находится в командном режиме. AT-команды можно отправлять как при помощи коммуникационного программного обеспечения, так и вручную с клавиатуры. Практические все команды можно разделить на 3 режима – тестовый, в котором модуль отвечает, поддерживает ли команду; чтение – выдача текущих параметров команды; запись – произойдет записывание новых значений.

Список наиболее используемых AT-команд:

  • AT – для проверки правильности подключения модуля. Если все исправно, возвращается OK.
  • A/ – повтор предыдущей команды.
  • AT+IPR? – получение информации о скорости порта. Ответом будет +IPR: 0 OK (0 в данном случае – автоматически).
  • AT+ICF? – настройка передачи. В ответ придет +ICF: бит, четность.
  • AT+IFC? – контроль передачи. Ответом будет +IFC: терминал от модуля, модуль от терминала (0 – отсутствует контроль, 1 – программный контроль, 2 – аппаратный).
  • AT+GCAP – показывает возможности модуля. Пример ответа – +GCAP:+FCLASS,+CGSM.
  • AT+GSN – получение IMEI модуля. Пример ответа 01322600XXXXXXX.
  • AT+COPS? – показывает доступные операторы.
  • AT+CPAS – состояние модуля. Ответ +CPAS: 0. 0 – готовность к работе, 3 – входящий звонок, 4 – голосовое соединение, 2 – неизвестно.
  • AT+CCLK? – информация о текущем времени и дате.
  • AT+CLIP=1 – включение/выключение АОН. 1 – включен, 0 – выключен.
  • AT+CSCB=0 – прием специальных смс-сообщений. 0 – разрешено, 1 – запрещено.
  • AT+CSCS= “GSM” – кодирование смс-сообщения. Можно выбрать одну из следующих кодировок: IRA, GSM, UCS2, HEX, PCCP, PCDN, 8859-1.
  • AT+CMEE=0 – получение информации об ошибке.
  • AT+CPIN=XXXX – ввод пин-кода сим-карты.
  • AT&F – сброс до заводских настроек.
  • AT+CPOWD=1 – срочное(0) или нормальное(1) выключение модуля.
  • ATD+790XXXXXXXX – звонок на номер +790XXXXXXXX.
  • ATA – ответ на вызов.
  • AT+CMGS=”+790XXXXXXXX”>Test sms – отправка смс-сообщения на номер +790XXXXXXXX.

В данном случае рассмотрены основные команды для модуля SIM900. Для разных модулей команды могут незначительно отличаться. Данные для модуля будут подаваться через специальную программу «терминал», которую нужно установить на компьютер. Также подавать команды модулю можно через монитор порта в Arduino IDE.

Скетчи для работы с модулем GSM

Отправка СМС на примере SIM900

Перед тем, как отправить сообщение, нужно настроить модуль. В первую очередь нужно перевести в текстовый формат передаваемое сообщение. Для этого существует команда AT+CMGF=1. Нужно перевести кодировку на GSM командой AT+CSCS=»GSM». Эта кодировка наиболее удобная, так как там символы представлены в ASCII коде, который легко понимает компилятор.

Затем нужно набрать смс-сообщение. Для этого посылается команда с номером абонента AT+CMGS=»+79XXXXXXXXX» r, в ответ предлагается набрать текст смс. Нужно выполнить отправку сообщения. По окончании требуется отправить код комбинации Ctrl+Z, модуль позволит отправку текста адресату. Когда сообщение будет отправлено, вернется OK.

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

Получение смс. Для чтения смс-сообщения используется команда AT + CNMI = 2,2,0,0,0. Когда на модуль придет текстовое сообщение, он отправит в последовательный порт +CMTI: «SM»,2 (в данном случае 2 – порядковый номер сообщения). Чтобы его прочитать, нужно отправить команду AT+CMGR=2.

Прием голосового звонка. В первую очередь для разговора нужно подключить к модулю динамик и микрофон. При получении звонка будет показан номер, с которого он совершен. Для осуществления работы нужно включить библиотеку GSM:

#include

Если сим-карта заблокирована, нужно ввести ее пин-код. Если пин-код не требуется, это поле нужно оставить пустым.

#define PINNUMBER “”

В setup() должна быть произведена инициализация передачи данных на компьютер. Следующим шагом будет создание локальной переменной, чтобы отследить статус подключения к сети. Скетч не будет запущен, пока сим-карта не подключена к сети.

boolean notConnected = true;

С помощью функции gsmAccess.begin() происходит подключение к сети. При установлении соединения вернется значение GSM_READY.

vcs.hangCall(); – функция, показывающая, что модем готов принимать звонки.

getvoiceCallStatus() – определяет статус скетча. Если кто-то звонит, она возвращает значение RECEIVINGCALL. Для записи номера нужно воспользоваться функцией retrieveCallingNumber(). Когда будет совершен ответ на звонок, вернется TALKING. Затем скетч будет ждать символа новой строки, чтобы прервать разговор.

Установить GPRS-соединение и отправить данные на удаленный сервер

Сначала нужно установить библиотеку SoftwareSerial, которая позволяет обеспечивать последовательную передачу информации и связать GSM-модуль и микроконтроллер Ардуино.

Для отправки данных на сервер нужно отправить следующие команды:

AT+SAPBR=1,1 – открытие Carrier.

Следующие три команды связаны с установкой настроек подключения к сети.

AT+SAPBR=3,1,\”APN\”,\”internet.mts.ru\” – выбор оператора mts, имя точки доступа.

AT+SAPBR=3,1,\”USER\”,\” mts \” – выбор пользователя mts.

AT+SAPBR=3,1,\”PWD\”,\” mts \”

AT+SAPBR=1,1 – установка соединения.

AT+HTTPINIT – инициализация http.

AT+HTTPPARA=”URL”, – URL адрес.

AT+HTTPREAD – ожидание ответа.

AT+HTTPTERM – остановка http.

Если все выполнено правильно, в мониторе порта будут появляться строчки с АТ командами. Если отсутствует связь с модемом, то будет показывать по одной строке. При успешной установке GPRS-соединения на модуле начнет мигать светодиод.

Важной составляющей автоматизации любого объекта является система мониторинга и контроля. Если управлять объектом на небольших расстояниях (до нескольких сот метров) не вызывает больших проблем - можно использовать индивидуальные маломощные приемо-передатчики. То с мониторингом удаленных объектов такой прием не прокатит, организовать собственный радиоканал, скажем на 100 км, так просто не выйдет. Но тут есть один выход - можно использовать развернутые повсеместно сети сотовых операторов. Для этого есть даже специализированные GSM-модули, прикидывающиеся в сети опсоса простым мобильником. Один из таких GSM-модулей SIM900D попал ко мне в руки (за что спасибо товарищу RD3AVJ), о нем и пойдет речь.

SIM900D по сути является законченным устройством, который способен задействовать большинство услуг сотовой связи: совершать и принимать звонки, слать и получать SMS и MMS, использовать GPRS и заходить на FTP. Плюс такие плюшки как встроенный контроллер заряда Li-Ion батарей, часы реального времени, выход ШИМ интерфейс для подключения дисплея и аналогово-цифровой преобразователь (АЦП).

Для начала работы модуля нужно минимум внешних элементов и питание, но обо всем по порядку.


ПИТАНИЕ


Модуль необходимо запитывать постоянноым напряжением в диапазоне 3,2-4,5 вольта. Плюс питания подводится к выводам 38-39 (VBAT). Земля подводится ко всем выводам GND.

Потребление в режиме ожидания составляет всего 1мА, но следует учитывать что во время регистрации сети или при плохом сигнале модуль задирает мощность и потребление кратковременно может подниматься до 2 А. Источник питания должен быть готов к этому и электролиты на пару тысяч микрофарад здесь лишними не будут.


В случае автономной работы рекомендуется использовать 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. Схема согласования ниже.

Подключение микрофона:

К ряду побывавших в моих руках GSM модемах недавно добавился небезызвестный SIM900.

В статье речь пойдёт об отладочной плате для него.

Почему SIM900? Т.к. много слышал о нём и много, где его видел, давно захотелось ознакомиться с ним и его функционалом. Особенно заинтересовал он после статьи из журнала «Беспроводные технологии» «Все в одном или что нового в GSM-модуле SIM900». И один проект.

Основные характеристики:

  • Четыре диапазона GSM 850/ 900/ 1800/ 1900 МГц;
  • Класс передачи данных GPRS 10/8;
  • Класс мощности 4 (2Вт в диапазонах 850.900 МГц);
  • Класс мощности 1 (1Вт в диапазонах 1800/1900 МГц);
  • Управление AT-командами (GSM 07.07, 07.05 + AT команды от SIMCom);
  • Аудиокодеки HR, FR, EFR, AMR, подавление эха;
  • CSD до 14,4кбит/сек;
  • PPP-стек;
  • Встроенный стек TCP/IP, UPD/IP;
  • MUX (07.10);
  • Протоколы HTTP и FTP;
  • Напряжение питания 3,2-4,8В;
  • Температурный рабочий режим -30 +80 °С;
  • SIM карты поддерживает с напряжением 1,8 и 3,3В;
  • Размеры: 24* 24 * 3 мм
  • Вес 4 гр.

Характеристики взяты из той статьи и даташита к модулю.

Перейдём к получившемуся отладочному или демонстрационному модулю. За основу разработки взял свои наработки от . Вот что вышло:

В схеме были применены следующие упрощения от рекомендаций из даташита:


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

Теперь о том, что реализовано:

  1. Питание от 5В (что удобно при работе от USB или в 5В микроконтроллером) до 7-8В, стало возможно благодаря LM1086CT с низким падение напряжения;
  2. UART – для отладки или подключения к МК;
  3. + выведен I2C (не забываем про согласование уровней, если подключать к 5В логике, в отладке их не заложил);
  4. Кнопка и спец. вывод (5 пин на UART интерфейсе, включение высоким уровнем), как для ручного запуска модуля, т.к. и для его включения с микроконтроллера;
  5. Аудио вход и выход, для экспериментов, где может понадобиться голосовая связь.
  6. 2 статус диода, для отображения режимов работы модуля;
  7. Джампер JUMP1, который замыкает стабилизатор и позволяет питать модуль от 3,3-4,7В, что в свою очередь позволяет его напрямую запитать, например от литий-ионной батареи. Во время сборки и проверки не оказалось под рукой стабилизатора, питал от одной 18650 банки ;
  8. Разведены дополнительные земли для удобного подключения периферии;
  9. Разведена SMD площадка линии NRESET, для возможности добавлении цепи перезагрузки модуля.

Печатка выглядит следующим образом:

Плата выполнена на одностороннем стеклотекстолите размером 61х49мм. Основа – GSM модуль SIM900 (B09). Стабилизатор VR1 LM1086CT-ADJ в корпусе ТО-220. Держатель симкарт Sim card SCV-W2523X-08 или Sim card SCV-W2523X-06. Светодиоды любые в корпусах 0603 или 0805 с малым током потребления. Единственный транзистор VT1 – BC847 или подобный. Резисторы R1 и R2, токоограничители статус светодиодов, по 510Ом 0805. R3 4,7кОм, R4 47кОм, R5-R6 1кОм все типоразмера 0805. R7 0805 68Ом, R8 1206 10Ом. R8-R10 по 22Ома в корпусах типоразмера 0805. R12 1кОм, R13 10кОм, оба 0805. Конденсаторы C2-C3, C7-C8 по 33пФ, С4 22пФ, C5 1мкФ, С6 10пФ, С9,С10, С12 0,1мкФ, все они типоразмера 0805. Конденсатор C1 10мкФ чип-тантал типоразмера A. С10 100мкФ не менее 16В, C13 470-680мкФ не менее 10В, плату разводил под EPCOS: 100мкФ бочонок размера 8х11,5мм и 470-680мкФ той же серии размера 10х12,5-20мм. Кнопка S1 – DTSM13-5.0N (в пормэлектроннике), возможно её настоящее название – DTSM13-4.3N. Антенна любая на GSM диапазон с разьемом SMA-M, на плате SMA-F гнездо. Штыри PLS5 и 3х PLS2 + для перемычки JUMP1 нужны PLS3 и сам джампер с шагом 2,54. Аудио разъемы Jack 3,5 — CK3-101B, ставил, что было в наличии, не удачный вариант, лучше поставить какие-нибудь моно гнёзда .

Подключение GSM SIM900A к Arduino
Модем SIM900A построен с двухмодульным GSM900 / GSM модемом SIM900A от SIMCOM. Он работает на частотах 900/1800 МГц. SIM900A может автоматически выполнять поиск этих двух диапазонов. Полосы частот также могут быть установлены с помощью AT-команд. Скорость передачи в бодах конфигурируется в диапазоне 1200-115200 по AT-команде. Модем GSM / GPRS имеет внутренний стек TCP / IP, чтобы вы могли подключиться к Интернету через GPRS. SIM900A - это ультракомпактный и надежный беспроводной модуль. Это полноценный GSM / GPRS-модуль в SMT-типа, спроектированный с очень мощным одночиповым процессором, интегрирующим ядро AMR926EJ-S, что позволяет вам использовать небольшие размеры и экономичные решения.

Спецификация

Двухдиапазонные частоты 900/1800 МГц

GPRS многослотовый класс 10/8 GPRS для мобильных станций класса B

Соответствует GSM фазе 2/2 +

Размеры: 24 * 24 * 3 мм

Управление через AT-команды (GSM 07.07, 07.05 и SIMCOM с расширенными AT-командами)

Диапазон напряжения питания: 5 В

Низкое энергопотребление: 1,5 мА (спящий режим)

Рабочая температура: от -40 ° C до +85 °

Шаг 1: Элементы

В этой статье вам понадобятся:

1. GSM SIM900A (MINI V3.9.2)
2. Плата Arduino Uno
3. Перемычки
4. Адаптер питания 5В
5. SIM-карта
6. Макетная плата

1. Вставьте SIM-карту в модуль GSM и заблокируйте ее.
2. Включите питание вашего GSM-приемника, подключив его к 5V и GND
3. Подключите антенну

4. Теперь подождите некоторое время (скажем, 1 минута) и посмотрите мигание индикатора «Status LED» или «Network LED» (D6). // Это займет некоторое время, чтобы установить соединение с мобильной сетью //

5. После успешного установления соединения индикатор состояния / сети будет непрерывно мигать каждые 3 секунды. Вы можете попробовать позвонить на мобильный номер SIM-карты внутри GSM-модуля. Если вы слышите звонок, модуль gsm успешно установил сетевое соединение.

Шаг 3: Схема соединения



Вы можете увидеть вывод TTL с 3VR, 3VT, 5Vr, 5VT, VCC и GND на вашем sim900a около вашего контакта питания. Вам необходимо подключить 5VT GSM к Arduino D9 и 5VR к Arduino D10 для последовательной связи между модулем arduino и sim900a.

Шаг 4: Основные команды AT

1. Чтобы изменить режим отправки смс: AT + CMGF = 1

MySerial.println ("AT + CMGF = 1");

2. Для чтения SMS в текстовом режиме: AT + CNMI = 2,2,0,0,0

MySerial.println ("AT + CNMI = 2,2,0,0,0");

3. Чтобы позвонить: ATD + 60XXXXXXXXX; // заменим X на номер, который вы хотите вызвать, измените +60 на код страны

MySerial.println ("ATD + 60XXXXXXXX;");

4. Отключение / отключение: ATH

MySerial.println ("ATH");

5. Повторный набор номера: ATDL

MySerial.println ("ATDL");

6. Чтобы получить телефонный звонок: ATA

MySerial.println ("ATA");

Шаг 5: Библиотека


SoftwareSerial - это библиотека Arduino, которая обеспечивает последовательную передачу данных через другие цифровые выходы Arduino. Библиотека реплицирует аппаратные функции и выполняет задачу последовательной связи. Чтобы иметь возможность связывать модуль gsm с arduino, вам нужно будет загрузить эту библиотеку и извлечь ее в свои библиотеки Arduino.
Скачать файл: (cкачиваний: 240)

Шаг 6: Пример исходного кода




Загрузите исходный код примера ниже и откройте его на вашей Arduino IDE. Выберите вашу плату и порт и загрузите ее в свою плату Arduino Uno.
Скачать файл: (cкачиваний: 405)

Шаг 7: Последовательный монитор



После того как вы успешно загрузили исходный код, откройте свой серийный монитор. Последовательный монитор отобразится, как показано на рисунке выше.

Шаг 8: Результат: вызов / повторный набор




1. Когда вы вводите ключ c: чтобы позвонить, gsm прочитает команду ATD и сделает вызов по номеру телефона, который вы загрузили в исходный код.


2. Когда вы вводите ключ h: для разъединения / разговора, gsm прочитает команду ATH и отключит соединение.


3. Когда вы вводите ключ e: для повторного набора, gsm читает команду ATDL и выполняет повторный набор предыдущего номера, который он вызвал


4. Когда есть входящий вызов, вы можете увидеть RING, напечатанный на последовательном мониторе, и вы можете нажать i: чтобы получить звонок, и будет выполнена команда ATA GSM, и вы будете подключены к соединению вызова.

Шаг 9: Результат: отправка и получение SMS





1. Введите ключ для отправки SMS. Номер получателя и текстовое сообщение, напечатанное на серийном мониторе. ПРИМЕЧАНИЕ. Вы можете отредактировать телефонный номер получателя и текстовое сообщение в исходном коде.

2. Когда gsm получит сообщение, текстовое сообщение и номер будут напечатаны на серийном мониторе.


Перевод статьи "