Как отправлять/принимать sms и звонить с платой расширения sim900 gsm shield и arduino

Overview

Arduino SIM card offers easy, global cellular connectivity for your Arduino IoT Cloud projects. You can monitor your devices anytime, anywhere in the world thanks to the GSM / 3G network, which currently is the most extended one. Arduino SIM is ideal for connected devices on the go, or in areas without any other reliable IoT network.

GSM and Arduino IoT Cloud

At Arduino we have made connecting to a GSM network as easy as getting an LED to blink. Arduino SIM will let you connect and send data directly into the Arduino IoT Cloud. The preferred board of choice for the Arduino SIM is the MKR GSM 1400, here some references about the interaction between both products:

  • Arduino’s own IoT Cloud: Arduino’s IoT Cloud is a simple and fast way to ensure secure communication for all of your connected Things. Check it out here
  • Google Spreadsheets via Arduino IoT Cloud: collect data from an industrial sensor, send it over the Arduino IoT Cloud via cellular network and from there to a GSheet using webhooks, this example will show you how to do it

Dataplan Associated to the Arduino SIM

The Arduino SIM sends data only to the Arduino IoT Cloud. In this way, we provide you with a secure communication channel from device to dashboard. Once data reaches the Arduino IoT Cloud, it is possible to bridge it to other platforms and services via webhooks or the Arduino IoT API.

Upon the activation of the SIM card, you get 10MB free data for up to 90 days (5MB per month for $1.50 USD thereafter). This plan’s main features are:

  • Cellular connectivity directly to the Arduino IoT Cloud
  • Compatible ONLY with the Arduino IoT Cloud
  • Data can be bridged from the Arduino IoT Cloud to other platfomrs and services using webhooks or the Arduino IoT API
  • Global roaming profile — one simple data plan operates in over 100 countries. the coverage by country
  • Monthly Arduino SIM plan can be hired worldwide except Brazil
  • The initial free data will expire after 90 days or when you’ve used the 10MB free data, whichever happens first
  • You can pause and re-start your SIM here. Please note your SIM can be paused for a maximum of 6 months and there is an ongoing pause-fee of $0.30 USD per month plus applicable taxes. The SIM cannot be paused during your free 90 day trial period
  • Same amount of data traffic for the same price wherever you are operating the device around the world
  • Scalable cellular service by Arm Pelion Connectivity — suitable for large numbers of devices in the future

Other Arduino GSM Options

Besides the SIM card, there is the option of getting the Cellular Kit, that includes an Arduino SIM card bundled together with the Arduino MKR GSM 1400. It is also possible to purchase the MKR GSM 1400 without a SIM card and use whatever operator of your choice.

Need Help?

Check the Arduino Forum for questions about the Arduino Language, or how to make your own Projects with Arduino. Need any help with your product please get in touch with the official Arduino User Support as explained in our Contact Us page.

Код Arduino – прием вызова

Прием звонка не требует специального кода; вы просто должны продолжать слушать плату расширения SIM900. Тем не менее, вы можете найти этот скетч очень полезным, когда вам нужно инициировать действие при получении звонка с определенного номера телефона.

Входящий вызов обычно обозначается как «» в мониторе последовательного порта, за которым следуют номер телефона и идентификатор звонящего. Чтобы принять или сбросить вызов, используются следующие AT команды:

– принимает входящий звонок.

– сбрасывает звонок. При прекращении вызова в монитор последовательного порта отправляется сообщение NO CARRIER, указывающее, что вызов не может соединиться.

Ниже приведен вывод в мониторе последовательного порта, показывающий вызов, полученный платой расширения SIM900 GSM/GPRS Shield.

Рисунок 25 – Звонок на SIM900 GSM ShieldРисунок 26 – AT команды SIM900 GSM Shield для приема вызова на Arduino

Полезные ссылки

  • Код для ESP32 для отправки AT комманд на SIM800.
  • Hardware design manual SIM800 с сайта производителя (Eng).
  • Схема модуля SIM800C (комментарии на китайском).
  • Документация по AT коммандам SIM800 здесь.
  • https://simcom.ee/documents/SIM800x/SIM800_Series_download_Tools_Customer_v1.19.rar — программатор SIM800 модулей на сайте производителя.
  • Отправка через HTTP GET.
  • Отправка данных на ThingSpeak через HTTP GET.
  • Подробное описание SIM800L (Rus).
  • Подключение модуля SIM800C (Eng).
  • Подключение модуля SIM800C (Eng).
  • Подключение модуля SIM800C (Rus).
  • Подключение к Arduino SIM800 (Eng).
  • AT commands Neoway M590 (Eng).
  • Hardware design manual Neoway M590 (Eng).
  • Распайка модуля Neoway M590
  • Видео по пайке модуля Neoway M590.
  • Видео по сборке, подключению и тестированию Neoway M590.
  • Видео по подключению Neoway M590 к ПК.
  • Обстоятельное описание Neoway M590 (Rus).
  • Подключение Neoway M590 к Интернет
  • https://www.instructables.com/id/GSMGPRS-Module-DIY-Kit/
  • Распайка модуля Neoway M590 mini
  • Видео по распайке модуля Neoway M590 mini
  • Распайка и подключение Neoway M590 mini.

Схема SIM800C (комментарии на китайском)Скачать

SIM800C board description V2.0 (на китайском)Скачать

Отправка SMS через SIM800

Для теста работы пытаемся отправить SMS. Для начала отправляем команду: AT+CMGF=1. Если возник ERROR — скорее всего не прошла регистрация SIM-ки в сети.

AT команда Ответ Примечания
AT+CMGF=1 OK Переводим в текстовый режим отправки сообщений.
AT+CSCS=»GSM» OK Устаналиваем charset:«GSM» GSM 7 bit default alphabet (3GPP TS 23.038); «UCS2» 16-bit universal multiple-octet coded character set (ISO/IEC10646); UCS2 character strings are converted to hexadecimal numbers from 0000 to FFFF; e.g. «004100620063» equals three 16-bit characters with decimal values 65, 98 and 99 «IRA» International reference alphabet (ITU-T T.50) «HEX» Character strings consist only of hexadecimal bers from 00 to FF; «PCCP» PC character set Code «PCDN» PC Danish/Norwegian character set «8859-1» ISO 8859 Latin 1 character set
AT+CSCS? +CSCS: «GSM» Проверяем, что нужная кодовая таблица установилась корректно.
AT+CMGS=»+796019xxxxx» > Номер телефона вводить обязательно с +, иначе будет сообщение об ошибке: +CMS ERROR: invalid input value.После запуска команды появится запрос на ввод текста сообщения, которое должно быть завершено отправкой CTRL-z (0x1A или (char)26). К сожалению, Arduino Serial Monitor не позволяет отправить этот код, так что только программно.

Программное обеспечение для разработки EAT-приложений

Определившись с аппаратной частью, можно приступать к установке и настройке ПО для разработки EAT-приложений, которое можно запросить у локального дистрибьютора или у службы технической поддержки SIMCom Wireless Solutions .

При подготовке данной статьи применялся следующий набор программных продуктов:

  • RealView Development Suite v3. 1 сосредойразработкиEclipse ;
  • SIM800H_EAT_140516_ECLIPSE, пример проекта под среду Eclipse ;
  • 01, программа для записи ПО в память программ модуля ;
  • 1032, USB-драйвервиртуальногоCOM-порта.

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

Рис. 8. Импорт примера проекта

После нажатия кнопки Finish (рис. 8д) нужно очистить проект (рис. 9).

Рис. 9. Очистка проекта

После всего проделанного вы увидите окно проекта (рис. 10). Теперь код примера проекта можно модифицировать и компилировать при помощи интерфейса среды разработки.

Рис. 10. Окно среды разработки Eclipse с загруженным примером проекта

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

Левее от текстового редактора расположен навигатор по проекту, в котором «под рукой» у программиста структура всех файлов, причастных к проекту, включая исходные файлы, бинарный файл ядра, документация, результаты компиляции и проч. Здесь же можно найти руководство программиста с подробным описанием архитектуры EAT и доступных API-функций модуля.

Подробнее о работе Eclipse можно ознакомиться на сайте www.eclipse.org/platform, а мы покажем, как создать свое ПО и записать его в модуль.

Для компиляции кода нужно пройти по меню Project->Build All, при этом в нижнем консольном окне не должно быть ошибок компиляции, иначе компилятор не создаст результат проекта — бинарный файл EAT, который можно записать в модуль.

Голосовой модуль (Voice Module) ISD 1820

Голосовой модуль ISD 1820 может добавить в ваши проекты голосовые объявления. Модуль способен записывать аудио сигнал в течение 10 секунд и затем воспроизводить его когда потребуется. Модуль включает в себя и микрофон, и динамик (8ohms 0.5watts) и выглядит примерно так, как показано на следующем рисунке.

Модуль работает от напряжения +5V и может быть запитан с помощью контактов на его левой стороне. Также на нижней стороне модуля есть 3 кнопки с названиями Rec, PlayE и PlayL. Вы можете записать ваш голос нажимая кнопку Rec и затем воспроизвести его используя кнопку PlayE. При нажатии кнопки PlayL голос будет воспроизводиться так долго, как долго вы держите кнопку. Подать питание на модуль можно непосредственно с платы Arduino. В нашем проекте мы будем управлять контактом PLAYE используя контакт D8 платы Arduino. Таким образом, мы сможем воспроизводить записанный голос всегда, когда мы будем обнаруживать входящий звонок на GSM модуль.

Код Arduino – выполнение звонка

Теперь давайте запрограммируем нашу Arduino на выполнение вызова. Этот скетч очень полезен, если вы хотите, чтобы ваша Arduino совершила аварийный вызов (SOS) в случае чрезвычайной ситуации, например, при превышении температуры или при проникновении кого-либо в ваш дом. Вы поняли идею!

Прежде чем попробовать скетч, вам нужно ввести номер телефона. Найдите строку ZZxxxxxxxxxx и замените ZZ кодом страны, а xxxxxxxxxx – 10-значным номером телефона.

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

— набрать указанный номер. Модификатор точка с запятой в конце разделяет строку набора на несколько команд набора. Все, кроме последней команды, должны заканчиваться модификатором точка с запятой .

– повесить трубку

На скриншоте ниже показан звонок с платы расширения SIM900 GSM/GPRS Shield.

Рисунок 23 – AT команды SIM900 GSM Shield для звонка на ArduinoРисунок 24 – Прием звонка от SIM900 GSM Shield

Запись бинарного файла EAT в память программ модуля

Для загрузки бинарного файла EAT в модуль потребуется программа SIMCom_SIM800H_EAT_flash_Tool (рис. 11).

Рис. 11. Окно программы SIMCom_SIM800H_EAT_flash_Tool для загрузки бинарного файла EAT в GSM-модуль

Модуль SIM800H позволяет загружать ПО через интерфейс USB или UART. В качестве интерфейса для загрузки пользовательского ПО выберем USB. Для этого настроим соответствующим образом программу SIMCom_SIM800H_EAT_flash_Tool.exe, пройдя по меню Options->USB Download/Readback. Также потребуется стереть содержимое FAT-модуля, а для этого пройдем по меню Options->Format FAT (Auto)->Format FAT->OK.

Укажем путь к пользовательскому ПО, к файлу SIM800H32_EAT.cfg, нажав кнопку Scatter/Config File. Он должен быть расположен в директории, где расположен проект (указывался при создании проекта), а в данном примере путь такой: C:\Documents and Settings\Administrator\workspace\SIM800H_EAT_140516_ECLIPSE\core\SIM800H32_EMBEDDEDAT\. Окно программы при этом должно выглядеть так, как на рис. 12.

Рис. 12. Окно программы SIMCom_SIM800H_EAT_flash_Tool после настройки

Далее:

  • Готовим отладочное средство (см. рис. 6), подав питание 5 В от сетевого адаптера, предварительно установив переключатели POWER в состояние «ON», DOWNLOAD — в состояние «OFF».
  • Подключаем SIM800H к ПК через кабель USB, при этом потребуется установка USB-драйвера виртуального COM-порта MS_USB_ComPort_Driver_exe_v1.1032.
  • Устанавливаем переключатель POWER в состояние «OFF», а DOWNLOAD — «ON».
  • Нажимаем в окне программы кнопку Download.
  • Переводим переключатель POWER обратно в состояние «ON», при этом начнется процесс загрузки ПО, по окончании которого появится окно (рис. 13).

Рис. 13. Окно программы SIMCom_SIM800H_EAT_flash_Tool после успешной загрузки пользовательского ПО в модуль

Теперь ресурсы модуля SIM800H находятся в полном распоряжении пользовательского кода. После того как пользовательский код будет полностью отлажен и протестирован «в полях», у разработчика возникнет вопрос, как организовать массовое производство устройств с модулем SIM800H. Первой мыслью будет производить загрузку ПО в модуль на производстве после монтажа модулей на плату, но есть и другой вариант. Компания SIMComWireless Solutions предоставляет возможность по предварительной договоренности производить и поставлять через локальных дистрибьюторов модули с загруженным на заводе пользовательским ПО. Такая модель работы возможна при условии подписания соответствующего соглашения о неразглашении, которое в большей степени защищает разработчика ПО от несанкционированного распространения интеллектуальной собственности, что для SIMCom Wireless Solutions является важным аспектом в работе с клиентами по всему миру.

В данной статье было подробно рассказано о технологии Embedded AT, которая открывает для разработчика новые возможности для миниатюризации и удешевления текущих разработок с применением GSM-модулей сотовой связи. В статье не только объясняются теоретические идеи технологии Embedded AT, но и детально на практических примерах показан порядок работы с сопутствующим программным обеспечением для создания пользовательского ПО и его загрузки в GSM-модуль SIM800H. Следуя указаниям, приведенным в данной статье, разработчик сможет максимально быстро начать работу и оценить удобство и функциональность такого решения, как Embedded AT.

Bluetooth

Спецификации Bluetooth входят в протокол передачи данных стандарта IEEE 802.15.1, первые версии которого были созданы в 2002 г., и находят применение во множестве уже привычных нам изделий, от беспроводных гарнитур и клавиатур до телеметрии сложных многофункциональных устройств, состоящих из множества автономных узлов и блоков, состояние каждого из которых необходимо оперативно контролировать. В частном случае это могут быть мобильные телефоны, планшеты, компьютеры, ноутбуки и даже кондиционеры и холодильники. Для этой технологии характерна высокая совместимость при организации беспроводных соединений между сопрягаемыми устройствами. При этом модульные решения в значительной степени экономят время и средства, затрачиваемые на разработку законченного изделия.

Протокол Bluetooth в модулях серии SIM800x реализован до уровня приложений. Для работы с ними пользователю предоставляется простой и гибкий интерфейс в виде АТ-команд. Разработчик может управлять реализованными Bluetooth-приложениями, не вникая глубоко в их технологические нюансы и принцип работы. При этом работа над реализацией аппаратной части сводится к простой «двухходовке»: подключи антенну и подай питание, и модуль (требуемый функционал) будет готов к работе.

Подключение платы расширения SIM900 GSM/GPRS Shield к Arduino UNO

Теперь, когда мы знаем всё о плате расширения, мы можем подключить её к нашей плате Arduino!

Для начала подключите контакты D7 (Tx) и D8 (Rx) на плате расширения к цифровым выводам 7 и 8 на Arduino. Поскольку для связи с платой расширения мы будем использовать программный последовательный порт, убедитесь, что перемычки установлены на выбор программного последовательного порта.

Рисунок 11 – Подключение платы расширения SIM900 GSM/GPRS Shield к Arduino UNO

Подключите плату расширения к внешнему источнику питания 5В 2A. Не поддавайтесь искушению подключить ее к источнику питания 5В на Arduino, так как плата расширения может не работать из-за недостатка тока источника питания. Также убедитесь, что вы выбрали внешний источник питания с помощью ползункового переключателя рядом с разъемом питания.

Теперь подключите все земли в схеме.

Наконец, подключите антенну, вставьте полностью активированную SIM карту в держатель.

АТ-команды

Для работы с Bluetooth в модулях SIM800x используются специализированные для этого функционала АТ-команды. Для всей этой серии они являются унифицированными. Ниже приведены основные из них:

  • AT+BTPOWER — включение/выключение Bluetooth;
  • AT+BTPAIRCFG — конфигурирование настроек подключения;
  • AT+BTSCAN — сканирование доступных для соединения устройств;
  • AT+BTVIS — включение/выключение обнаружения модуля серии SIM800x;
  • AT+BTPAIR — управление сопряжением устройств, оснащенных Bluetooth;
  • AT+BTGETPROF — просмотр доступных профилей подключенного устройства;
  • AT+BTACPT — подтверждение запроса на подключение;
  • AT+BTCONNECT — установление соединения с устройством;
  • AT+BTSPPCFG — конфигурирование профиля SPP.

Скетчи для работы с модулем 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 <GSM.h>

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

#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-соединения  на модуле начнет мигать светодиод.

Основные функции мобильного телефона на основе платы Arduino

1. Осуществление вызова.

Для осуществления вызова на нашем устройстве мы должны нажать клавишу ‘C’ и затем набрать с помощью клавишной панели номер интересующего нас мобильного абонента. После набора номера необходимо снова нажать ‘C’. После этого плата Arduino начнет процесс соединения с набранным номером при помощи использования AT команд.

2. Прием вызова.

Когда кто то будет звонить на номер SIM-карты, которая вставлена в ваш GSM модуль, устройство будет высвечивать на экране ЖК дисплея сообщение ‘Incoming…’ и после него номер вызывающего абонента. Чтобы принять вызов необходимо нажать ‘A’. При нажатии этой кнопки Arduino передает соответствующую команду на GSM модуль:

3. Передача SMS.

Для передачи SMS с помощью нашего устройства мы должны нажать на клавишной панели клавишу ‘B’. После этого система запросит номер (сообщение ‘to whom’), на который необходимо передать SMS. После набора номера необходимо нажать ‘D’ и после этого ЖК экран запросит текст SMS. После этого необходимо с помощью клавишной панели ввести текст SMS так, как вы это делаете на обычном мобильном телефоне и снова нажать ‘D’ для передачи SMS. Для передачи SMS плата Arduino передает на GSM модуль следующую команду.

И передать 26 на GSM модуль для передачи SMS.

Расширение размера буфера SoftwareSerial на Arduino

Если ваше сообщение достаточно длинное, как и наше, вы, вероятно, получите его с пропущенными символами. Это не из-за неисправного кода. Ваш буфер приема заполняется и отбрасывает символы. А вы не читаете из буфера достаточно быстро.

Самое простое решение – увеличить размер буфера со стандартного размера с 64 до 256 байт (или меньше, в зависимости от того, что у вас заработает).

На компьютере с Windows перейдите в C:\Program Files (x86) → Arduino → hardware → Arduino → avr → libraries → SoftwareSerial (→ src для более новой версии Arduino IDE). Откройте SoftwareSerial.h и измените строку:

на

Сохраните файл и попробуйте скомпилировать скетч еще раз.

Рисунок 22 – Расширение размера буфера на Arduino

Использование GPRS в GSM модуле

В этом проекте мы использовали обычный GSM модуль с SIM картой для GPRS соединения. Технология GPRS в нашем проекте ответственна за передачу данных на сервер Sparkfun. Ранее на нашем сайте мы уже рассматривали передачу данных на веб-сервер с помощью Arduino и Wi-Fi модуля ESP8266, здесь же мы вместо технологии Wi-Fi применим технологию GPRS. Более подробно все описанные в статье процессы можно посмотреть на видео, приведенном в конце статьи.

GPRS расшифровывается как General Packet Radio Services и переводится как пакетная радиосвязь общего назначения. Данная технология способна обеспечивать выход в сеть интернет и работать со скоростями передачи данных 56-114 кбит/с.

При этом нет необходимости покупать какой то отдельный модуль для работы с GPRS поскольку она реализована в обычном GSM модуле. Для управления GSM модулем мы будем использовать так называемые AT команды. Далее рассмотрены некоторые из этих команд доступные для модуля SIMCOM SIM900A (на самом деле их достаточно много, информацию по ним легко найти в сети интернет), которые нам понадобятся в данном проекте.

Для передачи данных на веб-сервер с помощью технологии GPRS нам, прежде всего, необходимо инициализировать GSM модуль.

Команды для инициализации GSM модуля

AT : эта команда используется для проверки того отвечает ли GSM модуль или нет
AT+CPIN? : эта команда используется для проверки того вставлена ли SIM карта в GSM модуль или нет
ATE0 : эта команда отключает эхо, то есть чтобы модуль не повторял в ответ команды, которые мы ему передаем
ATE1 : эта команда используется для включения эхо

1
2
3
4

ATэтакомандаиспользуетсядляпроверкитогоотвечаетлиGSMмодульилинет

AT+CPIN?этакомандаиспользуетсядляпроверкитоговставленалиSIMкартавGSMмодульилинет

ATE0этакомандаотключаетэхо,тоестьчтобымодульнеповторялвответкоманды,которыемыемупередаем

ATE1этакомандаиспользуетсядлявключенияэхо

Команды для инициализации GPRS интернет соединения

AT+CIPSHUT : закрыть TCP порт, что означает прекращение всех соединений

AT+CGATT? : проверка имеет ли SIM карта интернет соединение или нет

AT+CSTT = «APN»,»userName»,»Pass» : соединение с интернет

(ex; AT+CSTT=»airtelgprs.com»,»»,»»)

AT+CIICR : соединение с беспроводной сетью. Проверяемая SIM карта должна иметь предоплаченный объем данных или положительный баланс

AT+CIFSR : получить IP (иногда без этой команды GSM не будет работать поэтому желательно ее использовать)

AT+CIPSTART = ”TCP”,”SERVER IP”,”PORT” : эта команда используется для создания TCP соединения с сервером который мы прописываем в поле SERVER IP

AT+CIPSEND : эта команда используется для передачи данных на сервер. After input, this command server asks for data.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

AT+CIPSHUTзакрытьTCPпорт,чтоозначаетпрекращениевсехсоединений
 

AT+CGATT?проверкаимеетлиSIMкартаинтернетсоединениеилинет
 

AT+CSTT=»APN»,»userName»,»Pass»соединениесинтернет
 

(ex;AT+CSTT=»airtelgprs.com»,»»,»»)

AT+CIICRсоединениесбеспроводнойсетью.ПроверяемаяSIMкартадолжнаиметьпредоплаченныйобъемданныхилиположительныйбаланс
 

AT+CIFSRполучитьIP(иногдабезэтойкомандыGSMнебудетработатьпоэтомужелательноееиспользовать)

AT+CIPSTART=”TCP”,”SERVER IP”,”PORT”этакомандаиспользуетсядлясозданияTCPсоединенияссерверомкоторыймыпрописываемвполеSERVER IP

AT+CIPSENDэтакомандаиспользуетсядляпередачиданныхнасервер.After input,thiscommand server asks fordata.

После ввода данных мы передаем 26 на сервер. Если все нормально, то данные будут успешно загружены на сервер и SparkFun (сервер в нашем рассматриваемом случае) отвечает что все нормально или произошла ошибка.

Инициализация

Первым делом необходимо провести инициализацию и первичную настройку модуля SIM800L. Для этого в теле setup() вызываем подпрограмму init_GSM(), которая перезагружает модуль и последовательно отправляет команды:

AT
ATE0
AT+GSMBUSY=0
AT+CPAS
AT+CREG?
AT+CSQ
AT+CBC
AT+CUSD=1,»*111#»

Разберем назначение каждой команды:

  • AT – проверяем готовность модуля в приему команд.
  • ATE0 – отключаем режим ЭХО.
  • AT+GSMBUSY=0 – запрещаем входящие звонки.
  • AT+CPAS – проверяем готовностью и текущее состояние модуля.
  • AT+CREG? – проверка регистрации в сети.
  • AT+CSQ – проверка уровня сигнала.
  • AT+CBC – проверяем питание.
  • AT+CUSD=1,»*111#» – проверяем баланс SIM-карты.

Каждую команду необходимо проверять на наличие положительного ответа «ОК», в противном случае нужно заново отправить команду и дождаться нужного ответа. Как правило, при первом включении команда AT+CPAS с первого раза не дает ответ «ОК», обычно готовность появляется после 2-3 попыток.

На Рисунке 5 показан процесс выполнения подпрограммы init_GSM.

Рисунок 5. Процесс выполнения подпрограммы init_GSM.

На Листинге 1 показан пример обработки команды AT+CPAS.

Листинг 1. Программа обработки команды AT+CPAS.

Во время ответа от модуля в cycle_for() происходит сравнение и установка значения в bit_ok. Если значение равняется 1, то модуль вернул «ОК», при ответе 2 – модуль возвращает «Error». Если положительно ответа нет, то через 1 секунду повторяем отправку i раз.