Оглавление:

Учебное пособие по Arduino Cellular Shield: 9 шагов (с изображениями)
Учебное пособие по Arduino Cellular Shield: 9 шагов (с изображениями)

Видео: Учебное пособие по Arduino Cellular Shield: 9 шагов (с изображениями)

Видео: Учебное пособие по Arduino Cellular Shield: 9 шагов (с изображениями)
Видео: Когда тренер - твой друг😏 2024, Ноябрь
Anonim
Учебное пособие по Arduino Cellular Shield
Учебное пособие по Arduino Cellular Shield

Arduino Cellular Shield позволяет звонить по сотовому телефону и отправлять текстовые сообщения. Мозгом этого экрана является SM5100B, который представляет собой надежный сотовый модуль, способный выполнять многие из задач большинства стандартных сотовых телефонов. Этот экран требует использования SIM-карты для подключения к сотовой сети. Следующее руководство представляет собой краткое руководство по инициализации щита, а также по отправке и получению текстовых сообщений и телефонных звонков. Чтобы узнать больше о функциональности модуля, обязательно ознакомьтесь с таблицами данных на странице продукта Sparkfun.

Шаг 1. Приобретите материал

Иди и принеси вещи
Иди и принеси вещи

Тебе понадобится:

(x1) Экран сотовой связи (x1) Стекируемые разъемы Arduino (x1) Четырехдиапазонная антенна (x1) Arduino Uno

(Обратите внимание, что некоторые ссылки на этой странице являются партнерскими ссылками. Это не влияет на стоимость товара для вас. Я реинвестирую все полученные мной доходы в создание новых проектов. Если вам нужны какие-либо предложения по альтернативным поставщикам, пожалуйста, позвольте мне знать.)

Шаг 2: Заголовки припоя

Заголовки для припоя
Заголовки для припоя
Заголовки для припоя
Заголовки для припоя
Заголовки для припоя
Заголовки для припоя

Вставьте разъемы в экран и припаяйте их на место.

Шаг 3. Вставьте

Вставлять
Вставлять
Вставлять
Вставлять

Вставьте контакты заголовка в разъемы на Arduino.

Шаг 4: перепаять

Перепаять
Перепаять

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

Шаг 5: прикрепите антенну

Присоедините антенну
Присоедините антенну
Присоедините антенну
Присоедините антенну

Проденьте антенну на антенный кабель.

Шаг 6: вставьте SIM-карту

Вставьте сим карту
Вставьте сим карту
Вставьте сим карту
Вставьте сим карту
Вставьте сим карту
Вставьте сим карту
Вставьте сим карту
Вставьте сим карту

Надежно вставьте SIM-карту в гнездо для SIM-карты.

Шаг 7: Инициализировать

Инициализировать
Инициализировать

Запустите следующий код на Arduino:

/*

SparkFun Cellular Shield - образец сквозного скетча SparkFun Electronics Написано Райаном Оуэнсом 3 / Описание: Этот скетч написан для сопряжения Arduino Duemillanove с Cellular Shield от SparkFun Electronics. Сотовый экран можно приобрести здесь: https://www.sparkfun.com/commerce/product_info.php?products_id=9607 В этом эскизе последовательные команды передаются от терминальной программы к сотовому модулю SM5100B; и ответы от сотового модуля отправляются в терминал. Более подробную информацию можно найти в комментариях к эскизу. Активированная SIM-карта должна быть вставлена в держатель SIM-карты на плате для использования устройства! В этом скетче используется библиотека NewSoftSerial, написанная Микалом Хартом из Arduiniana. Библиотеку можно загрузить по этому URL-адресу: https://arduiniana.org/libraries/NewSoftSerial/ Этот код предоставляется в соответствии с лицензией Creative Commons Attribution License. Более подробную информацию можно найти здесь: https://creativecommons.org/licenses/by/3.0/ (Используйте наш код свободно! Пожалуйста, не забудьте указать нам, где это необходимо. Спасибо!) * / #Include // Включите NewSoftSerial библиотека для отправки последовательных команд на сотовый модуль. #include // Используется для манипуляций со строками char incoming_char = 0; // Будет удерживать входящий символ из последовательного порта. SoftwareSerial cell (2, 3); // Создаем «поддельный» последовательный порт. Контакт 2 - это контакт Rx, контакт 3 - контакт Tx. void setup () {// Инициализируем последовательные порты для связи. Serial.begin (9600); ячейка. начало (9600); //Давайте начнем! Serial.println («Запуск связи SM5100B…»); } void loop () {// Если персонаж приходит из сотового модуля… if (cell.available ()> 0) {incoming_char = cell.read (); // Получаем символ из последовательного порта сотовой связи. Serial.print (incoming_char); // Выводим входящий символ в терминал. } // Если символ приходит с терминала на Arduino… if (Serial.available ()> 0) {incoming_char = Serial.read (); // Получаем символ, исходящий из терминала if (incoming_char == '~') // Если это тильда… incoming_char = 0x0D; //… преобразовать в возврат каретки else if (incoming_char == '^') // Если это верхний курсор… incoming_char = 0x1A; //… преобразовать в ctrl-Z cell.print (incoming_char); // Отправляем персонажа в сотовый модуль. Serial.print (incoming_char); // Вывести его обратно на терминал}} / * SM5100B Quck Reference для набора AT-команд * Если не указано иное, AT-команды завершаются нажатием клавиши 'Enter'. 1.) Убедитесь, что выбран правильный диапазон GSM для вашей страны. Для США диапазон должен быть установлен на 7. Чтобы установить диапазон, используйте эту команду: AT + SBAND = 7 2.) После включения Arduino с установленным экраном убедитесь, что модуль считывает и распознает SIM-карту. Открыв временное окно и выбрав порт Arduino и 9600 буад, включите Arduino. Последовательность запуска должна выглядеть примерно так: Запуск связи SM5100B… + SIND: 1 + SIND: 10, «SM», 1, «FD», 1, «LD», 1, «MC», 1, «RC», 1, «ME», 1 Связь с модулем начинается после отображения первой строки. Вторая линия связи, + SIND: 10, сообщает нам, видит ли модуль SIM-карту. Если SIM-карта обнаружена, во всех остальных полях будет 1; если SIM-карта не обнаружена, во всех остальных полях будет 0. 3.) Дождитесь подключения к сети, прежде чем начинать отправлять команды. После ответа + SIND: 10 модуль автоматически начнет попытки подключения к сети. Подождите, пока вы не получите следующие ответы: + SIND: 11 + SIND: 3 + SIND: 4 Ответ + SIND от сотового модуля сообщает состояние модулей. Вот краткое описание значений ответов: 0 SIM-карта удалена 1 SIM-карта вставлена 2 Мелодия звонка 3 AT-модуль частично готов 4 AT-модуль полностью готов 5 ID освобожденных вызовов 6 Разрешенный вызов, ID которого = 7 Сетевая услуга доступен для экстренного вызова 8 Сеть потеряна 9 Звук ВКЛ 10 Отображение статуса каждой телефонной книги после фразы инициализации 11 Зарегистрирован в сети После регистрации в сети вы можете начать взаимодействие. Вот несколько простых и полезных команд для начала работы: Чтобы позвонить: Команда AT - ATDxxxyyyzzzz Номер телефона в формате: (xxx) yyy-zzz try ---- cell.print ("ATDxxxyyyzzzz"); Если вы звоните по телефону, обязательно сверьтесь с описанием устройств, чтобы подключить микрофон и динамик к экрану. Чтобы отправить текстовое сообщение: AT-команда - AT + CMGF = 1 Эта команда устанавливает режим текстового сообщения на «текст». AT command = AT + CMGS = "xxxyyyzzzz" (возврат каретки) 'Текст для отправки' (CTRL + Z) Описание этой команды немного сбивает с толку. Номер телефона в формате (xxx) yyy-zzzz заключен в двойные кавычки. После закрытия котировок нажмите Enter. Затем введите текст для отправки. Завершите AT-команду, отправив CTRL + Z. Этот символ не может быть отправлен с терминала Arduino. Используйте альтернативную программу терминала, такую как Hyperterminal, Tera Term, Bray Terminal или X-CTU. Модуль SM5100B может намного больше! Ознакомьтесь с техническими описаниями на странице продукта, чтобы узнать больше о модуле. * /Откройте последовательный порт в терминале. На Mac это можно сделать, набрав: screen /dev/tty.usbmodemfa131 9600 (замените tty.usbmodemfa131 на серийный адрес Arduino). Подождите, пока не появится следующая последовательность: Запуск связи SM5100B… + SIND: 3 + SIND: 4 + SIND: 11 (Если эта последовательность не возвращается, проверьте коды ошибок, перечисленные в нижней части приведенного выше кода, и выполните отладку соответствующим образом. Возможно, вам потребуется настроить модуль для использования в Северной Америке - см. Ниже - до его регистрации в сети (т. Е. + SIND 11)) Отправьте следующие команды на последовательный порт: Отправьте это для использования в Северной Америке: AT + SBAND = 7 Установите текущее время - гг / мм / дд: AT + CCLK = "13/05/15, 11: 02:00 »Отправить тестовый звонок: ATD4155551212

Шаг 8: текстовые сообщения

Текстовые сообщения
Текстовые сообщения

Загрузите и установите SerialGSM в свою библиотеку Arduino.

Чтобы отправить текстовое сообщение, посетите учебник по сотовому модулю Tronixstuff и используйте пример кода 26.3:

Если вы хотите запустить пример кода для получения текста, подключите светодиод к контакту 8 и соедините его последовательно с резистором 220 Ом на землю.

Чтобы отправить текстовое сообщение, посетите учебник по сотовому модулю Tronixstuff и используйте пример кода 26.5:

Отправьте на свой сотовый модуль одну из следующих команд:

// включает светодиод # a1

// выключает светодиод # a0

Шаг 9: голос

Голос
Голос
Голос
Голос
Голос
Голос

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

Для инициализации голосового вызова загрузите следующий код:

//**********************************************************************************

// СДЕЛАТЬ ЗВОНОК // // БУФЕРНЫЙ КОД НА ОСНОВЕ: // // //********************************************************************************** #include #define BUFFSIZ 90 //Set up buffer array char at_buffer[BUFFSIZ]; char buffidx; //Network state variables int network_registered; int network_AT_ready; //Code state variables int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; //Will hold the incoming character from the Serial Port. char incoming_char=0; //Create a 'fake' serial port. Pin 2 is the Rx pin, pin 3 is the Tx pin. SoftwareSerial cell(2, 3); void setup() { //Initialize Arduino serial port for debugging. Serial.begin(9600); //Initialize virtual serial port to talk to Phone. cell.begin(9600); //Hello World. Serial.println("Starting SM5100B Communication…"); delay(1000); //Set initial network state network_registered = 0; network_AT_ready = 0; } //Read AT strings from the cellular shield void readATString(void) { char c; buffidx= 0; // start at begninning for (x = 0; x 0) { c=cell.read(); if (c == -1) { at_buffer[buffidx] = '\0'; return; } if (c == '\n') { continue; } if ((buffidx == BUFFSIZ - 1) || (c == '\r')){ at_buffer[buffidx] = '\0'; return; } at_buffer[buffidx++]= c; } } } //Process the AT strings void ProcessATString() { if(strstr(at_buffer, "+SIND: 8") != 0) { network_registered = 0; Serial.println("network Network Not Available"); } if(strstr(at_buffer, "+SIND: 11") != 0) { network_registered=1; Serial.println("network Registered"); } if(strstr(at_buffer, "+SIND: 4") != 0) { network_AT_ready=1; Serial.println("network AT Ready"); } } void loop() { /* If called for the first time, loop until network and AT is ready */ if(firstTimeInLoop == 1) { firstTimeInLoop = 0; while (network_registered == 0 || network_AT_ready == 0) { readATString(); ProcessATString(); } } //LET'S MAKE A PHONE CALL! if(firstTimeInOtherLoop == 1){ //Change the 10 digit phone number to whatever you wish cell.println("ATD4155551212"); firstTimeInOtherLoop = 0; } }

To receive a voice call upload the following code

//**********************************************************************************

// ANSWER A CALL // // BUFFERING CODE BASED UPON: // // // ********************************************* *********************************** #include #define BUFFSIZ 90 // Настроить буферный массив char at_buffer [БУФФСИЗ]; char buffidx; // Переменные состояния сети int network_registered; int network_AT_ready; // Переменные состояния кода int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; // Будет удерживать входящий символ из последовательного порта. char incoming_char = 0; // Создаем «поддельный» последовательный порт. Контакт 2 - это контакт Rx, контакт 3 - контакт Tx. SoftwareSerial cell (2, 3); void setup () {// Инициализируем последовательный порт Arduino для отладки. Serial.begin (9600); // Инициализируем виртуальный последовательный порт для связи с телефоном. ячейка. начало (9600); //Привет, мир. Serial.println («Запуск связи SM5100B…»); задержка (1000); // Устанавливаем начальное состояние сети network_registered = 0; network_AT_ready = 0; } // Чтение строк AT из сотового экрана void readATString (void) {char c; buffidx = 0; // начать с начала for (x = 0; x 0) {c = cell.read (); если (c == -1) {at_buffer [buffidx] = '\ 0'; возвращение; } if (c == '\ n') {продолжить; } если ((buffidx == BUFFSIZ - 1) || (c == '\ r')) {at_buffer [buffidx] = '\ 0'; возвращение; } at_buffer [buffidx ++] = c; }}} // Обработка строк AT void ProcessATString () {if (strstr (at_buffer, "+ SIND: 8")! = 0) {network_registered = 0; Serial.println («Сетевая сеть недоступна»); } если (strstr (at_buffer, "+ SIND: 11")! = 0) {network_registered = 1; Serial.println ("зарегистрированный в сети"); } если (strstr (at_buffer, "+ SIND: 4")! = 0) {network_AT_ready = 1; Serial.println ("сеть AT Ready"); }} void loop () {/ * При первом вызове, цикл до готовности сети и AT * / if (firstTimeInLoop == 1) {firstTimeInLoop = 0; в то время как (зарегистрировано в сети == 0 || в сети_AT_ready == 0) {readATString (); ProcessATString (); }} if (firstTimeInOtherLoop == 1) {// Ищем входящий звонок if (strstr (at_buffer, "+ CPAS: 3")! = 0) {// Отвечаем на телефонный звонок cell.println ("ATA"); firstTimeInOtherLoop = 0; }}}

Изображение
Изображение

Вы нашли это полезным, развлечением или развлечением? Подпишитесь на @madeineuphoria, чтобы увидеть мои последние проекты.

Рекомендуемые: