Сегодня в уроке рассмотрим Модуль GSM GPRS SIM800L V2.0 MicroSIM с антенной. Посмотрим в чем его преимущества и недостатки. Разберемся, как управлять данным модулем с помощью AT команд и оправим CMC сообщение.
Для урока понадодиться:
Модуль GSM GPRS SIM800L V2.0 обладает минимальным функционалом — обмен данными с GSM-модулем по UART. Плата имеет слот для установки внешней SIM-карты.
SIM800L V2.0 GSM/GPRS - это четырех диапазонный GSM/GPRS модуль, совместимый с Arduino. Модуль используется для реализации функций GSM и GPRS. Преимуществом этого модуля является возможность напрямую подключать его к Arduino или другому микроконтроллеру с напряжением питания 5В.
Общие характеристики SIM800L V2.0 GSM/GPRS:
- Модель : SIMCOM SIM800L;
- Напряжение питания : от 3,7В до 5В;
- Поддержка сети: четыре диапазона–850/900/1800/1900 МГц, способные осуществлять звонки, SMS и передачу данных со значительно уменьшенным расходом заряда;
- Управление посредством AT-команд;
- TTL совместимый по уровню с Arduino;
- Низкая потребляемая мощность;
- Штекер подключения антенны;
- Наличие антенны;
- Размеры: 40мм х 28мм х 3мм;
- Диапазон рабочих температур: от -40°C до +85°C.
Распиновка GSM-модуля SIM800L:
- RxD (Receiver) — Вывод последовательной связи.
- TxD (Transmitter) — Вывод последовательной связи.
- GND — Вывод заземления, должен быть подключен к выводу GND на Arduino.
- VCC — Питание модуля, от 3,7 В до 5 вольт.
- DTR — этот пин отвечает за выход из спящего режима модуля.
- RST (Reset) — Вывод сброса модуля.
Схема подключения GSM GPRS SIM800L V2.0 MicroSIM к Arduino UNO.
Схема подключения SIM800L V2.0 к Arduino NANO.
Так как модуль GSM GPRS SIM800L V2.0 MicroSIM может общаться только по UART и не имеет звукового интерфейса. Схема подключения будет очень простая, всего по двум проводам + питание.
Тестирование AT-команд SIM800L.
Для отправки AT-команд и связи с модулем SIM800L будем использовать окно «Монитора порта». Копируем приведенный скетч ниже и загружаем его в Arduino.
#include <SoftwareSerial.h>
SoftwareSerial SIM800(8, 9); // 8 - RX Arduino (TX SIM800L), 9 - TX Arduino (RX SIM800L)
void setup() {
Serial.begin(9600); // Скорость обмена данными с компьютером
Serial.println("Start!");
SIM800.begin(9600); // Скорость обмена данными с модемом
SIM800.println("AT");
}
void loop() {
if (SIM800.available()) // Ожидаем прихода данных (ответа) от модема...
Serial.write(SIM800.read()); // ...и выводим их в Serial
if (Serial.available()) // Ожидаем команды по Serial...
SIM800.write(Serial.read()); // ...и отправляем полученную команду модему
}
Открываем окно «Монитора порта», устанавливаем скорость «9600» и «NL (Новая строка)».
В коде используем библиотеку SoftwareSerial.h, которую нужно подключить. Библиотеку можно скачать внизу статьи в разделе «Файлы для скачивания».
Для проверки работоспособности будем использовать команды:
- AT — это самая основная команда AT. Если все работает, в ответ получаем, символ AT, а затем ОК, сообщая, что все в порядке.
- AT+CSQ — проверка уровня сигнала в дБ, должно быть выше 5.
- AT+CCID — получение номера SIM-карты.
- AT+CREG? — проверка регистрации в сети.
В мониторе порта увидим следующую информацию.
Также можно проверить:
- ATI — получить название модуля и ревизию
- AT+COPS? — проверка регистрации в сети (Bee Line)
- AT+COPS=? — список операторов в сети.
- AT+CBC — команда показывает состояние батареи
Подробный список AT команд приведен в таблице ниже.
Описание
|
Команда
|
Структура ответа
|
Пример ответа
|
Готовность модуля к работе
|
AT
|
OK
|
OK
|
Запрос информации об устройстве
|
ATI
|
<info>
OK
<info> — модель и версия модуля
|
SIM800 R14.18
OK
|
Запрос версии установленного ПО
|
AT+CGMR
|
<revision>
OK
<revision> — модель и версия ПО
|
Revision:1418B04SIM800L24
OK
|
Готовность модуля совершать звонки
|
AT+CCALR?
|
+CCALR: <mode>
OK
<mode> — идентификатор готовности:
0 — модуль не готов совершать звонки 1 — модуль готов совершать звонки
|
+CCALR: 1
OK
|
Запрос качества связи
|
AT+CSQ
|
+CSQ: <rssi>,<ber>
OK
<rssi> — качество сигнала (от 10 и выше — нормальное):
0 -115 дБм и меньше 1 -111 дБм 2...30 -110... -54 дБм 31 -52 дБм и больше 99 определить невозможно
<ber> — RXQUAL (мера качества сигнала), значение из таблицы GSM 05.08 — ETSI:
0...7 — коэффициент битовых ошибок (меньше — лучше) 99 определить невозможно
|
+CSQ: 8,0
OK
|
Запрос IMEI-модуля
|
AT+GSN
|
<sn> OK
<sn> — IMEI модуля
|
864713035030892
OK
|
Запрос идентификационной информации модуля
|
AT+GSV
|
Текстовая информация о модуле
|
SIMCOM_Ltd
SIMCOM_SIM800L
Revision:1418B04SIM800L24
OK
|
Напряжение питания
|
AT+CBC
|
+CBC: <bcs>,<bcl>,<voltage> OK
<bcs> — статус зарядки
0 — зарядки нет 1 — зарядка идет 2 — зарядка завершена
<bcl> — объем оставшегося заряда в процентах (1...100)
<voltage> — напряжение питания модуля, в милливольтах
|
+CBC: 0,73,3988
OK
|
Тип регистрации в сети
|
AT+CREG?
|
+CREG: <n>,<stat> OK
<n> — параметр ответа
0 — незапрашиваемый код регистрации в сети отключен 1 — незапрашиваемый код регистрации в сети включен 2 — незапрашиваемый код регистрации в сети включен с информацией о местоположении
<stat> — статус
0 — незарегистрирован, не ищет нового оператора для регистрации 1 — зарегистрирован в домашней сети 2 — незарегистрирован, но в поиске нового оператора для регистрации 3 — регистрация запрещена 4 — неизвестно 5 — зарегистрирован, в роуминге
|
+CREG: 0,1
OK
|
Информация об операторе
|
AT+COPS?
|
+COPS: <mode>,[<format>,<oper>] OK
<mode> — режим регистрации
<format> — формат отображения
<oper> — наименование оператора в заданном формате
|
+COPS: 0,0,"MegaFon"
OK
|
Получение списка всех операторов
|
AT+COPN
|
+COPN: <numeric1>,<alpha1> [<CR><LF>+COPN: <numeric2>,<alpha2>
[…]] OK
<numeric n> — цифровой код оператора
<alpha n> — текстовый код оператора
|
...
+COPN: "24008","vodafone"
+COPN: "24010","Swefour AB"
+COPN: "24201","TELENOR"
+COPN: "24202","NetCom"
+COPN: "24403","FINNET"
+COPN: "24405","Elisa Corporation"
+COPN: "24409","FINNET"
...
OK
|
Статус телефона GSM-модуля
|
AT+CPAS
|
+CPAS: <pas> OK
<pas> — статус
0 — готов к выполнению команд из терминала 2 — неизвестно (исполнение команд не гарантируется) 3 — входящий вызов, но модуль готов к выполнению команд 4 — исходящий вызов, но модуль готов к выполнению команд
|
+CPAS: 4
OK
|
Отправка СМС с помощью модуля GSM GPRS SIM800L V2.0 и Arduino.
Для отправки СМС также будем использовать AT команды:
- AT + CMGF = 1 — выбирает формат SMS-сообщения в виде текста. Формат по умолчанию PDU.
- AT + CMGS = +7xxxxxxxxxx — отправляет SMS на указанный номер телефона.
Внимание! Прежде чем загрузить пример, необходимо ввести номер телефона. Найдите строку +7xxxxxxxxxx и замените его на необходимый номер телефона, на который будет оправлено сообщение.
Скетч отправки СМС сообщения с помощью Arduino и модуля SIM800L.
Скетч отправки СМС сообщений будет следующим.
#include <SoftwareSerial.h>
SoftwareSerial sim800l(8, 9); // 8 - RX Arduino (TX SIM800L), 9 - TX Arduino (RX SIM800L)
void SendSMS()
{
Serial.println("Sending SMS..."); // Печать текста
sim800l.print("AT+CMGF=1\r"); // Выбирает формат SMS
delay(100);
sim800l.print("AT+CMGS=\"+7xxxxxxxxxx\"\r"); // Отправка СМС на указанный номер +792100000000"
delay(300);
sim800l.print("A letter from the site: arduino-tex.ru"); // Тест сообщения
delay(300);
sim800l.print((char)26);// (требуется в соответствии с таблицей данных)
delay(300);
sim800l.println();
Serial.println("Text Sent.");
delay(500);
}
void setup()
{
sim800l.begin(9600); //Инициализация последовательной связи с Arduino и SIM800L
Serial.begin(9600); // Инициализация последовательной связи с Arduino и Arduino IDE (Serial Monitor)
delay(1000); // Пауза 1 с
SendSMS();
}
void loop()
{
delay(500); // Пауза 500 мс
if (sim800l.available()) { // Переадресация с последовательного порта SIM800L на последовательный порт Arduino IDE
Serial.write(sim800l.read());
}
}
В мониторе порта увидим подтверждение отправки сообщения, а также номер, на который было отправлено сообщение.
На телефоне, на который было отправлено сообщение, увидим следующую информацию. СМС сообщение, которое мы отправляли.
СМС может содержать показание с датчика температуры и влажности, данные с датчика движения или уровень воды, давление в баке отопления или другую информацию.
С помощью модуля GSM GPRS SIM800L V2.0 MicroSIM можно получать СМС,управляя устройствами. Отправлять данные про GPRS на сайт. Также считывать команды сайта и производить управление домашней электроникой. Более подробнее данные функции рассмотрим в следующих уроках.
Появились вопросы или предложения, не стесняйся, пиши в комментарии!
Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.
Всем Пока-Пока.
И до встречи в следующем уроке.
Понравилась статья? Поделитесь ею с друзьями:
Файлы для скачивания
|
Тестирование AT-команд SIM800L.ino | 1 Kb | 1104 |
Скачать
Вы можете скачать файл.
|
|
Скетч отправки СМС сообщения с помощью Arduino и модуля SIM800L.ino | 1 Kb | 1114 |
Скачать
Вы можете скачать файл.
|
|
Библиотека SoftwareSerial.h.zip | 11 Kb | 1115 |
Скачать
Вы можете скачать файл.
|
Комментарии
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.