Подключение GSM SIM900A к Arduino. Опыт работы с GSM-модемом SIM900
Наконец-то мне удалось заняться изучением, пожалуй самого популярного в DIY среде GSM модуля — GSM900. Что такое GSM модуль? Это устройство, которое реализует функции сотового телефона. Другими словами, GSM900 позволяет звонить другим абонентам сотовой сети, принимать звонки, отправлять и принимать SMS-сообщения. А еще, разумеется, передавать данные по протоколу GPRS.
Мне этот модуль понадобился для вполне конкретной цели: появился проект системы освещения, управляемой дистанционно. Проще всего эта задача решается SMS-сообщениями: отправил одну sms — свет включился, отправил другую — выключился. Никаких пультов не надо, а телефон есть у всех (даже у бомжей). Собственно, в этой статье я рассмотрю именно этот вариант использования модуля GSM900.
1. Прошивка
Волею судеб, у меня в руках оказался модуль GSM900A. Прочитав первый попавшийся форум про оживление этой штуки, выяснилось, что буква A в названии означает принадлежность модуля к азиатскому региону. А следовательно, работать с нашими операторами он не станет. Уныние 🙁
Благо, в следующих постах на том же форуме содержалась успокаивающая информация:) Оказалось, что не всё так плохо, и чтобы модуль заработал в нашем регионе, его нужно попросту перепрошить. Этот процесс хорошо описан в блоге нашего соратника Alex-EXE: прошивка «all in one» sim900
Попробую сделать то же самое, но еще более подробно, и с учетом особенностей моего модуля.
Если у вас правильный модуль и прошивка не требуется, можно сразу прыгать на раздел №2.
Инструменты
Итак, для начала подготовим все необходимые инструменты. Во-первых, непосредственно для прошивки потребуется приложение SIM900 Series download Tools Develop, которое можно легко найти в интернете ().
Во-вторых, пригодится и сам файл прошивки 1137B02SIM900M64_ST_ENHANCE, который тоже легко добывается ().
Наконец, в-третьих, нам нужен будет хороший терминал для экспериментов с модулем. Обычно я использую TeraTerm, но в этот раз его возможностей нехватило (или я не разобрался). Пришлось установить монстра с гениальным названием .
Подключение к USB-UART мосту
Теперь подключаем линии RX и TX к мосту. В качестве последнего я использовал CP2102. В моем случае, вопреки логике, RX и TX моста соединялись с RX и TX GSM-модуля симметрично (а не крест-накрест, как принято).
Также следует запитать модуль от стабильного и мощного источника, так как пиковый ток на модуле может достигать 2А (якобы). Подойдут 4 аккумулятора типоразмера AA. Полная схема включения выглядит так:
SIM900 | |
CP2102 Gnd | Gnd |
CP2102 +5V | VCC_MCU |
CP2102 RX | SIMR |
CP2102 TX | SIMT |
Внешний источник +5В | VCC5 |
Внешний источник Gnd | Gnd |
RST |
У данной модели нет кнопки сброса, так что для прошивки нам потребуется на пару секунд кинуть контакт RST на землю. Для этого мы пока оставим его висеть в воздухе.
Предварительная настройка модуля
Перед тем, как приступить к прошивке, мы соединимся с модулем, и изменим ему скорость UART. Для этого запустим терминал Terminal, выберем правильный порт, и установим скорость обмена — 9600. После этого жмем «Connect».
Всё общение с модулем происходит посредством AT-команд.
Первое что мы скажем модулю будет самая примитивная AT-команда: «AT». Это такой своеобразный ping, на который модуль должен ответить словом «OK».
Если все прошло успешно, и модуль действительно ответил нам «OK», отправляем команду настройки скорости:
AT+IPR=115200
В конце команды должен стоять служебный символ возврата каретки — CR. В ASCII таблице он имеет код 13 (или 0x0D в шестнадцатеричной системе). Символ подставится автоматически, если вы поставите галку «+CR» напротив строки ввода в нашем терминале. В других терминалах тоже есть подобные настройки.
В ответ на введенную команду снова получим — «OK».
Данная настройка понадобится нам для ускорения процедуры прошивки. В противном случае, как указал в своем блоге Alex-EXE, прошивка займет около часа.
Настройка программы
После того, как все провода воткнуты в нужные места, и модуль подготовлен к прошивке, запускаем приложение SIM900 Series download Tools Develop. Настройка программы состоит всего из нескольких пунктов:
- в поле Target указываем целевой чип. Почему-то у меня не вышло залить прошивку на SIM900A, так что я выбрал «SIM900»;
- выбираем правильный порт в поле Port;
- Baud Rate ставим в 115200;
- наконец, указываем файл прошивки в поле Core File (файл с расширением cla).
С настройкой всё.
Прошивка
Теперь выполняем строго и последовательно шесть важных шагов.
- Подключаем к модулю питание (наши 4 аккумулятора). Должна загореться красная лампа питания, а лампа статуса должна начать мигать.
- Подключаем USB-UART к компьютеру.
- Замыкаем провод RST на землю (помним, что все это время он болтался в воздухе).
- Нажимаем в программе кнопку Start Download.
- Считаем в уме до трех, и отрываем RST от земли.
Ждем 6 минут до завершения прошивки.
Что мы имеем после прошивки
Во-первых, модуль теперь умеет работать с нашими операторами. Во-вторых, мы поставили расширенную прошивку, среди особенностей которой, к примеру, получение координат модуля по сотовым вышкам, работа с электронной почтой и доступ к дополнительным 2.5 Мб памяти.
2. Эксперименты с GSM модулем
Попробуем теперь выполнить разные полезные операции с модулем. Для начала, введем ПИН-код (если он есть):
AT+CPIN=8899
Ответ модуля будет таким:
CPIN: READY.
После этого получим от модуля немного информации.
AT+GMR - идентификатор прошивки. AT+GSN - IMEI. AT+CPAS - состояние (0 – готов к работе, 2 – неизвестно, 3 – входящий звонок, 4 – голосовое соединение). AT+COPS? - информация об операторе.
Телефонные вызовы
Теперь наберем какой-нибудь номер. Делается это с помощью команды:
ATD+790XXXXXXXX;
Точка с запятой в конце команды очень важна, на забудьте про неё!
Если во время UART сеанса на устройство кто-нибудь позвонит, вернется сообщение:
Ответить на звонок (взять трубку) можно командой:
Если к модулю подключены наушники и микрофон, то можно пообщаться с удаленным абонентом как по обычному сотовому телефону.
Завершает вызов команда:
Отправка SMS
Сначала включим текстовый режим сообщений:
AT+CMGF=1
и установим кодировку:
AT+CSCS= "GSM"
Модуль поддерживает и другие кодировки, более удобные для автоматических систем. Но нам для экспериментов удобнее всего использовать именно GSM режим, в котором телефон задается цифрами, а текст сообщений пишется в ASCII кодировке. Теперь отправим кому-нибудь сообщение:
AT+CMGS="+79123456789"
А конце команды необходимо добавить сразу два служебных символа: CR и LF. В Terminal это можно сделать галочкой CR=CR+LF, либо вручную добавив в конце строки: AT+CMGS=»+79123456789″&0D&0A
После ввода этой команды, в ответ будет получен символ «>», означающий начало ввода сообщения. Пишем какой-нибудь текст:
В конце сообщения нам нужно будет передать один из двух специальных символов. Чтобы отправить сообщение введем символ из ASCII таблицы с номером 26. Чтобы отменить отправку — символ с номером 27.
В используемом нами терминале для отправки символа по коду можно использовать одно из двух выражений: в шестнадцатеричном формате: $1A, и в десятеричном: #026
Прием SMS
Если во время сеанса на устройство придет SMS, вернется сообщение формата:
CMTI: "SM",4
здесь 4 — это номер входящего непрочитанного сообщения.
AT+CMGR=4
В ответ получим:
CMGR: "REC READ","+790XXXXXXXX","","13/09/21,11:57:46+24" Hello World! OK
В общем, все просто. Этого нам вполне достаточно для реализации задуманного. Для более глубокого изучения возможностей GFM900 рекомендую почитать еще одну статью Alex-EXE: at-команды gsm модема sim900
3. Взаимодействие с микроконтроллерами
Вообще, чтобы управлять внешними устройствами вовсе не обязательно спаривать модуль GSM900 с другим микроконтроллером. В этот модуль можно зашить свою программу, которая будет делать всё что угодно со свободными GPIO выводами. Однако, в большинстве готовых плат GPIO не разведены, поэтому для создания прототипа задуманного устройства воспользуемся самой простой Arduino Uno/Nano.
Общаться Arduino и GSM900 будут всё по тому же UART интерфейсу. Для этого соединим эти два устройства по следующей схеме:
GSM900 | GND | VCC_MCU | SIMT | SIMR |
Ардуино Уно | GND | +5V | RX | TX |
Теперь составим программу, которая будет ловить СМС-ки, и зажигать светодиод на ноге №13 на пару секунд. Этим мы имитируем управление неким внешним устройством.
Const String spin = "1234";
const int rel_pin = 13;
String ss = "";
// Отправка пин-кода
void sendPin(){
String cmd = "AT+CPIN="+spin+char(0x0D);
Serial.print(cmd);
}
// Включение светодиода на 2 секунды
void receiveSMS(String s){
digitalWrite(rel_pin, HIGH);
delay(2000);
digitalWrite(rel_pin, LOW);
}
// Разбор строки, пришедшей из модуля
void parseString(String src){
bool collect = false;
String s = "";
for(byte i=0; i Загружаем программу на Arduino, и тестируем систему. Если всё сделано правильно, отправка SMS сообщения на устройство приведет к включению светодиода на 2 секунды. Разумеется, вместо светодиода можно включать/выключать мощное реле, к которому подключен котел отопления в загородном доме. Обзор платы GSM/GPRS SIM900 Shield
Плата Arduino GPRS/GSM Shield (рисунок 1) предоставляет нам возможность использовать для удаленного приема и передачи данных мобильной GSM-связи. Осуществить это можно тремя способами: используя отправку/прием коротких текстовых сообщений (SMS); отправкой голосовых (аудио) команд на основе технологий CSD (стандартная технология передачи данных в сети GSM) и/или DTMF (двухтональный многочастотный аналоговый сигнал, используемый для набора телефонного номера); используя пакетную передачу данных на основе технологии GPRS. Плата построена на базе модуля SIMCom SIM900. Также на ней расположены: слот для SIM-карты; джек 3,5 мм для аудио-входа и выхода; разъём для внешней антенны. Общение с платой производится через serial-соединение с помощью набора AT-команд. С помощью перемычек на плате возможно установить используемые для коммуникации контакты: аппаратные 0- 1-й или 2-3 (на некоторых платах) 7- 8-й для работы через SoftwareSerial. Рисунок 1. GPS GPRS shield. Плату GSM GPRS SIM900 Shield можно включить двумя способами: аппаратным (нажатие кнопки PWRKEY); программным. Подключение к плате Arduino Плата GSM GPRS SIM900 Shield сделана в формате шилда для плат Ардуино. Контакты шилда (гребенки) легко вставляются в разъемы платы, образуя при этом "бутерброд" (рисунок 2). Рисунок 2. Установка GPS GPRS shield на плату Arduino. Рассмотрим управление модулем GSM GPRS shield с помощью AT-команд. Для этого установим модуль на и подключим её к компьютеру. Arduino-скетч отправки и получения данных между компьютером и модулем GSM GPRS shield через плату показан в листинге 1. Листинг 1 #include // создание объекта SoftwareSerial grs(7, 8); // RX, TX // скорость обмена #define GSMbaud 9600 Serial.begin(9600); gsm.begin(GSMbaud); Serial.println("Start"); if (Serial.available()) { str1 = Serial.readStringUntil("\n"); str1.toCharArray(buffer, hh.length() + 1); gsm.write(buffer); gsm.board.write("\n"); if (gsm.available()) { Serial.write(gprs.read()); Загружаем скетч на плату ардуино, открываем монитор последовательного порта и набираем команды установки режима: Команда проверки подключения модуля к GPRS-сети, которую при ответе COMMAND NO RESPONSE необходимо постоянно повторять Подключаемся к точке доступа оператора связи. Для Билайн: AT + CGDCONT = 1, "IP", "internet.beeline.ru" AT + CSTT = "internet.beeline.ru","", "" Установка интернет-соединения: AT + CGACT = 1,1 Обращение к интернет-ресурсу Весь процесс подключения представлен на рисунке 3. Рисунок 3. Процесс работы с модулем GSM GPRS SIM800 в мониторе последовательного порта. Рассмотрим пример использования отправки sms-сообщений при уменьшении температуры воздуха в помещении ниже определенного значения. Нам потребуются следующие детали: модуль GSM GPRS Shield – 1 шт; sim-карта сотового оператора с положительным балансом; блок питания 12В – 1 шт; Схема подключения показана на рисунке 4. Рисунок 4. Схема подключения для отправки sms-сообщений при низких значениях температуры воздуха. Приступим к написанию скетча. Каждые 30 секунд получаем данные влажности и температуры с датчика DHT11. Используем библиотеку DHT. При значении температуры ниже критического отправляем sms на номер указанный в константе PHONE. И делаем паузу на 10 минут. Содержимое скетча показано в листинге 2. Листинг 2 // подключение библиотек #include #include "DHT.h" // телефон для отправки sms #define PHONE_NUMBER "+7928222222" // создание объектов SoftwareSerial gsm(7, 8); DHT sensorDHT(2, DHT22); // пороговое значение температуры #define TEMPP 18 unsigned long millissend; // запуск последовательного порта Serial.begin(9600); // запуск датчика DHT sensorDHT.begin(); // запуск SoftwareSerial gsm.begin(9600); if (millis()-millissend>30*1000) { // показания каждые 30 секунд? // получение данных с датчика DHT int h = sensorDHT.readHumidity(); int t = sensorDHT.readTemperature(); if(t // отправить sms // ждем 10 минут delay(10*60*1000); millissend=millis(); // отправка sms void SendSMS(int t) { // установка text mode gsm.print("AT+CMGF=1\r"); // телефон gsm.println(PHONE_NUMBER); gsm.println("\""); // отправить данные t // окончание передачи gsm.println((char)26); Загружаем скетч, проверяем событие прихода sms-сообщения на выбранный номер телефона при критическом значении температуры. Рисунок 5. Схема в сборе. Создадим прошивку получения данных при отправке sms-сообщения на sim-карту, находящийся в модуле GSM GPRS shield. Содержимое скетча показано в листинге 3. Листинг 3 // подключение библиотек #include #include "DHT.h" // создание объектов SoftwareSerial gsm(7, 8); DHT sensorDHT(2, DHT22); // переменные String phone = "" String str1 = ""; // boolean isSMS = false; // подключение последовательного порта Serial.begin(9600); // запуск датчика DHT // запуск SoftwareSerial gsm.begin(9600); // Настройка приёма сообщений gsm.print("AT+CMGF=1\r"); gsm.print("AT+IFC=1, 1\r"); gsm.print("AT+CPBS=\"SM\"\r"); gsm.print("AT+CNMI=1,2,2,1,0\r"); if (gsm.available()) { char c = gsm.read(); if ("\r" == c) { if (isSMS) { // текущая строка - sms-сообщение, if (!str1.compareTo("tmp")) { // текст sms - tmp // отправить sms на приходящий номер // получение данных int t = dht.readTemperature(); // AT-команда установки text mode gsm.print("AT+CMGF=1\r"); // номер телефона получателя gsm.println("AT + CMGS = \""); gsm.println(phone); gsm.println("\""); // сообщение – данные температуры // окончание передачи gsm.println((char)26); Serial.println(currStr); if (str1.startsWith("+CMT")) { Serial.println(str1); // выделить из сообщения номер телефона phone=str1.substring(7,19); Serial.println(phone); // если текущая строка начинается с "+CMT", // то следующая строка является сообщением else if ("\n" != c) { str1 += String(c); Загружаем скетч на плату, отправляем sms-сообщение с текстом tmp на sim-карту и получаем в ответ sms-сообщение с данными температуры. 1. Нет связи с Arduino по последовательному порту. Проверьте питание платы. Проверьте правильность установки перемычек. 2. Не отправляются sms-сообщения Проверьте наличие внешнего питание GSM GPRS shield. Проверьте баланс sim-карты. Arduino представляет собой аппаратную платформу, используемую для быстрого создания различных электронных устройств, включая и охранные . Благодаря несложной конструкции, простоте языка программирования, а также использования открытых кодов даже непрофессионал сможет самостоятельно сделать многофункциональную сигнализацию для охраны своего дома, дачи, квартиры или гаража. Arduino GSM модуль станет оптимальным вариантном для создания бюджетной охранной системы, которую оптимально можно настроить под конкретный объект. Аппаратная платформа Arduino широко применяется в процессе создания различных электронных систем и устройств, которые могут принимать и обрабатывать сигналы от разно функциональных аналоговых либо цифровых сенсоров и датчиков. За результатами обработки получаемых сигналов может осуществляться управление внешними исполнительными механизмами и системами, подключаемыми к Arduino. Пример использования данных модулей на видео: Аппаратная платформа Arduino обеспечивает возможным эффективно взаимодействовать с контролируемой средой через широкий спектр функциональных датчиков, которые могут контролировать различные параметры. Благодаря этому на базе такого рода платформ можно формировать охранные комплексы, которые будут следить за перемещениями по охраняемому периметру, за вскрытием окон и дверей, за повреждением стекол. Кроме датчиков охранного типа можно применять также и температурные сенсоры, датчики контроля за утечкой воды или газа. Используя с платформой Ардуино GSM модуль информацию об опасности или внештатной ситуации на объекте можно предать владельцу максимально быстро. Для этой цели используется одна из сетей мобильных операторов. Отличительной особенностью устройств Arduino является то, что их микроконтроллер может программироваться самим пользователем, используя язык Arduino, основанный на Wiring. Благодаря этому каждый может программировать алгоритм работы создаваемой охранной сигнализации так, как это требуется для конкретного охраняемого объекта и особенностей его применения. На сегодняшний день существует множество аппаратных платформ и микроконтроллеров, которые могут получать информацию от внешних датчиков, обрабатывать ее и отправлять сигналы управления к исполнительным системам. Платформа Arduino максимально упрощает выполнение перечисленных процессов и владеет широким спектром преимуществ перед иными устройствами подобного рода. Высокая надежность аппаратной платформы. Платы Arduino выпускаются с микроконтроллерами ATMEGA8 и ATMEGA168 (более ранние модели) и с контроллерами ATmega32u4, Atmel ATmega328 (новые модели), которые отличаются высокой функциональностью и надежностью. Чтобы обеспечить полнофункциональную работу охранных систем или других устройств, построенных с применением платформ Arduino нужно иметь GSM модуль для Ардуино. С его помощью может осуществляться выход в Интернет, совершаться голосовой дозвон или отправка СМС-собщений. В GSM-плате применяется специальный радиомодем M10, взаимодействие с которым обеспечивается за счет специальных AT-команд. Обмен информацией с модемом реализован с помощью программного последовательного интерфейса, владеющего цифровыми кодами. Используемый в Ардуино GSM модем является 4-диапазонным, который может функционировать на следующих частотах: GSM 850MHz и 900MHz, PCS1900MHz и DCS1800MHz. В модеме реализована поддержка таких протоколов, как TCP/UDP и HTTP, обеспечивающих соединения через GPRS. Скорость передачи информационных пакетов в таком режиме будет составлять около 90 кбит/сек. Отправка СМС через Arduino и GSM модуль реализуется при наличии установленной SIM-карты одного из сотовых операторов.» Кроме этого появится возможность осуществлять передачу голосовых сообщений, совершать звонки – для этого дополнительно нужен микрофон и внешний динамик. Установка SIM-карты позволит использовать Arduino в режиме сотовой связи или GPRS. Перед тем, как подключить GSM модуль к Ардуино в его слот для следует установить подходящего типоразмера «симку» одного из операторов сотовой связи. После этого модуль подсоединяется к аппаратной платформе Arduino в соответствии с инструкцией и производится ее прошивка. Для этой цели используется ПК, который подключается к устройству с помощью USB-кабеля. После загрузки среды Arduino следует нажать клавишу Upload, что запустит процесс загрузки софта. По завершению этого процесса платформа может отсоединяться от компьютера и питаться от внешней системы питания. На потребительском рынке представлен широкий выбор различных GSM модулей под Arduino. Ниже приведены основные характеристики наиболее популярных. Ардуино GSM модуль M590 является беспроводным коммуникационным устройством, используемым в целях приема и передачи информации в сетях мобильной связи. Модуль этой серии создан на плате с минимальной обвязкой и позиционируется как GSM-модуль для аппаратной платформы Arduino. С помощью этого устройства можно устанавливать мобильную связь с внешним телефоном, отправлять СМС-сообщения, производить обмен информацией по стандарту GPRS Class-10. В модуле этой конструкции нет микрофонного входа, что ограничивает возможность осуществления приема голосовой связи – соединение может устанавливаться, но звук передаваться не будет. Для управления M590 используются АТ-команды, которые подаются посредством последовательной связи. В качестве рабочих радиочастот применяются частоты от 900 МГц до 1800 МГц. Величина питающего напряжения составляет в пределах 3,3…5 В. Поэтому GSM модуль Neoway M590 подключение к Ардуино осуществляет через специальный преобразователь напряжений 5 В « 3,3 В. Компактный Sim800l GPRS GSM модуль относится к устройствам, которые применяются для поддержки мобильной связи. Модуль построен на безе SIM-800L, созданного SIMCom Wireless Solutions и рассчитан для предоставления услуг к сервисам информационных сетей GPRS\GSM, используя для этого частоты от 850 МГц до 1900 МГц. С его помощью может осуществляться отправка SMS-сообщений, реализация звонков, а также обмен информацией по GPRS-каналам. GSM-модуль комплектуется антенной, при потребности улучшения уровня сигнала можно использовать дополнительные антенны. Для управления модулем может использоваться ПК, подключаемый посредством специальной платы преобразования интерфейсов USB-UART либо же непосредственно через сам UART. Если используется Sim800l GPRS GSM модуль,
подключение к Ардуино должно реализовываться через преобразователь логических уровней. Это обусловлено тем, что у SIM800L величина напряжения на логическом высоком уровне составляет 2,8 В, а в Arduino – 3,3…5 В. Подключение GSM модуля к Arduino обеспечит возможность использования технологий обмена данными GSM/GPRS, а также совершать звонки и посылать СМС-сообщения. Устройства этого типа построены с использованием модуля SIMCom SIM900. Они имеют слот для установки SIM-карты, разъем для подключения внешней антенны, набор 3,5-миллиметровых джеков для аудио входа и выхода. Управление и работа с Arduino GSM Shield осуществляется посредством Serial-соединений и набора специализированных AT-команд. Этот модуль представляет собой специальную плату, используемую для управления цифровыми устройствами удаленно, а также для обмена информацией. Применение SIM900 позволяет Arduino работать по технологиям GSM/GPRS, обеспечивая голосовую связь, отправку СМС и обмен данными с помощью сотовых и мобильных сетей. Для функционирования этого модуля к нему подключается управляющий контроллер, источник питания, антенна, а также устанавливается SIM-карта мобильного оператора. При помощи специальных джамперов выполняется настройка способа обмена данными с контроллером. При потребности можно подключить динамик и микрофон. Подключение GSM SIM900A к Arduino
Спецификация Двухдиапазонные частоты 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) 1. Вставьте SIM-карту в модуль GSM и заблокируйте ее. 4. Теперь подождите некоторое время (скажем, 1 минута) и посмотрите мигание индикатора «Status LED» или «Network LED» (D6). // Это займет некоторое время, чтобы установить соединение с мобильной сетью // 5. После успешного установления соединения индикатор состояния / сети будет непрерывно мигать каждые 3 секунды. Вы можете попробовать позвонить на мобильный номер SIM-карты внутри GSM-модуля. Если вы слышите звонок, модуль gsm успешно установил сетевое соединение. Шаг 3: Схема соединения
Шаг 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: Библиотека
Шаг 6: Пример исходного кода Шаг 7: Последовательный монитор
Шаг 8: Результат: вызов / повторный набор Шаг 9: Результат: отправка и получение SMS 2. Когда gsm получит сообщение, текстовое сообщение и номер будут напечатаны на серийном мониторе. Управление модулем GSM GPRS SIM900 с помощью AT-команд
Пример отправки sms-сообщений с платы Arduino
Часто задаваемые вопросы FAQ
Область применения
Назначение
Преимущества использования
Принцип работы
Как подключать модули к ардуино
Сравнительные характеристики GSM модулей
Neoway M590
GSM-модуль SIM800L
GPRS Shield от Seeed Studio
Модем SIM900A построен с двухмодульным GSM900 / GSM модемом SIM900A от SIMCOM. Он работает на частотах 900/1800 МГц. SIM900A может автоматически выполнять поиск этих двух диапазонов. Полосы частот также могут быть установлены с помощью AT-команд. Скорость передачи в бодах конфигурируется в диапазоне 1200-115200 по AT-команде. Модем GSM / GPRS имеет внутренний стек TCP / IP, чтобы вы могли подключиться к Интернету через GPRS. SIM900A - это ультракомпактный и надежный беспроводной модуль. Это полноценный GSM / GPRS-модуль в SMT-типа, спроектированный с очень мощным одночиповым процессором, интегрирующим ядро AMR926EJ-S, что позволяет вам использовать небольшие размеры и экономичные решения.
В этой статье вам понадобятся:
2. Плата Arduino Uno
3. Перемычки
4. Адаптер питания 5В
5. SIM-карта
6. Макетная плата
2. Включите питание вашего GSM-приемника, подключив его к 5V и GND
3. Подключите антенну
Вы можете увидеть вывод TTL с 3VR, 3VT, 5Vr, 5VT, VCC и GND на вашем sim900a около вашего контакта питания. Вам необходимо подключить 5VT GSM к Arduino D9 и 5VR к Arduino D10 для последовательной связи между модулем arduino и sim900a.
SoftwareSerial - это библиотека Arduino, которая обеспечивает последовательную передачу данных через другие цифровые выходы Arduino. Библиотека реплицирует аппаратные функции и выполняет задачу последовательной связи. Чтобы иметь возможность связывать модуль gsm с arduino, вам нужно будет загрузить эту библиотеку и извлечь ее в свои библиотеки Arduino.
Скачать файл: (cкачиваний: 240)
Загрузите исходный код примера ниже и откройте его на вашей Arduino IDE. Выберите вашу плату и порт и загрузите ее в свою плату Arduino Uno.
Скачать файл: (cкачиваний: 405)
После того как вы успешно загрузили исходный код, откройте свой серийный монитор. Последовательный монитор отобразится, как показано на рисунке выше.
1. Когда вы вводите ключ c: чтобы позвонить, gsm прочитает команду ATD и сделает вызов по номеру телефона, который вы загрузили в исходный код.
2. Когда вы вводите ключ h: для разъединения / разговора, gsm прочитает команду ATH и отключит соединение.
3. Когда вы вводите ключ e: для повторного набора, gsm читает команду ATDL и выполняет повторный набор предыдущего номера, который он вызвал
4. Когда есть входящий вызов, вы можете увидеть RING, напечатанный на последовательном мониторе, и вы можете нажать i: чтобы получить звонок, и будет выполнена команда ATA GSM, и вы будете подключены к соединению вызова.
1. Введите ключ для отправки SMS. Номер получателя и текстовое сообщение, напечатанное на серийном мониторе. ПРИМЕЧАНИЕ. Вы можете отредактировать телефонный номер получателя и текстовое сообщение в исходном коде.
Перевод статьи "