GSM модуль
Плата розширення Arduino GSM дозволяє Ардуіно виходити в Інтернет через безпровідну мережу GPRS. Для цього достатньо просто підключити модуль до плати Ардуіно, вставити SIM-карту оператора, що надає послугу GPRS, і виконати кілька простих дій. Крім цього, дана плата дозволяє здійснювати голосові дзвінки (для цього знадобиться зовнішній динамік і невелика схема для підключення мікрофона), а також приймати і отримувати SMS-повідомлення.
Зміст
Загальні відомості
Плата розширення Arduino GSM дозволяє Ардуіно виходити в Інтернет, здійснювати голосові дзвінки, а також відправляти і отримувати SMS-повідомлення. У платі розширення використовується радіо-модем M10 від Quectel (datasheet), взаємодіяти з яким можна за допомогою AT-команд. Бібліотека GSM надає програмісту досить великий вибір функцій і методів для роботи з платою розширення.
Взаємодія з модемом M10 здійснюється з програмного послідовному інтерфейсу за допомогою цифрових виходів 2 і 3. При цьому вихід 2 підключений до виходу TX модему M10, а вихід 3 - до RX. При роботі з модулем на платах Arduino Mega, Mega ADK або Leonardo необхідно дотримуватися цих інструкцій. Вихід модему PWRKEY підключений до 7 виходу Ардуіно.
M10 - це чотиридіапазонний модем, що працює на частотах GSM850MHz, GSM900MHz, DCS1800MHz і PCS1900MHz. У ньому реалізована підтримка протоколів TCP / UDP і HTTP, які працюють за допомогою бездротової технології GPRS. При цьому максимальна швидкість отримання та відправки даних через GPRS дорівнює 85.6 кбіт / с.
Характеристика
- Підтримка стандартів GSM850, GSM900, DCS1800, PCS1900
- Підтримка протоколів TCP, UDP, HTTP
- Швидкість GPRS 85.6 кбіт / с
- сумісний з Arduino Uno і Arduino Mega.
Мікросхема Queltec М10
Чотирьохдіапазонний GSM / GPRS модуль M10 з технологією поверхневого монтажу, легко інтегрується в додатки замовника, володіє найвищим ступенем надійності і стабільності. Володіючи інтерфейсом, що відповідає промисловим стандартам, компактним розміром і низьким споживанням енергії, M10 дозволяє передавати через GSM / GPRS мережі голос, SMS, дані і факс. Компактний розмір модуля дозволяє застосовувати його в більшості M2M систем, включаючи супутниковий моніторинг транспорту, "інтелектуальні лічильники", бездротові торгові термінали, системи охорони, і т.д.
Особливості:
- Чотирьохдіапазонний GSM / GPRS модуль з габаритами 29.0 × 29.0 × 3,6 мм.
- SMD форм-фактор не вимагає дорогого монтажного обладнання.
- Вбудовані повнофункціональні протоколи сервісів Інтернет.
- Заснований на розвиненій і перевіреній на практиці платформі, з постійним контролем на всіх стадіях розвитку від технічного завдання до розробки і виробництва.
Основні характеристики:
- Частотні діапазони: 850/900/1800/1900 MГц
- GPRS мультислот-клас: 12, 1~12 configurable
- GPRS клас пристрою: Class B
- Відповідність стандарту GSM фази 2/2 +: Класс 4 (2Вт @850/900МГц)Класс 1 (1Вт @1800/1900МГц)
- Напруга живлення: 3.3~4.6В, 4.0В ном.
- Енергоспоживання в режимі очікування:1,3мА @ DRX=51, 2мА @ DRX=9
- Температурний діапазон: -45 °C до +85 °C
- Розміри: 29.0 × 29.0 × 3,6мм
- Вага: ~ 6 г.
- Управління через AT-команди (GSM 07.07, 07.05 і власний набір AT-команд)
- Функції SIM-карти (SIM application toolkit)
Характеристики факсу та передачі даних
- GPRS Клас 12; макс. 85,6кбіт / с (в обидві сторони)
- Підтримка PBCCH
- Схеми кодування CS 1, 2, 3, 4
- USSD
- Не прозорий режим
- Інтернет протоколи: PPP/TCP/UDP/HTTP/FTP/MMS/SMTP/MUX
Характеристики передачі SMS
- Точка-точка MO і MT
- SMS розсилка
- Режим Text і PDU
Характеристики передачі голосу
- Підтримка кодеків: HR, FR, EFR, напівшвидкісного AMR, полноскоростной AMR
- Цифрова обробка: Ехокомпенсація, Ехоподавлення, Придушення шуму.
- Основні hands-free операції.
Інтерфейси
- Інтерфейс SIM-карти: 3В/1,8В
- Аудіо: два канали
- Резервне живлення RTC
- Інтерфейс SD карти
- Послідовний асинхронний порт для налагодження
- Антенна майданчик
- GPIOs
Сертифікати
- CE/FCC/GCF/ICASA/PTCRB/TELCEL/IC/NCC/UCRF/Rogers/ANETEL
Вимоги до живлення
Для живлення плати рекомендується використовувати зовнішнє джерело живлення, яке здатне забезпечити струм в межах від 700мА до 1000мА. Не рекомендується використовувати USB-порт для живлення Ардуіно з встановленим GSM-модулем, оскільки USB не здатний забезпечити струм, необхідний при повному завантаженні модему.
Максимальний струм, споживаний модемом під час передачі даних, може досягати пікових значень до 2А. Цей струм надходить через велику помаранчеву конденсатор на лицьовій стороні плати.
Вбудовані індикатори
Плата розширення містить кілька світлодіодів:
- On: показує наявність живлення модуля.
- Status: загоряється під час передачі даних в / з GSM / GPRS мережі при наявності живлення.
- Net: блимає під час взаємодії модему з радіоефіром.
Вбудовані інтерфейси
Підтримка аудіо-інтерфейсу в GSM-модулі реалізована у вигляді аналогового вхідного (AIN1) і вихідного (AOUT1) каналів. Лінії вхідного каналу під'єднані до виходів MIC1P / MIC1N, які можуть використовуватися як для підключення мікрофона, так і в якості лінійного входу. До цих виходів, наприклад, можна підключати електретний мікрофон. Лінії вихідного каналу під'єднані до виходів SPK1P / SPK1N, які можуть використовуватися для підключення аудіо-підсилювача або динаміка. Наявність даних інтерфейсів обумовлено можливістю модему здійснювати голосові виклики. Відповідно, для того, щоб говорити і чути співрозмовника, необхідно підключити до пристрою динамік і мікрофон.
На платі розширення розташовані дві невеликі кнопки. Кнопка з написом "Reset" з'єднана з виходом RESET Ардуіно і відповідає за перезапуск завантаженої програми. Кнопка з написом "Power" з'єднана з модемом і служить для включення і відключення його живлення. У перших версіях GSM-плати розширення потрібно натискання кнопки "Power" для включення модему. В останніх версіях плати модем включається автоматично.
Якщо у вас одна з перших версій плати, то для автоматичного включення модему при подачі живлення на Ардуіно досить припаяти перемичку до виходів CTRL / D7 на звороті друкованої плати.
Для використання додаткових можливостей модему (таких, як підключення динаміка, мікрофона), на зворотному боці друкованої плати передбачено кілька контактних майданчиків, з'єднаних з виходами модему.
Бібліотека GSM
Бібліотека GSM з'явилася в Arduino IDE, починаючи з версії 1.0.4.
За допомогою встановленої плати розширення Arduino GSM, дана бібліотека дозволяє здійснювати більшість основних операцій, що здійснюються GSM-телефоном: працювати з голосовими викликами, відправляти і отримувати SMS, а також підключатися до мережі Інтернет через GPRS.
Плата розширення GSM містить модем, який транслює в GSM-мережу дані, що надходять до нього через послідовний порт. Всі операції виконуються модемом у вигляді послідовності AT-команд. Для поліпшення читабельності коду бібліотека абстрагує низькорівневі функції, що працюють з модемом і SIM-картою. GSM-модем взаємодіє з Ардуіно по послідовному інтерфейсу з використанням бібліотеки SoftwareSerial.
Кожна виконувана модемом команда, як правило, є фрагментом послідовності команд, спрямованих на виконання будь-якої функції. Бібліотека GSM спроектована з урахуванням цього, і здатна приймати / повертати інформацію на будь-якому етапі виконання послідовності команд.
Структура бібліотеки
Функціональність бібліотеки GSM досить широка, тому вона об'єднує в собі кілька різних класів:
- Клас GSM відповідає за управління радіо-модемом. Цей клас містить низькорівневі функції для підключення і реєстрації плати розширення в GSM-мережі. Примірник цього класу повинен бути оголошений у всіх програмах, що використовують GSM / GPRS.
- Клас GSMVoiceCall відповідає за голосові виклики.
- Клас GSM_SMS відповідає за відправку та отримання SMS-повідомлень.
- Клас GPRS відповідає за підключення до Інтернету.
- У класі GSMClient реалізований клієнт, подібний клієнту в бібліотеках Ethernet і WiFi.
- У класі GSMServer реалізований сервер, подібний сервера в бібліотеках Ethernet і WiFi.
- Безліч допоміжних класів, таких як GSMScanner, GSMModem і ін.
Сумісність з бібліотекою Ethernet
Розробниками докладено всіх зусиль для того, щоб бібліотека GSM була максимально сумісна з бібліотекою Ethernet. Завдяки цьому, перенесення коду, що використовує бібліотеки Ethernet або WiFi, на Ардуіно з GSM-платою розширення повинен бути досить простим. Проте, для запуску програм, написаних для Ethernet, на GSM-платі розширення недостатньо просто скопіювати код. Для цього можуть знадобитися незначні зміни в програмі, такі, як підключення бібліотек GSM і GPRS, отримання від провайдера налаштувань мережі і т.д.
Приклади програми
/* Приклад створення голосового виклику */ #include <GSM.h> #define PINNUMBER "" GSM gsmAccess; // include a 'true' parameter for debug enabled GSMVoiceCall vcs; String remoteNumber = ""; // номер char charbuffer[20]; void setup() { Serial.begin(9600); while (!Serial) { ; } Serial.println("Make Voice Call"); boolean notConnected = true; while (notConnected) { if (gsmAccess.begin(PINNUMBER) == GSM_READY) { notConnected = false; } else { Serial.println("Not connected"); delay(1000); } } Serial.println("GSM initialized."); Serial.println("Enter phone number to call."); } void loop() { while (Serial.available() > 0) { char inChar = Serial.read(); if (inChar == '\n') { if (remoteNumber.length() < 20) { Serial.print("Calling to : "); Serial.println(remoteNumber); Serial.println(); remoteNumber.toCharArray(charbuffer, 20); if (vcs.voiceCall(charbuffer)) { Serial.println("Call Established. Enter line to end"); while (Serial.read() != '\n' && (vcs.getvoiceCallStatus() == TALKING)); vcs.hangCall(); } Serial.println("Call Finished"); remoteNumber = ""; Serial.println("Enter phone number to call."); } else { Serial.println("That's too long for a phone number. I'm forgetting it"); remoteNumber = ""; } } else { // add the latest character to the message to send: if (inChar != '\r') { remoteNumber += inChar; } } } }
Перелік посилань
1. arduino.ua
2. satronel.com
3. www.arduino.cc
4. www.pubnub.com
5. arduino-project.net
6. Книга "Arduino, датчики и сети для связи устройств"
7. Петин В. А. П29 Проекты с использованием контроллера Arduino. — 2-е изд.