Arduino:Примеры/GSMExamplesBandManagement
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Управление диапазоном частот с помощью GSM Shield[1]
Этот пример показывает, как при помощи GSM Shield и библиотеки GSM управлять диапазоном частот, который использует модем.
Общую информацию о диапазонах частот GSM можно почитать, например, здесь. Для разных регионов есть свои собственные настройки:
- Европа, Африка, Ближний Восток: E-GSM (900) + DCS (1800)
- США, Канада, Южная Америка: GSM (850) + PCS (1900)
- Мексика: PCS (1900)
- Бразилия: GSM (850) + E-GSM (900) + DCS (1800) + PCS (1900)
Необходимое оборудование
- Плата Arduino;
- Модуль Arduino + Telefonica GSM/GPRS Shield;
- SIM-карта;
Цепь
Изображение модуля Arduino GSM Shield, установленного поверх платы Arduino Uno
Код
/*
Управление диапазоном частот
Этот скетч для Arduino GSM Shield проверяет, на какой диапазон частот настроен модем,
и позволяет вам менять его.
Пожалуйста, сверьтесь здесь – http://www.worldtimezone.com/gsm.html.
Стандартные настройки:
* Европа, Африка, Ближний Восток: E-GSM (900) + DCS (1800)
* США, Канада, Южная Америка: GSM (850) + PCS (1900)
* Мексика: PCS (1900)
* Бразилия: GSM (850) + E-GSM (900) + DCS (1800) + PCS (1900)
Цепь:
* GSM Shield
Создан 12 июня 2012 Хавьером Зорзано (Javier Zorzano)
и Скоттом Фитцджеральдом (Scott Fitzgerald).
Этот код не защищен авторским правом.
*/
// Библиотеки:
#include <GSM.h>
// Создаем экземпляр класса GSMBand:
GSMBand band;
void setup()
{
// Инициализируем последовательную передачу данных:
Serial.begin(9600);
// Запуск менеджера, управляющего диапазоном частот, перезапустит модем:
Serial.println("Restarting modem..."); // "Перезапускаем модем..."
band.begin();
Serial.println("Modem restarted."); // "Модем перезапущен."
};
void loop()
{
// Получаем информацию о текущем диапазоне частот:
String bandName = band.getBand();
// Получив, выводим эту информацию на Serial Monitor:
Serial.print("Current band:"); // "Текущий диапазон частот:"
Serial.println(bandName);
Serial.println("Want to change the band you’re on?"); // "Хотите поменять диапазон частот?"
String newBandName;
newBandName = askUser();
// Говорим пользователю, что собираемся делать... :
Serial.print("\nConfiguring band "); // "\nНастройка диапазона частот"
Serial.println(newBandName);
// Меняем диапазон частот:
boolean operationSuccess;
operationSuccess = band.setBand(newBandName);
// Если операция прошла успешно, сообщаем об этом пользователю:
if(operationSuccess)
{
Serial.println("Success"); // "Успех!"
}
else
{
Serial.println("Error while changing band"); // "Ошибка при смене диапазона частот"
}
if(operationSuccess)
{
while(true);
}
}
// Эта функция через Serial Monitor предлагает пользователю
// несколько вариантов дальнейшего развития событий.
// Пользователю выбирает один из них.
String askUser()
{
String newBand;
Serial.println("Select band:"); // "Выберите диапазон частот:"
// Выводим на Serial Monitor разные варианты:
Serial.println("1 : E-GSM(900)");
Serial.println("2 : DCS(1800)");
Serial.println("3 : PCS(1900)");
Serial.println("4 : E-GSM(900)+DCS(1800) ex: Europe");
Serial.println("5 : GSM(850)+PCS(1900) Ex: USA, South Am.");
Serial.println("6 : GSM(850)+E-GSM(900)+DCS(1800)+PCS(1900)");
// Очищаем буфер, содержащий входящую информацию:
while(Serial.available())
Serial.read();
// Ждем ответа и смотрим лишь на первый символ:
while(!Serial.available());
char c= Serial.read();
if(c=='1')
newBand=GSM_MODE_EGSM;
else if(c=='2')
newBand=GSM_MODE_DCS;
else if(c=='3')
newBand=GSM_MODE_PCS;
else if(c=='4')
newBand=GSM_MODE_EGSM_DCS;
else if(c=='5')
newBand=GSM_MODE_GSM850_PCS;
else if(c=='6')
newBand=GSM_MODE_GSM850_EGSM_DCS_PCS;
else
newBand=GSM_MODE_UNDEFINED;
return newBand;
}
См.также
- GSMBand
- begin()
- getBand()
- setBand()
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
Категории:
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino