Телефон на ардуино своими руками

Добавил пользователь Владимир З.
Обновлено: 04.10.2024

Arduino - аппаратная платформа для разработки устройств, с платой ввода/вывода и простой средой разработки на Processing/Wiring. Базируется на МК Atmel AVR (ATmega), большинство плат программируются через USB. Платы Arduino позволяют своими руками создавать различные устройства, являются хорошим инструментом для начинающих и обучения МК. Большинство устройств можно собрать даже не прибегая к помощи паяльника!
В данном разделе вы найдете различные интересные схемы и проекты для платформы Arduino, их клонов Freeduino, Seeeduino, а также плат Raspberry Pi, Python и др. Не забудьте посетить форум по Arduino

RiveR

Гуру Ардуино, прошу вашей помощи, я монтёр в связи на предприятии. Нужен компактный телефонный аппарат для телефонной сети с тональным и импульсным набором номера. Думаю что это можно реализовать на Ардуино но не знаю как. Если есть идеи прошу помочь.

IamNikolay

1613145885839.jpg

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

Wan-Derer

О сайте

  • Официальное сообщество YouTube-канала AlexGyver. Здесь обсуждаются проекты автора и остальных участников форума, а также рождаются новые крутые идеи. У нас можно получить ответы на вопросы по техническим темам в разделе помощи, найти себе исполнителя или заказчика на разработку электроники и совместно заказать плату для проекта. Приятного общения!

Новые темы

  • Автор: Un_ka
  • Вчера в 16:40
  • Ответы: 5
  • Автор: taltsutamatu
  • Вчера в 10:09
  • Ответы: 8

Статистика форума

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

GSM и GPRS модуль в проектах Ардуино позволяет подключаться к удаленным автономным устройствам через обычную сотовую связь. Мы можем отправлять команды на устройства и принимать информацию от него с помощью SMS-команд или через интернет-подключение, открытое по GPRS. В этой статье мы рассмотрим наиболее популярные модули для Arduino, разберемся с подключением и рассмотрим примеры программирования.

GSM GPRS в Arduino

Модули GSM GPRS

GSM модуль используется для расширения возможностей обычных плат Ардуино – отправка смс, совершение звонков, обмен данными по GPRS. Существуют различные виды модулей, наиболее часто используемые – SIM900, SIM800L, A6, A7.

Описание модуля SIM900

Технические характеристики:

Описание модуля SIM800L

Модуль выполнен на основе компонента SIM800L и используется для отправки смс, реализации звонков и обмена данными по GPRS. В модуль устанавливается микро сим карта. Устройство обладает встроенной антенной и разъемом, к которому можно подключать внешнюю антенну. Питание к модулю поступает от внешнего источника либо через DC-DC преобразователь. Управление осуществляется с помощью компьютера через UART, Ардуино, Raspberry Pi или аналогичные устройства.

Технические характеристики:

  • Диапазон напряжений 3,7В – 4,2В;
  • Поддержка 4х диапазонной сети 900/1800/1900 МГц;
  • GPRS class 12 (85.6 кБ/с);
  • Максимальный ток 500 мА;
  • Поддержка 2G;
  • Автоматический поиск в четырех частотных диапазонах;
  • Рабочая температура от –30С до 75С.

Описание модуля A6

Технические характеристики:

  • Диапазон напряжений 4,5 – 5,5В;
  • Питание 5В;
  • Диапазон рабочих температур от -30С до 80С;
  • Максимальное потребление тока 900мА;
  • GPRS Class 10;
  • Поддержка протоколов PPP, TCP, UDP, MUX.

Модуль поддерживает карты формата микросим.

Описание модуля A7

A7 является новейшим модулем от фирмы AI-THINKER. По сравнению со своим предшественником A6 имеет встроенный GPS, позволяющий упрощать конструкцию устройства.

Технические характеристики:

  • Диапазон рабочих напряжений 3,3В-4,6В;
  • Напряжение питания 5В;
  • Частоты 850/900/1800/1900 МГц;
  • GPRS Class 10: Макс. 85.6 кбит;
  • Подавление эха и шумов.

Где купить GSM модули для ардуино

Традиционно, прежде чем начать, несколько советов и полезных ссылок на продавцов Aliexpress.

Подключение GSM GPRS шилда к Arduino

В этом разделе мы рассмотрим вопросы подключения GSM – модулей к плате адуино. За основу почти во всех примерах берется Arduino Uno, но в большинстве своем примеры пойдут и для плат Mega, Nano и т.д.

Подключение модуля SIM800

Для подключения нужны плата Ардуино, модуль SIM800L, понижающий преобразователь напряжения, провода для соединения и батарея на 12В. Модуль SIM800L требует нестандартное для ардуино напряжение в 3,7В, для этого нужен понижающий преобразователь напряжения.

Распиновка модуля SIM800 приведена на рисунке.

GSM GPRS в Ардуино

Плату Ардуино нужно подключить к компьютеру через USB кабель. Батарею на 12 В подключить через преобразователь: -12В на землю Ардуино, от земли в преобразователь в минус, +12В в преобразователь в плюс. Выходы с модуля TX и RX нужно подключить к пинам 2 и 3 на Ардуино. Несколько модулей можно подключать к любым цифровым пинам.

GSM GPRS в Ардуино

Подключение модуля A6

Модуль A6 стоит дешевле, чем SIM900, и его очень просто подключать к Ардуино. Модуль питается напряжением 5В, поэтому для соединения не нужны дополнительно понижающие напряжение элементы.

Для подключения потребуются плата Ардуино (в данном случае рассмотрена Arduino UNO), GSM модуль А6, соединительные провода. Схема подключения приведена на рисунке.

GSM и GPRS модуль для Arduino

Вывод RX с модуля GSM нужно подключить к TX на плате Ардуино, вывод TX подключить к пину RX на Ардуино. Земля с модуля соединяется с землей на микроконтроллере. Вывод Vcc на GSM модуле нужно соединить с PWR_KEY.

Подключение с помощью GSM-GPRS шилда

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

Перед подключением к Ардуино нужно установить сим-карту на GSM-GPRS шилд. Также нужно установить джамперы TX и RX, как показано на рисунке.

GSM и GPRS модуль для Arduino

Подключение производится следующим образом – первый контакт (на рисунке желтый провод) с шилда нужно соединить с TX на Ардуино. Второй контакт (зеленый провод) подключается к RX на Ардуино. Земля с шилда соединяется с землей с аруино. Питание на микроконтроллер поступает через USB кабель.

Макет соединения шилда и платы Ардуино изображен на рисунке.

GSM и GPRS модуль для Arduino

Для работы потребуется установить библиотеку GPRS_Shield_Arduino.

Для проверки правильности собранной схемы нужно сделать следующее: соединить на Ардуино RESET и GND (это приведет к тому, что данные будут передаваться напрямую от шилда к компьютеру), вставить сим-карту в шилд и включить питание шилда. Плату Ардуино нужно подключить к компьютеру и нажать кнопку включения. Если все соединено правильно, загорится красный светодиод и будет мигать зеленый.

Краткое описание взаимодействия через AT-команды

AT-команды – это набор специальных команд для модема, состоящий из коротких текстовых строк. Чтобы модем распознал поданную ему команду, строки должны начинаться с букв at. Строка будет восприниматься, когда модем находится в командном режиме. AT-команды можно отправлять как при помощи коммуникационного программного обеспечения, так и вручную с клавиатуры. Практические все команды можно разделить на 3 режима – тестовый, в котором модуль отвечает, поддерживает ли команду; чтение – выдача текущих параметров команды; запись – произойдет записывание новых значений.

Список наиболее используемых AT-команд:

Монитор порта GSM и GPRS модуль для Arduino

Скетчи для работы с модулем GSM

Отправка СМС на примере SIM900

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

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

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

boolean notConnected = true;

С помощью функции gsmAccess.begin() происходит подключение к сети. При установлении соединения вернется значение GSM_READY.

vcs.hangCall(); – функция, показывающая, что модем готов принимать звонки.

getvoiceCallStatus() – определяет статус скетча. Если кто-то звонит, она возвращает значение RECEIVINGCALL. Для записи номера нужно воспользоваться функцией retrieveCallingNumber(). Когда будет совершен ответ на звонок, вернется TALKING. Затем скетч будет ждать символа новой строки, чтобы прервать разговор.

Сначала нужно установить библиотеку SoftwareSerial, которая позволяет обеспечивать последовательную передачу информации и связать GSM-модуль и микроконтроллер Ардуино.

AT+SAPBR=1,1 – открытие Carrier.

Следующие три команды связаны с установкой настроек подключения к сети.

AT+SAPBR=3,1,\”USER\”,\” mts \” – выбор пользователя mts.

AT+SAPBR=1,1 – установка соединения.

Если все выполнено правильно, в мониторе порта будут появляться строчки с АТ командами. Если отсутствует связь с модемом, то будет показывать по одной строке. При успешной установке GPRS-соединения на модуле начнет мигать светодиод.

Плата расширения Arduino GSM

Что касается совместимости, то плата расширения работает с Arduino Uno "из коробки". Для работы с Arduino Mega, Mega ADK и Leonardo требуются небольшие модификации. Arduino Due на данный момент не поддерживается.

Что такое GSM

Что такое GPRS

GPRS - это технология пакетной передачи данных (аббревиатура от "General Packet Radio Service"), которая в идеале может обеспечить скорость передачи в 56-114 кбит в секунду.

Роль мобильного оператора

Для того, чтобы можно было выходить в Интернет через GPRS (в том числе и для возможности Ардуино работать с веб-страницами), необходимо получить у оператора сети имя точки доступа (APN - Access Point Name), а также имя пользователя и пароль. Для получения дополнительной информации о возможностях Ардуино по работе с данными, см. страницу Подключение к Интернет.

SIM-карты

Помимо платы расширения GSM и самого Ардуино, вам также понадобится SIM-карта. Взаимодействие с провайдером связи осуществляется посредством SIM-карты. Провайдер продает вам SIM-карту и обеспечивает GSM-покрытие сети той области, где вы находитесь (или осуществляет роуминг с той компанией, у которой покрытие сети охватывает ваше месторасположение).

Как правило, с каждой SIM-картой ассоциирован специальный защитный код (PIN-код), состоящий из четырех цифр. Не теряйте этот номер, поскольку он необходим для подключения устройства к мобильной сети. Если же вы потеряли свой PIN-код, то для его восстановления необходимо будет связаться с мобильным оператором. Некоторые SIM-карты автоматически блокируются, если набрать неверный PIN-код несколько раз. Поэтому перед его набором лучше еще раз заглянуть в документацию, поставляющуюся вместе с SIM-картой.

Использование PUK-кода (PIN Unlock Code) позволяет сбросить потерявшийся PIN-код с помощью Ардуино или платы расширения GSM. PUK-код также указан в документации к вашей SIM'ке.

Пример изменения PIN-кода с помощью PUK показан в примере PIN Management, который находится в папке "tools" в комплекте с библиотекой GSM.

Стандартом предусмотрено несколько разных размеров SIM-карт; плата расширения Arduino GSM поддерживает карты форм-фактора mini-SIM (25 мм в длину и 15 мм в ширину).

Примечания о SIM-карте от Telefonica/Bluevia, входящей в комплект поставки

Плата расширения Arduino GSM идет в комплекте с SIM-картой Telefonica/Bluevia, которая ориентирована на работу в M2M-приложениях (machine to machine), где используется непосредственная связь между двумя устройствами. Вместе с тем, плата расширения может работать абсолютно с любыми SIM-картами - использовать какую-то определенную вовсе не требуется. Поэтому вы можете использовать SIM-карту любого провайдера, работающего в вашем регионе.

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

Активация SIM-карты осуществляется компанией Bluevia. В небольшой брошюре, поставляемой вместе с Arduino GSM, приведены подробные инструкции о том, как зарегистрировать и активировать свою SIM-карту в режиме онлайн, а также добавить средства на свой счет. Во время активации SIM-карта должна быть вставлена во включенную плату расширения, которая подсоединена к Arduino.

По умолчанию, на SIM-карте нет PIN-кода, однако его можно задать с помощью класса GSMPIN библиотеки GSM.

Также невозможно создать сервер, принимающий входящие запросы из глобальной сети Интернет. Однако SIM-карта от Bluevia позволяет обрабатывать запросы, поступающие от других SIM-карт в пределах сети Bluevia.

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

Подключение платы расширения

Приведенные ниже инструкции относятся, прежде всего, к Arduino Uno. Если же вы используете Arduino Mega, Mega ADK или Leonardo, то следуйте этим инструкциям. Плата расширения GSM на данный момент не поддерживает Arduino Due.

Для начала работы с платой расширения, необходимо вставить SIM-карту в соответствующий разъем. Для этого сдвиньте металлическую скобу вправо и поднимите холдер SIM-карты вверх.


Вставьте SIM-карту в пластиковый холдер лицевой стороной вверх (так, чтобы ее металлические контакты были направлены к плате). Вырез SIM-карты должен находиться возле металлической скобы.


Задвиньте SIM-карту в холдер до упора.


Прижмите холдер с SIM-картой к плате и передвиньте металлическую скобу обратно (влево), чтобы зафиксировать его положение.


После того, как вы вставили SIM-карту, подключите плату расширения к Ардуино, закрепив ее над ним.


Для загрузки программ в плату, подсоедините ее к компьютеру посредством USB-кабеля. После этого для прошивки достаточно нажать кнопку Upload в среде Ардуино. После того, как программа будет загружена в Ардуино, его можно отключить от компьютера и запитать от внешнего источника.


Цифровые выводы 2, 3 и 7 зарезервированы для взаимодействия Ардуино с радио-модемом, поэтому их нельзя использовать в своих скетчах. Взаимодействие между модемом и Ардуино осуществляется посредством выводов 2 и 3 с помощью библиотеки Software Serial. Вывод 7 отвечает за перезагрузку модема.

Когда светится желтый светодиод - это означает, что модем включен и можно пытаться подключиться к сети.

В первых версиях Arduino GSM для включения модема нужно было нажимать кнопку Power. Если у вас одна из таких версий (и она не включается автоматически) - можно припаять перемычку между контактами CTRL/D7 на обратной стороне печатной платы, после чего устройство будет включаться автоматически при подаче питания на Ардуино.


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

Библиотека GSM

Проверка модема и сетевого соединения

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

Подключение к Интернет

Для подключения к сети Интернет недостаточно только SIM-карты и тарифного плана - необходима кое-какая дополнительная информация от вашего мобильного оператора. У каждого провайдера есть определенное имя точки доступа APN (Access Point Name), которая является своего рода мостом между сотовой сетью и глобальной сетью Интернет. Иногда с этой точкой доступа ассоциированы имя пользователя и пароль. Например, имя точки доступа (APN) у Bluevia - bluevia.movistar.es, а имя пользователя и пароль - отсутствуют.

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

В нижеследующей программе показан пример, как можно скачать файл arduino.cc/latest.txt и вывести его содержимое.

Примечание: некоторые мобильные операторы блокируют входящий IP-трафик. Простые клиентские операции (как в данной программе), как правило, работают без проблем..

Голосовые звонки

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


На обратной стороне платы расширения расположены специальные контактные площадки, обозначенные метками M1P и M1N. Это положительный и отрицательный выводы для подключения микрофона. Контактные площадки, обозначенные как S1P и S1N, соответственно, - положительный и отрицательный выходы, к которым подключается динамик.

На странице 43 в документации к модему приведен пример схемы для подключения наушников:




Что дальше?

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


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

Теперь покажу технический минимум для связи ардуино и андроид через беспроводной интерфейс bluetooth.
Из железяк понадобятся:

1. Плата контроллера Arduino (далее по тексту МК) (в моем случае китайская версия Nano с 328 чипом на 5 В и разъёмом micro-USB)
2. Модуль связи bluetooth (далее по тексту BT) (в моём случае НС-05 распаянный на плате адаптере. Эта плата содержит стабилизатор напряжения питания, кнопку, разъём, дискретную рассыпуху)
3. Кабель для подключения к ПК (в моём случае USB — micro-USB)




Для удобства монтажа использовал макетную плату и комплект соединительных проводов "папа-папа".



Контролер BT соединяется с МК по следующей схеме.


Подключение по этой схеме имеет минус, который заключается в следующем — при заливке скетча с ПК в МК провода от выводов TX и RX придётся отключить, потому что они будут мешать процессу обмена данными. Но этот нюанс компенсируется простотой написания кода — можно пользоваться штатными возможностями класса Serial, ничего не меняя в программном коде.

На макетной плате получилось так:



Чтобы протестировать работу полученного устройства, напишем скетч, который при приёме по BT-соединению символа "1" включит встроенный в плату МК светодиод (подключен к цифровому выводу 13), а при приёме символа "0" — отключит.

В Arduino IDE написал такой скетч:


Нужно загрузить вот такую программу:


Далее нужно в неё зайти и нажать кнопку Connnect. Если ВТ на смартфоне отключен, то будет запрос на включение. В списке устройств найти свою плату. При первом соединении будет запрос пароля он "1234" или "0000".



Синий светодиод на плате ардуино загорелся:


Далее аналогичным образом отправил "0":



Всё работает правильно. Первый контакт андроида и ардуино состоялся.

Вопрос дочитавшим. Какой формат изложения интереснее и информативнее текстовой с фото (как здесь) или с заменой части фото на видео (как в прошлых частях)?

Читайте также: