Модули gps в arduino: подключение neo 6 и обзор программ u-center

Features

  • Quad-Band 850 / 900/ 1800 / 1900 MHz — would work on GSM networks in all countries across the world.
  • GPRS multi-slot class 10/8
  • GPRS mobile station class B
  • Compliant to GSM phase 2/2+
  • Class 4 (2 W @ 850 / 900 MHz)
  • Class 1 (1 W @ 1800 / 1900MHz)
  • Control via AT commands — Standard Commands: GSM 07.07 & 07.05 | Enhanced Commands: SIMCOM AT Commands.
  • Short Message Service — so that you can send small amounts of data over the network (ASCII or raw hexadecimal).
  • Embedded TCP/UDP stack — allows you to upload data to a web server.
  • RTC supported.
  • Selectable serial port.
  • Speaker and Headphone jacks
  • Low power consumption — 1.5mA(sleep mode)
  • Industrial Temperature Range — -40°C to +85 °C

Specifications

Как собрать?

  1. Возьмите платформу Iskra Neo и нижнюю панель кубa (7×7), соедините её с помощью винтов и гаек, так чтобы гайки располагались между панелью и платформой.
  2. Вставьте сим-карту в GPRS Shield и установите его сверху на платформу Iskra Neo.
  3. Боковые панели куба (7×7) соедините с нижней панелью (7×7). Установите Troyka Shield сверху на GPRS Shield.
  4. Возьмите панель куба (7×5) и, спользуя винты или саморезы, закрепите на ней датчик газа MQ2 и датчик температуры и влажности DHT11.
  5. Используя 3-проводные шлейфы, подключите через Troyka Shield датчик газа MQ2 к аналоговому пину , а цифровой датчик DHT11 к цифровому пину . Далее панель куба (7×5) с установленными датчиками закрепите между боковыми панелями куба, так чтобы датчики были направлены внутрь.
  6. Возьмите переднюю панель куба (6×7) и соедините её с нижней панелью и панелью с датчиками, заранее откусив бокорезами секции, мешающие выводу антенны. Прикрутите антенну в SMA-разъём.
  7. Возьмите датчик освещённости, прикрутите его к панели для крепления Troyka-модулей, и с помощью четырёх панелей конструктора (3×2) соорудите «башенку».
  8. В продолжение установите «башенку» с датчиком на верхнюю панель куба (7×7), и установите получившуюся конструкцию на левую, правую и заднюю панели. Подключите датчик освещённости через стандартный 3-проводные шлейф через Troyka Shield к аналоговому пину .
  9. Заднюю панель куба (7×3) закрепите между левой и правой панелями внизу, напротив разъёмов USB и внешнего питания платформы Iskra Neo, заранее отделив бокорезами секции, мешающие ей устойчиво зафиксироваться.
  10. Подключите датчик влажности почвы через 3-проводной шлейф через Troyka Shield к аналоговому пину . В результате должна получиться такая схема:
  11. Возьмите заднюю панель куба (7×2) и установите её между левой и правой панелями в верхней части. В заключение возьмите панель крестиков (1×6) и установите между задними панелями (7×3) и (7×2).

Работа с AT-командами

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

Введение

С внешним миром модуль общается посредством AT-команд. Все команды делятся на базовые, так называемые S-команды, и расширенные, добавленные в стандартах GSM07.05–07.07. Практически все команды работают в 3 режимах — тестовом, чтения и записи.

  • В тестовом режиме возвращается , если команда поддерживается или возможные значения данных в параметре команды. Тестовый режим определяется окончанием команды в виде

  • В режиме чтения возвращаются текущие значения параметра, отличается от тестового наличием в конце просто символа

  • В режиме записи после идут новые значения параметров.

Настройки порта

По умолчанию модуль настроен на 9600 8N1:

  • 9600 – скорость;
  • 8 – бит в посылки;
  • N – нет контроля чётности;
  • 1 – стоп бит.

Для проверки поддерживаются AT-команды:

Команда Ответ Описание
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-команду, замените знак на и введите нужные вам параметры из таблицы.
Все настройки этих команд сохраняются в энергонезависимой памяти.

Информация о модуле и состояние

Команда Ответ Описание
AT+GCAP +GCAP: +CGSM
OK
Возможности модуля
AT+GMM SIMCOM_SIM800C
OK
Идентификатор модуля
AT+GMR Revision:1418B08SIM800C32_BT_EAT
OK
Ревизия
AT+GSN 8683450321ХХХХХ
OK
IMEI

В документе с перечнем AT-команд можно найти документацию на все поддерживаемые команды.

Пример скетча для работы с использованием AT-команд

GPRSATСommands.ino
// библиотека для работы с GPRS устройством
#include <GPRS_Shield_Arduino.h>
 
// создаём объект класса GPRS и передаём в него объект Serial1 
GPRS gprs(Serial1);
// можно указать дополнительные параметры — пины PK и ST
// по умолчанию: PK = 2, ST = 3
// GPRS gprs(Serial1, 2, 3);
 
void setup()
{ 
  // открываем последовательный порт для мониторинга действий в программе
  Serial.begin(9600);
  // ждём, пока не откроется монитор последовательного порта
  // для того, чтобы отследить все события в программе
  while (!Serial) {
  }
  Serial.print("Serial init OK\r\n");
  // открываем Serial-соединение с GPRS Shield
  Serial1.begin(9600);
  // включаем GPRS шилд
  gprs.powerOn();
  // проверяем есть ли связь с GPRS устройством
  while (!gprs.init()) {
    // если связи нет, ждём 1 секунду
    // и выводим сообщение об ошибке
    // процесс повторяется в цикле
    // пока не появится ответ от GPRS устройства
    Serial.print("GPRS Init error\r\n");
    delay(3000);
  }
  // выводим сообщение об удачной инициализации GPRS Shield
  Serial.println("GPRS init success");
}
 
void loop()
{
  // считываем данные с компьютера и записываем их в GPRS Shield
  serialPCread();
  // считываем данные с GPRS Shield и выводим их в Serial-порт
  serialGPRSread();
}
 
void serialPCread()
{
  if (Serial.available() > ) {
    // если приходят данные по USB
    while (Serial.available() > ) {
      // записываем их в GPRS Shield
      Serial1.write(Serial.read());
    }
  }
}
 
void serialGPRSread()
{
    if (Serial1.available() > ) {
      // если приходят данные с GPRS Shield
      while (Serial1.available() > ) {
        // передаём их в USB
        Serial.write(Serial1.read());
    }
  }
}

Прием и чтение SMS.

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

Когда Arduino получает индикацию ‘SMS received’ оно извлекает (находит) место хранения SMS и передает команду на GSM модуль прочесть принятое SMS. После этого на экране ЖК дисплея высвечивается сообщение ‘New Message Symbol’.

После этих команд GSM модуль передает хранившееся сообщение в Arduino, после чего Arduino извлекает главное SMS и отображает его на ЖК дисплее. После прочтения SMS на экран ЖК дисплея выдается сообщение ‘New SMS symbol’.

Более подробно все описанные процессы вы можете посмотреть в видео в конце статьи.

Классы и функции

Для коммуникации с модемом.

  • Класс GSM
    • begin()
    • shutdown()

Для голосовой коммуникации через модем. Чтобы в полной мере пользоваться этим функционалом, требуются микрофон и динамик.

  • Класс GSMVoiceCall
    • getVoiceCallStatus()
    • ready()
    • voiceCall()
    • answerCall()
    • hangCall()
    • retrieveCallingNumber()

Для отправки и получения SMS-сообщений (от «Short Message Service», что значит «служба коротких сообщений»).

  • Класс GSM_SMS
    • beginSMS()
    • ready()
    • endSMS()
    • available()
    • remoteNumber()
    • read()
    • write()
    • print()
    • peek()
    • flush()

Отвечает за подключение файлов из библиотеки для обработки TCP-коммуникации.

  • Класс GPRS

    attachGPRS()

Для создания клиента, способного подключаться к серверам, а также отправлять/получать данные.

  • Класс GSMClient
    • ready()
    • connect()
    • beginWrite()
    • write()
    • endWrite()
    • connected()
    • read()
    • available()
    • peek()
    • flush()
    • stop()

Для создания сервера, способного отправлять/получать данные от подключенных к нему клиентов (то есть программ, запущенных на других компьютерах и устройствах).

  • Класс GSMServer
    • ready()
    • beginWrite()
    • write()
    • endWrite()
    • read()
    • available()
    • stop()

Для диагностической коммуникации с модемом.

  • Класс GSMModem
    • begin()
    • getIMEI()

Для получения диагностической информации о сети и мобильном операторе.

  • Класс GSMScanner
    • begin()
    • getCurrentCarrier()
    • getSignalStrength()
    • readNetworks()

Для коммуникации с SIM-картой.

  • Класс GSMPIN
    • begin()
    • isPIN()
    • checkPIN()
    • checkPUK()
    • changePIN()
    • switchPIN()
    • checkReg()
    • getPINUsed()
    • setPINUsed()

Для получения информации о диапазоне частот, к которому подключен модем. Также имеет функции для настройки диапазона частот.

  • Класс GSMBand
    • begin()
    • getBand()
    • setBand()

Элементы платы

Разъём микрофона и наушников

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

Слот для SIM-карты

Слот для подключения стандартной сим-карты — Mini-SIM (2FF). Если у вас сим-карта другого размера, Micro Sim или Nano Sim, воспользуйтесь специальными переходниками.

Контакты выбора управляющих пинов

Контакты GPRS Shield Контакты Arduino Использование
TX и RX 0 и 1 Используются для выбора управляющих пинов c микроконтроллером.
PK 2 Используется для включения модуля. Для этого на него необходимо подать высокий уровень на 3 секунды, а затем подать низкий уровень на эту же ножку.
ST 3 Информационный пин о состоянии включения GPRS Shield. Если высокий уровень — шилд включён, если низкий — выключен.

Если в вашем проекте какие-нибудь из этих пинов уже заняты другим устройством, вы можете использовать любой другой свободный цифровой пин. Для этого необходимо снять джампер напротив занятого пина и припаять проводок между луженым отверстием рядом со снятым джампером и таким же отверстием рядом с нужным пином.

Гнездо для батарейки

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

Индикатор состояния сети

У модуля есть два информационных светодиода — , который загорается после включения модуля и , который мигает в зависимости от состояния сети.

Возможные режимы (Горит/Не горит):

  • 64мс/800мс — сеть не найдена;
  • 64мс/3000мс — сеть найдена;
  • 64мс/300мс — идет обмен по GPRS.

Что собой представляет модуль Arduino?

Arduino реализуются в виде небольших плат, которые имеют собственный микропроцессор и память. На плате также располагается набор функциональных контактов, к которым можно подключать различные электрифицированные устройства, включая и датчики, используемые для охранных систем.

Процессор Arduino позволяет загружать в себя программу, написанную пользователем самостоятельно. Создавая собственный уникальный алгоритм, можно обеспечивать оптимальные режимы работы охранных сигнализаций для разных объектов и для разных условий использования и решаемых задач.

Arduino GSM модуль

Принципиальная схема и макетная плата

В проекте используется достаточно простая к повторению принципиальная схема:

Выполнить ее можно как на основе макетной платы, так и вытравив при помощи ЛУТ свой вариант. Или же заказать аналогичную на специализированных сайтах или магазинах.

Теперь, что касается элементов россыпью, их характеристики:

Тип Обозначение на плате Характеристики Аналоги
Резистор R6, R8 1M
R2-5, 9-14 4,7k
Биполярный конденсатор C1, 3, 5, 6 0,1 uF
Полярный конденсатор С2 1000 uF 6.3V
С4 33 uF 6.3V
Диод шотки D1-4 MBR0520LT MBR0520-TP, SBR80520LT1G, MBR0530T1G
Диод D5 1N4148W КД522Б, PML4148L, DL4148, LL4148-GS08
Транзистор Q1 IRLML6401 p-типа 12 В FDN302P, Si2305DS, Si2315DS
Фоторезистор R1 300
BZ1 Зумер
SW1 Геркон

Схема открытая, ее kiCAD вариант доступен на Github по адресу https://github.com/AlexIII/gsmGuard/tree/master/kicad-project

Там же, для желающих самостоятельно изготовить плату, ее разводка.

Окно KiCAD с платой:

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

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

Raspberry Pi

LCD Series

  • Rpi
    HD 3.5 inch TFT*
  • USB
    16×2 RGB LCD
  • Raspberry
    pi 0.91 inch OLED Module SKU:385011
  • 2.2
    inch TFT Display SKU:398437
  • 16×2
    LCD with Keypad and Backlit SKU:297384
  • MZTX06A
    2.2 inch IPS TFT LCD Module SKU:318482
  • Robopeak
    2.8 inch USB TFT Module SKU:284995
  • 3.2
    Inch TFT Lcd Touch Screen SKU:340835
  • 3.5
    inch TFT LCD Touch Screen SKU:363295(HOT)
  • 5
    inch HDMI TFT LCD Touch Screen SKU:384212(HOT)
  • 7
    inch Digital LCD Screen SKU:275810
  • 7
    inch Digital Touch Screen SKU:318884
  • 7
    inch HDMI TFT Capacitive Touch Screen 800×480 SKU:400579
  • 7
    inch HDMI TFT Capacitive Touch Screen 1024×600 SKU:408999
  • Raspberry
    Pi Official 7 Touch Screen SKU:414167(HOT)
  • 10.1
    inch Digital IPS Screen SKU:275804
  • 7
    inch HDMI IPS Capacitive Touch Screen 1024×600
  • RPI
    10.1 inch Capacitive IPS HDMI LCD 1280*800

HIFI Series

  • RPI
    HIFI DiGi+ Digital Audio Card SKU:366963
  • RPI
    HIFI DAC+ Digital Audio Card SKU:363003
  • RPI
    HIFI Digi Digital Audio Card(for Model B) SKU:347529
  • AD/DA
    Shield Module SKU:359719
  • 4
    in 1 Temperature Pressure Altitude Light Sensor SKU:359549
  • 16-Channel
    Servo Control Board SKU:340853
  • Cascading
    and Overlapping Base Board SKU:357254
  • MPR121
    Capacitive Touch Sensor Module SKU:374406
  • VGA
    Shield SKU:369600

X Serial expansion
board

Other

  • Dual
    MicrofCard Adapter
  • USB
    to TTL
  • RPI
    Screws Prototype Add-on V2.0
  • RPI
    Arduino OLED Add-on V2.0 SKU:414671
  • Mini
    USB Camera SKU:408731
  • Raspberry
    Pi Add-On GPS HAT Module SKU:424254
  • Raspberry
    Pi DIDO Board SKU:424282
  • 170
    Degree Fisheye Lens HD Camera
  • 160
    degree Fisheye Lens Raspberry pi Camera SKU:423129
  • Wireless
    2.4GHz USB Mini Keyboard SKU:288368
  • Mini
    Wireless 2.4GHz Keyboard SKU:269008
  • Mini
    Bluetooth V3.0 76-key Keyboard SKU:204344
  • Explore
    — NFC, Near Field Communications SKU:317433
  • GertBoard
    GertDuino — RPI, Arduino-Like ATMEGA I/O Board SKU:317444
  • Pi
    Lite Pi Matrix SKU:323187
  • Pi
    Lite Pi Matrix SKU:323733
  • Unlimited
    Cascading IO Expansion Board SKU:324760
  • Raspberry
    Pi Model B+ SKU:334720
  • Full
    Function Expansion Board Development Kits SKU:338435
  • EnOcean
    Pi 868MHz Radio Transceiver Gateway Module SKU:351832
  • 8
    x 8 x 2 LED Matrix Module SKU:354749
  • 1-Port
    USB Network Card 3-Port USB Hub SKU:369296
  • Raspberry
    Pi 2 Model B SKU:378251
  • PiFace
    Digital 2 SKU:382231
  • MEGA2560/1280
    Proto Shield SKU:384877
  • NodeMcu
    Lua ESP8266 SKU:
  • GPS
    Module SKU:384916
  • DFRobot
    V3 RPSMA Wi-Fi Shield SKU:388060
  • TTL
    to USB Serial Debug Cable SKU:391535
  • TI
    EK-TM4C123GXL LAUNCHPAD, TIVA C Kit SKU:391891
  • I2C
    RTC Real Time Clock Module SKU:398854
  • Aluminum
    Enclosure / Case Box + 2.2 SKU:400578
  • Mini
    CPU Memory Display Shield V3.1 SKU:401126
  • Cirrus
    Logic Audio Card SKU:409786
  • Sim800
    Expansion Board with GSM / GPRS / SMS SKU:414207
  • GPS
    Expansion Board SKU:414213
  • Raspberry
    PI to Arduino Expansion Board V2.0 SKU:414670
  • HAT
    with Orientation, Pressure, Humidity and Temperature Sensors SKU:415439
  • Stepper/Motor/Servo
    Robot Expansion Board SKU:418460
  • Raspberry
    Pi Official Case SKU:397320
  • EXP
    Expresscard GDC Video Card SKU: 412508
  • RPI
    Lithium Battery Expansion Board SKU:435230

Обзор программ для работы с GPS на компьютере

U-Center

Ссылка на скачивание – https://www.u-blox.com/en/product/u-center-windows

Программа u-center используется для работы с GNSS-проемниками от фирмы U-Blox. С помощью этого программного обеспечения можно тестировать точность позиционирования, изменять конфигурацию ресивера и проводить общую диагностику, обрабатывать полученные данные и отображать их в режиме реального времени. Координаты приемник получает с помощью GPS, ГЛОНАСС.  Полученную информацию можно экспортировать и показывать в картах Google Maps, Google Earth. Программа позволяет создавать двухмерные диаграммы, гистограммы и другие виды графиков. u-center можно использовать при работе с несколькими приемниками.

Возможности программного обеспечения U-Center:

  • Работа с Windows;
  • Чтение NMEA , SiRF данных, UBX;
  • Вывод полученных данных в виде текста и графиков;
  • Запись данных, и воспроизведение;
  • Полное управление модулем GPS;
  • Возможность изменения конфигурации GPS-модуля;
  • Запись новой конфигурации в модуль;
  • Запись конфигурации в файл формата .txt;
  • Обновление прошивки модуля;
  • Возможность холодного, теплого и горячего старта модуля.

Программа позволяет оценивать работоспособность приемника, анализировать его быстродействие и устанавливать его настройки. Помимо U-Center могут использоваться и другие программы, например, Visual GPS, Time Tools GPS Clock и другие.

Visual GPS

Ссылка на скачивание http://www.visualgps.net/VisualGPS/download.htm

Эта программа используется для отображения GPS данных по протоколу NMEA 0183 в графическом виде. Программа позволяет записывать лог GPS данных в файл. Существует два режима работы в программе – в первом Visual GPS связывается с приемником GPS, а во втором Visual GPS считывает показания NMEA из файла. Программа имеет 4 основных окна – Signal Quality (качество сигнала), Navigation (навигация), Survey (исследование), Azimuth and Elevation (азимут и высота).

Time Tools GPS Clock

Ссылка на скачивание https://softadvice.informer.com/Time_Tools_Gps_Clock.html

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

GPS TrimbleStudio

Ссылка на скачивание http://softwaretopic.informer.com/trimble-gps-studio/

Программное обеспечение используется для работы с приемником Copernicus в Windows. Программа отображает принимаемые навигационные данные. Полученные координаты можно отобрать на картах Google Maps, Microsoft Visual Earth. Все установленные настройки приемника можно сохранить в конфигурационном файле

Fugawi

Ссылка на скачивание http://www.fugawi.com/web/products/fugawi_global_navigator.htm

Программа используется для планирования маршрута, GPS навигации в реальном времени. Программа позволяет записывать и сохранять маршруты и путевые точки на картах. Навигация производится как на суше, так и на воде и в воздухе. В программе используются различные виды цифровых карт – топографические карты, стандарты NOAA RNC, отсканированные копии бумажных карт, Fugawi Street Maps.

3D World Map

Ссылка на скачивание www.3dwamp.com

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

Примеры

Примеры для GSM-модуля можно поделить на две группы. Первая – это скетчи-примеры, иллюстрирующие возможности модуля (вроде отправки SMS или подключения к интернету). Вторая – это «обслуживающие» скетчи-примеры, то есть программные инструменты для проверки функционала библиотеки и компонентов модуля, которые она использует.

Скетчи-примеры для демонстрации функций

  • GSM Web Client – Загрузка содержимого вебсайта на Arduino через GPRS
  • GSM Web Server – Создание беспроводного веб-сервера через GPRS
  • Make Voice Call – Звонок по телефону через монитор порта
  • Send SMS – Отправка SMS на разные телефонные номера через монитор порта
  • Receive Voice Call – Проверка статуса модема во время входящего телефонного звонка
  • Receive SMS – Получение SMS и их отображение на мониторе порта

Скетчи-примеры для проверки и отладки

  • Band Management – Настройка диапазона частот, к которому будет подключаться GSM-модуль
  • GSM Scan Networks – Проверка доступных сетей
  • Pin Management – Управление PIN-кодом SIM-карты
  • Test GPRS – Проверка функциональности GPRS-сети при помощи SIM-карты
  • Test Modem – Получение IMEI-номера модема
  • Test Web Server – Создание веб-сервера при помощи GSM-модуля

Troubleshooting

Shield doesn’t respond with OK

Check your TX and RX connections to the Arduino. Try repeating the process by changing the TX with the RX pins.

Also check if you have selected the software serial by placing the jumper cap on the appropriate place on the serial selector.

Cannot see messages in the serial monitor

To see the messages in the serial monitor, the shield and the Arduino’s serial port baud rate should be the same. The SIM900 GSM GPRS shield default baud rate is 19200. So, select the Arduino’s baud rate to 19200.

However, if you need to change the shield baud rate, you can send the following AT command to change it to 19200 or other appropriate baud rate.

AT+IPR=19200

Структура

Поскольку библиотека GSM используется для разнотипных функций, в ней присутствует несколько разных классов:

  • Класс GSM отвечает за команды к модему. Он занимается коммуникационными аспектами GSM-модуля и регистрирует вашу систему в GSM-инфраструктуре. Объект этого класса требуется во всех скетчах, использующих GSM/GPRS – чтобы обрабатывать низкоуровневую коммуникацию.
  • Класс GSMVoiceCall отвечает за обработку голосовых звонков.
  • Класс GSM_SMS отвечает за отправку/получение SMS.
  • Класс GPRS отвечает за подключение к интернету.
  • Класс GSMClient включает в себя инструменты для управления клиентом – аналогично библиотекам Ethernet и WiFi.
  • Класс GSMServer включает в себя инструменты для управления сервером – аналогично библиотекам Ethernet и WiFi. Примечание: Ряд мобильных операторов не разрешают входящие соединения из интернета общего пользования, но разрешают их внутри своей сети. Подробнее о подобных ограничениях спрашивайте у своего оператора.
  • Ряд вспомогательных классов вроде GSMScanner или GSMModem

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

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

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

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

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

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

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

Как работает устройство?

Для того чтобы обеспечить защиту собственного имущества и настроить работу системы на платформе Arduino, нужно приобрести еще и GSM модуль. Благодаря ему появляется возможность выполнить вход во всемирную паутину, выполнять дозвон или отправлять СМС оповещения.

Помимо этого в GSM плате имеется и специальный радиомодем М10, который взаимодействует с системой посредствам АТ команд. Передача данных реализуется с помощью программного последовательного интерфейса с использованием специального цифрового кода.

Стоит отметить, что аппаратное устройство Arduino, оснащенное GSM модулем функционирует на 4 частотах. И дополнительно в модеме имеется поддержка отдельных, наиболее популярных протоколов, что в свою очередь гарантирует GPRS соединение. И GPRS модуль Arduino обеспечивает скорость передачи данных до 90к/бит в секунду.

Помимо этого владелец получает возможность передавать голосовое сообщение и вызывать любого абонента. Но в этой ситуации дополнительно потребуется как микрофон, так и внешний динамик. И именно благодаря СИМ карте можно использовать устройство в режиме сотовой связи.

Как выполнить подключение?

Перед подключением GSM модуля к Arduino в слот для СИМ карты, нужно провести установку соответствующего размера симку. Только после этого следует подключать сам модуль к аппаратной платформе. Производитель дает инструкцию, и чтобы не было проблем в работе, ее нужно придерживаться. При подключении нужно использовать компьютер, а устройство подсоединяется к ПК посредствам USB кабеля. После того как Arduino загрузиться, нужно закачать софт. Как только процесс будет завершен можно отключить платформу от ПК.

GSM/GPRS-модуль SIM800L (#1) - как выбрать, подключение, введение в AT-командыGSM/GPRS-модуль SIM800L (#1) — как выбрать, подключение, введение в AT-команды

Introducing the SIM900 GSM GPRS Shield

The SIM900 GSM GPRS Shield is shown in figure below.

GSM stands for Global System for Mobile Communications and is the global standard for mobile communications.

GPRS stands for General Packet Radio Service. GPRS is a mobile service on the 2G and 3G cellular communication.

Applications:

The GSM GPRS shield is particularly useful as it allows to:

  • Connect to the Internet over GPRS network
  • Send and receive SMS
  • Place and receive phones calls

Its capabilities make it perfect for projects with Arduino like:

  • Remote control of electronic appliances – sending an SMS to turn something on;
  • Receive notifications – send SMS to your cell phone if movement is detected in your house;
  • Receive sensor data – send periodic SMS to your cell phone with daily weather data.

Features

Here’s some of the most important features of the shield:

  • Compatible with Arduino and clones
  • Based on SIM900 module from SIMCOM
  • Allows you to send SMS, MMS, GPRS and Audio via UART using AT commands.
  • It has 12 GPIOs, 2 PWMs and buit-in ADC of the SIM900 module
  • Quad Band: 850; 900; 1800 and 1900 MHZ, so it should work in all countries with GSM (2G) networks
  • Control via AT commands
  • Supports RTC (real time clock) – it has a holder for a 3V CR1220 battery at the back

Has microphone and headphone jacks for phone calls

Where to buy?

You can check the SIM900 GSM GPRS shield on Maker Advisor and find the best price.

You can use the preceding links or go directly to MakerAdvisor.com/tools to find all the parts for your projects at the best price!

Включение/выключение чипа SIM900

Даже если вы включите плату расширения, вам нужно еще включить чип SIM900, чтобы он заработал.

В соответствии с техническим описанием, установив на выводе PWRKEY чипа низкий логический уровень (лог. 0) в течение как минимум 1 секунды, можно включить/выключить чип. У нашей платы расширения есть два способа сделать это.

Аппаратный запуск

Рисунок 13 – Кнопка включения/выключения чипа SIM900

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

Программный запуск

Вместо того, чтобы каждый раз вручную нажимать PWRKEY, вы можете программно включать/выключать SIM900.

Во-первых, вам нужно запаять SMD перемычку, обозначенную как R13 на плате расширения, как показано на рисунке ниже.

Рисунок 14 – Запаиваемая перемычка R13 на SIM900 GSM Shield для программного управления

Затем вам нужно подключить вывод D9 на плате расширения к выводу D9 на Arduino.

Рисунок 15 – Подключение SIM900 GSM Shield к Arduino для программного управления

Наконец, вам нужно добавить следующую функцию в вашу программу.

В заключение

Хотелось бы отметить, что настоящий GSM информер безопасности на Arduino, годится не только для охраны квартиры, хозяйственного помещения или каких-либо иных неподвижных объектов. Его прекрасно можно применять и в транспорте, выполнив самодельную автосигнализацию на тех же принципах работы, и используя перечисленные ранее компоненты. Бонусом служит возможность ее расширения, которая позволяет возложить на микроконтроллер дополнительные функции. К примеру, GPS навигатор, который пользуясь возможностями GSM связи, будет информировать владельца о текущем нахождении автомобиля.

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий