Реклама ⓘ
Главная » Arduino
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Интернет вещей с RemoteXY: конфигурация подключения.

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

Конфигурация подключения

Способы подключения я буду демонстрировать на примере Arduino Nano и NodeMCU v3, в качестве модулей связи будут применяться Bluetooth модуль HC-05, Wi-Fi модуль ESP-01 и встроенный в NodeMCU модуль ESP-12.

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

Bluetooth

Недостатки:

  • малый радиус действия (около 10 метров);
  • зачастую планшеты на android, не имеющие слота под SIM карту, так же не имеют и bluetooth модуля.

Преимущества:

  • мобильное устройство может быть одновременно соединено с несколькими bluetooth устройствами;
  • при этом не теряется связь с сетью интернет при подключении через wi-fi или мобильную сеть.

Wi-Fi как клиент

Преимущества:

  • не теряется связь с сетью интернет при подключении к ней через wi-fi;
  • больший радиус связи, чем у bluetooth;
  • модуль связи wi-fi есть во всех смартфонах и планшетах;
  • можно настроить роутер для доступа к контролеру с любой точки планеты (этот способ связи я не буду рассматривать, так как я им сам не пользовался, а давать непроверенную информацию мне не позволяет моя совесть).

Недостатки:

  • необходим wi-fi роутер как точка доступа.

Wi-Fi как точка доступа

Преимущества:

  • автономная работа без роутера.

Недостатки:

  • невозможно одновременное подключение к контролеру и к сети интернет ни через сотовую связь, ни через другие сети Wi-Fi.

Таким образом у каждого способа связи есть свои преимущества

 

Bluetooth

Соединение по bluetooth настраивается при помощи модулей связи HC-05 и HC-06 для Android и модуля HC-10 для iOS и осуществляется по протоколу UART. Подключаться можно как через Hardware Serial, так и через Software Serial. Рассмотрим оба способа.

bt_hs.png
Hardware Serial

Аппаратные порты протокола UART выведены на 0 (RX) и 1(TX)  выводы для плат UNO, Leonardo, Pro Mini, Nano, MICRO и 0 и 1 (Serial), 19 и 18 (Serial 1), 17 и 16 (Serial 2), 15 и 14 (Serial 3) для платы MEGA.

Чтобы настроить онлайн редактор на bluetooth соединение в панели настроек и свойств необходимо выбрать пункт «конфигурация» и нажать на любой пункт этого меню. Откроется меню конфигурации, в котором поочередно надо установить параметры: тип соединения, используемый контроллер, модуль связи и среда программирования. После необходимо нажать кнопку «Применить» и окно закроется.

config_menu.png

Далее необходимо перейти в пункт «Подключение модуля» в панели настроек и свойств, установить интерфейс подключения «Hardware Serial», скорость обмена и порт.

bt_hs_conf.png

Выпадающий список портов будет содержать только один пункт для всех плат кроме MEGA. Для плат MEGA будет доступно четыре аппаратных порта.

mega_ports.gif

Ввиду того, что аппаратный порт Serial используется для программирования arduino, необходимо отсоединять bluetooth модуль на время программирования. Для плат Mega этот вопрос строит не так остро, так как на выбор предоставлено четыре порта.

Software Serial

bt_ss.png

Подключение через Software Serial позволяет использовать отличные от аппаратных порты. Но с некоторыми ограничениями, которые связанны с поддержкой прерываний.

Так для плат UNO и Nano для RX нельзя использовать вывод 13. Для Mega для RX можно использовать только выводы 8, 10, 11, 12, 13, 14,15, 50, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69. Для Leonardo и Micro для RX можно использовать только выводы 8, 9, 10, 11, 14,15, 16. Так же невозможна работа на скоростях выше 19200 бит/сек. Стоит заметить, что в онлайн редакторе интерфейса все эти ограничения учтены, и сам редактор вам просто не даст поставить значения скорости выше 19200, и предложит на выбор только подходящие выводы с учетом выбранной платы. Так зачем же я упомянул все эти ограничения? Ограничения на выбор портов можно обойти, когда онлайн редактор сгенерирует исходный код, ведь там номера портов указаны черным по белому.

// настройки соединения
#define REMOTEXY_SERIAL_RX 50 #define REMOTEXY_SERIAL_TX 51 #define REMOTEXY_SERIAL_SPEED 9600

Подключение Bluetooth модуля к смартфону. И вот тут-то можно исправить и номера выводов и скорость, и в итоге получить не работающее устройство.  Вообще я не рекомендую править что-либо в исходном коде, начиная от комментария «RemoteXY include library» до «END RemoteXY include». Ну и еще одно ограничение: некоторые библиотеки (например, библиотека Servo) используют те же прерывания, что и Software Serial. Это может привести к непредсказуемой или неправильной работе устройства и потере связи по bluetooth.

Данная инструкция для владельцев устройств, работающих под управлением операционной системы android.

  • Перейти в настройки устройства, выбрать пункт «bluetooth», включить его. Начнется поиск доступных bluetooth устройств.

Screenshot_2017-01-30-02-24-38.png

  • Выбирать необходимое устройство из списка, дождаться запроса пароля, ввести пароль и нажать «ОК»

Screenshot_2017-01-30-02-25-17.png

  • Устройство появится в списке подключенных устройств
  • Перейти в программу RemoteXY, нажать на + в правом верхнем углу

Screenshot_2017-01-30-02-25-59.png

  • Выбрать тип подключаемого устройства

Screenshot_2017-01-30-02-26-05.png

  • Выбрать устройство из списка доступных устройств

Screenshot_2017-01-30-02-26-15.png

  • Устройство подсоединено, сразу открывается интерфейс устройства.

Screenshot_2017-01-30-02-26-22.png

Практическое задание

Создать интерфейс со следующими параметрами:

  • Соединение – bluetooth;
  • Устройство – на ваш выбор (я буду использовать Mega);
  • Модуль – HC-05 (для владельцев устройств с iOS – HC-10);
  • Среда программирования – ArduinoIDE;
  • Интерфейс подключения – Hardware Serial;
  • Порт – Serial (владельцы Mega могут попробовать любой другой доступный порт, я буду использовать Serial 1);
  • Скорость обмена – 9600.

Разместить на рабочем поле редактора кнопку, свойства кнопки не менять. Исходный код скомпилировать в ArduinoIDE и загрузить в контроллер.

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

Вторая часть задания: изменить проект так, что бы он использовал Software Serial, использовать выводы на свое усмотрение.

Wi-Fi как точка доступа

Подключение модуля ESP-01 производится аналогично модулю Bluetooth, так как оба вида модулей работают по протоколу UART. Подключение абсолютно аналогично, как для Software Serial, так и для Hardware Serial, со всеми ограничениями, описанными в разделе о подключении по Bluetooth.

  

Hardware Serial

 

Software Serial

Исключение составляет конфигурация подключения. Рассмотрим подключение модуля ESP-01 к arduino Mega2560 в качестве точки доступа.

В выпадающем меню «Подключение модуля» кроме пунктов интерфейс подключения, порт Serial/контакты TX/RX и скорость обмена появляются еще четыре пункта, характерных только для подключения устройства как точки доступа.

Имя (SSID) – имя точки доступа, к которой будет подключаться смартфон. Доступ к контроллеру может быть защищен паролем, если не стоит галочка «открытая точка». Пункт «Порт» можно не трогать, так как он по умолчанию устанавливается таким же в программе RemoteXY, его смена может потом привести к неожиданным последствиям при подключении к контроллеру (если пользователь забудет, какой порт указал при наладке устройства).

wf_ss_conf.png

Отдельно стоит коснуться конфигурации устройств, построенных на модуле ESP-12: WeMos D1, D1 R2, D1 mini и NodeMCU v2, v3. Так как модуль связи встроен в эти платы, в меню «Подключение модуля» отсутствуют настройки интерфейса подключения.

NodeConf1.png

 

Стоить заметить, что на изображении выше, подключение питания модуля ESP-01 подключено к выводу 3V3 на плате arduino nano. Тем не менее, мощность стабилизатора, установленного на плате nano, может не хватать для работы модуля ESP-01. Поэтому необходимо подключать его к внешнему источнику питания напряжением 3,3 вольта.

Подключение Wi-Fi модуля в режиме точки доступа к смартфону.

Для подключения Wi-Fi модуля в режиме точки доступа к смартфону необходимо:

  • Перейти в настройки смартфона – беспроводные сети –Wi-Fi и убедиться, что созданная точка доступа находится в списке доступных устройств

Screenshot_2017-01-31-01-48-18.png

  • Выбрать необходимую точку доступа и, если требуется, ввести пароль, нажать кнопку «подключить»

Screenshot_2017-01-31-23-16-42.png

  • Войти в программу RemoteXY и нажать + в правом верхнем углу

Screenshot_2017-01-30-02-25-59.png

  • Выбрать «Wi-Fi точка доступа»

Screenshot_2017-01-31-23-09-02.png

  • В появившемся списке доступных сетей выбрать необходимую сеть

Screenshot_2017-01-31-23-12-47.png

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

Screenshot_2017-01-31-23-34-07.png

  • Устройство подсоединено, сразу открывается интерфейс устройства.

Практическое задание

Закрепим полученные знания на практике.

Первая часть задания: создать соединение со следующими параметрами:

  • Соединение - Wi-Fi access point;
  • Устройство – на ваш выбор (я буду использовать Mega);
  • Модуль – ESP8266 Wi-Fi module;
  • Среда программирования – ArduinoIDE;
  • Интерфейс подключения – Hardware Serial;
  • Порт – Serial (владельцы Mega могут попробовать любой другой доступный порт, я буду использовать Serial2);
  • Скорость обмена – 115200;
  • Имя (SSID) – оставить по умолчанию;
  • Пароль – оставить по умолчанию;
  • Порт – оставить по умолчанию.

Разместить на рабочем поле редактора кнопку, свойства кнопки не менять. Исходный код скомпилировать в ArduinoIDE и загрузить в контроллер.

Далее необходимо подключить смартфон к созданной точке доступа, подключить программу RemoteXY к устройству. Если при нажатии на кнопку загорается светодиод на плате контроллера, значит всё сделано правильно.

Вторая часть задания: изменить проект так, что бы он использовал Software Serial, использовать выводы на свое усмотрение.

Третья часть задания: изменить проект для подключения платы NodeMCU.

Wi-Fi как клиент

Режим работы в качестве клиента требует, что бы устройство подключалось к существующей точке доступа Wi-Fi. Возможен доступ к контроллеру, как из локальной сети, так и по сети интернет. Для подключения к контроллеру из сети интернет возможно лишь при правильной настройке маршрутизатора. Этот способ подключения я не буду рассматривать, рассмотрю лишь способ подключения по локальной сети.

При этом физически подключение модуля ESP-01 в качестве клиента существующей сети Wi-Fi к arduino не отличается от рассмотренного выше примера подключения модуля ESP-01 в качестве точки доступа, со всеми ограничениями, рассмотренными ранее.

Пример конфигурации для arduino и ESP-01

esp_conf.png

 

Software Serial

 Hardware Serial

В выпадающем меню «Подключения модуля», кроме уже знакомых пунктов интерфейса подключения, порта Serial, контактов, порта и скорости обмена, появились пункты характерные для подключения модуля ESP-01 в качестве клиента:

  • Имя (SSID) - имя точки доступа, к которой необходимо подключить модуль ESP-01
  • Пароль - пароль точки доступа, к которой необходимо подключить модуль ESP-01 (если пароль не используется, то необходимо оставить строку пустой)

Так же приведу конфигурацию для платы NodeMCU v3.

tcp_node1.png

Подключение Wi-Fi модуля как клиента существующей точки доступа Wi-Fi к смартфону.

Первым делом надо узнать IP-адрес модуля ESP-01 в локальной сети. Для этого необходимо использовать сканер сети. Я использую программу Network Scanner для android.

Приведу пример работы с этой программой:

  • Открыть программу Network Scanner

net_scan.png

  • Дождаться окончания сканирование локальной сети

2017_02_01_00_23_08.png

  • Выбрать необходимое устройство из списка

2017_02_01_00_22_30.png

Далее необходимо запустить программу RemoteXY и дальнейшие шаги выполнять в ней:

  • Нажать + в верхнем правом углу

Screenshot_2017-01-30-02-25-59.png

  • Из списка выбрать «Ethernet»

Screenshot_2017-02-01-00-33-00.png

  • Ввести IP-адрес, полученный в программе Network Scanner

Screenshot_2017-02-01-00-33-22.png

  • Устройство подсоединено, сразу открывается интерфейс устройства.

Практическое задание

Закрепим полученные знания на практике.

Первая часть задания: создать соединение со следующими параметрами:

  • Соединение - Ethernet TCP/IP;
  • Устройство – на ваш выбор (я буду использовать Mega);
  • Модуль – ESP8266 Wi-Fi module;
  • Среда программирования – ArduinoIDE;
  • Интерфейс подключения – Hardware Serial;
  • Порт – Serial (владельцы Mega могут попробовать любой другой доступный порт, я буду использовать Serial2);
  • Скорость обмена – 115200;
  • Имя (SSID) – имя вашей точки доступа;
  • Пароль – пароль вашей точки доступа;
  • Порт – оставить по умолчанию.

Разместить на рабочем поле редактора кнопку, свойства кнопки не менять. Исходный код скомпилировать в ArduinoIDE и загрузить в контроллер.

Далее необходимо подключить смартфон к той же сети что и контроллер, просканировать локальную сеть для получения IP- адреса, подключить программу RemoteXY к устройству. Если при нажатии на кнопку загорается светодиод на плате контроллера, значит всё сделано правильно.

Вторая часть задания: изменить проект так, что бы он использовал Software Serial, использовать выводы на свое усмотрение.

Третья часть задания: изменить проект для подключения платы NodeMCU.

P.S. Использование смартфона в качестве точки доступа

Все современные смартфоны могут выступать в качестве точки доступа Wi-Fi. В начале этой главы я рассматривал достоинства и недостатки различных способов подключения устройства к смартфону. Так для способа Wi-Fi как точка доступа я указал недостаток: «невозможно одновременное подключение к контролеру и к сети интернет, ни через сотовую связь, ни через другие сети Wi-Fi». Использование смартфона, как точки доступа Wi-Fi, позволяет обойти это ограничение, при этом соединение между контроллером и смартфоном будет прямое, а доступ к сети интернет посредством сотовой связи останется доступным.

Для подключения контроллера к смартфону необходимо (все настройки смартфона показаны на примере смартфона под управлением ОС Android версии 5.1.1):

  • Перейти в настройки смартфона, далее «точка доступа и модем» , «мобильная точка доступа»;

2017_02_01_02_09_33.png

 2017_02_01_02_09_38.png

  • Включить точку доступа, название сети и пароль использовать при настройке подключения модуля в редакторе интерфейса;

2017_02_01_02_09_43.png

  • Загрузить исходный код программы в контроллер, дождаться, когда модуль ESP-01 появится в списке подключенных устройств;

2017_02_01_02_11_41.png

  • Выбрать модуль ESP-01 из списка, появится окно с данными подключения, использовать IP-адрес в программе RemoteXY.

2017_02_01_02_15_36.png

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

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

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

Теги:

Опубликована: 0 0
Я собрал 0 Участие в конкурсе 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (4) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
Сергей Кузьмин #
Все то же самое делаю с wi fi точкой доступа. Но при подключении в приложении ругается на неверный ip адрес. Как быть?
Ответить
0
Leonid Gorchakov #
Хотел бы научится работать с модулями ESP-12: WeMos D1, D1 R2, D1 mini и NodeMCU v2, v3.-у меня такие есть. Но в закладках редактора я не обнаружил таких. А у вас они есть. Как вы их получили?
Ответить
0
Leonid Gorchakov #
Оказывается, чтобы получить эту плату нужно выбирать по производителю и тогда плата появится
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Arduino UNO
Arduino UNO
Бокс для хранения компонентов Модуль измерения тока на ACS712 (30А)
вверх