Arduino Bluetooth Control
Сокращенное название — ABC. Управляет и контролирует основные возможности API. Используется в мониторинге контактов через Bluetooth. Работает в автономном режиме. Приобщение к работе производит строго из Ардуино.
Инструменты, используемые в процессе:
- Metrics – передает показатели о сбоях и изменениях. Те, свою очередь, приходят на телефон в виде сообщения об остановке работы. Это подобие функции, где встряхнув гаджет можно отправить данные.
- Клавиши с указателями – служат для отправки информации.
- Терминал – варьирует информацией с временными показателями по назначению.
- Accelerometer – управление жестами. Смартфон превращается в механизм для регулирования машины.
- Голос – создает речевые команды. Доступно голосовое общение с роботом.
- Кнопки – функционируют 6 штук в горизонтальном положении. Используются для доставки информации на Arduino.
Управление проектами в дистанционном и удаленном виде стало частой необходимостью. ABC подходит для этих целей на 100%. UART (Serial) предназначается для беспроводного соединения Ардуино и PC. Данное подключение не нуждается в библиотеках и схемах.
Установка приложения NODE.JS для генерации данных
Установим менеджер NVM, который позволяет быстро устанавливать и переключать версии NODEJS
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
1 | curl-o-https//raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash |
(в команде выше указана последняя версия NVM на момент написания статьи — январь 2021 года, лучше сходить на и взять актуальную версию на момент установки)
Чтобы nvm заработал необходимо заново войти в терминал или выполнить команду
source /home/ubuntu/.bashrc
1 | sourcehomeubuntu.bashrc |
Далее установим LTS версию NODEJS
nvm install —lts
BT Voice Control for Arduino
Главное предназначение данного софта – передача ультразвуковых сигналов сквозь преобразователи. Они соединены с платформой Arduino андроид благодаря Bluetooth порту. Главный модуль в работе — HC-05. Он передает интервал между объектами. Данные отображаются в смартфоне и на Hub диске портала, через это приложение.
BT Voice Control – это голосовое управление Ардуино. Владеет функцией распознавания команд: forward, back, left, right. Чувствительные датчики переадресовывают расстояние в объект Arduino. Далее при помощи модуля Bluetooth HC-05 направляет его в приложение. Программа сэкономит время, тратящееся на набор команд вручную.
Download the mobile app and connect to our Arduino
Go to the section of the site «Download mobile application» and download to your smartphone or tablet the application. Of course your smartphone/tablet should have a built Bluetooth.
Run the application. Turn on Bluetooth, if it is off. Automatically begins searching for devices. All devices found will be listed.
Default modules HC-04 (05/06/07) are programmed name «INVOR» or «HC-04» («HC-05», «HC-06»). If the list of devices there is this name — it is your devise. We click on it. After some time required for connection to the module, you will be prompted to enter the password for pairing. The modules of HC-04 (05/06/07) have programmed password is «1234». Enter it. And end, we have opened our interface with a big button on the full screen!
Click on this button and look, as LED is blink on the board Arduino! Quite simply, it works!
Прошивка базової конфігурації
У папці Tools є утиліта для прошивки та безпосередньо сам файл прошивки. Для більшості користувачів цього є цілком достатньо. Виконавши декілька простих кроків, ви зможете перетворити плату у радіоапаратуру для керування моделями.
Покрокова інструкція
- Підключаєте плату до USB-порту вашого комп’ютера.
- Встановлюєте драйвери у відповідності до інструкцій виробника плати
Драйвер CH340 з офіційного сайту можна скачати тут https://docs.wemos.cc/en/latest/ch340_driver.html
- Заходите у диспечер пристроїів і перевіряєте, чи всі драйвери встановлено і чи ваша плата розпізнається системою.
-
Відкриваєте панель керування комп’ютером.
-
Переходите на пункт «Диспетчер пристроїв».
Ймовірно, ваша плата буде називатися ‘USB-Serial CH340 (COM_)’ -
Запамятовуєте, який номер порта отримала ваша плата (у моєму випадку — №3)
- Запускаєте Tools/1 upload.bat
- Після старту скрипт запитає номер порта, до якого під’єднано вашу плату
- Вводите номер (тільки цифру), натискаєте Enter
- Чекаєте, поки завершиться процеc завантаження
Все — плата прошита.
З цього моменту нею можна користуватись.
Якщо ж ви бажаєте змінити деякі налаштування (діапазон повороту сервоприводу, стартову швидкість, яскравість світла тощо), то додатково необхідно завантажити в пам’ять контроллера модуль налаштувань.
IoT Wi-Fi контроллер
Интерфейс этого приложения показывает все операции ввода и вывода на Ардуино. Переключение GPIO и показания АЦП управляют гаджетом в реальном времени.
Добавить WI-Fi к устройствам возможно с помощью IoT контроллера. Он имеет 8-битный микроконтроллер и IMU (Inertial Measurement Unit). Соединение защищено однокристальным крипто-ускорителем ECC 608.
Уникальный интерфейс IoT Wifi Controller отображает контакты в реальном времени с подробной информацией, благодаря уровню GPIO. Показатели ADC также можно подключать к плате с помощью телефона (Айфона) или маршрутизатора.
Не реализованные функции:
- расширенная подсветка анаграмм;
- автозаполнение;
- руководства для объединения других приложений.
Базы Uno R3 и FTDI в данное время поддерживают рабочее состояние платы Arduino. В процессе находится разработка Mega, Due и Nano. Используемые в обучении платы Arduino — USB кабель OTG не влетит в копеечку. Стоимость до 2 долларов.
Программа «умный дом» работает при помощи платформы Arduino. В данном случае используется данный андроид и сама платформа. Для работы совместили домашние и веб серверы. Результат превзошел ожидания. Теперь при помощи мобильного устройства можно управлять системой целого дома: включать и выключать свет, электрические приборы, закрывать двери, окна и другое.
В статье рассмотрены 10 обзорных приложений — для платы «Ардуино». В процессе работы и изучения не возникнет проблем с программированием Windows и в других. Затруднения решаются подключением к пинам. Те в свою очередь аппаратно запрограммированы UART. Далее используются традиционные библиотеки.
Подключение через Software Serial
Позволяет подключить модуль к произвольным контактам микроконтроллера. Какие контакты использовать, необходимо указать в панели настроек подключения модуля. Так же в панели настроек указывается скорость передачи данных для порта. Модуль ESP8266 по умолчанию настроен на скорость 115200 бит/сек. Для работы через SoftwareSerial необходимо предварительно настроить скорость передачи данных ESP8266 на более низкую скорость. Стабильная работа модуля возможна на скорости не более 19200 бит/сек. Для изменения скорости работы последовательного интерфейса модуля, необходимо его подключить к консоли для возможности выполнения AT команд. Скорость работы модуля может быть изменена при помощи AT команды «AT+UART_DEF=19200,8,1,0,0».
Есть некоторые ограничения на использование контакта RX для плат Arduino. Ограничения связаны с поддержкой прерываний на соответствующих контактах микроконтроллера.
- Arduino UNO и Nano для RX нельзя использовать контакт 13(LED);
- Arduino Mega и Mega2560 для RX можно использовать только следующие контакты: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8(62), A9(63), A10(64), A11(65), A12(66), A13(67), A14(68), A15(69);
- Arduino Leonardo и Micro для RX можно использовать только следующие контакты: 8, 9, 10, 11, 14, 15, 16;
Так же при использовании SoftwareSerial вы должны принять следующие ограничения:
- Нет возможности работы на больших скоростях передачи данных. Не рекомендуем использовать скорость соединения более 19200 бит/сек.
- Некоторые библиотеки, которые так же используют прерывания, могут работать не корректно, или же их использование может сделать неработоспособным данный способ подключения. Например библиотека Servo будет подергивать сервоприводы.
Пример подключения модуля ESP8266 для SoftwareSerial к контактам 2(RX) и 3(TX) на рисунке
Обратите внимание, что необходимо контакты подключить перекрестием, т.е. контакт Arduino 2(RX) к контакту TX модуля, и контакт 3(TX) к контакту RX модуля
Шаг 6. Загрузите скетч в Arduino.
Скетч загружается в Arduino обычным способом. Однако из за того что модуль ESP8266 подключен к контактам 0 и 1, программирование становится невозможным. Компилятор будет показывать ошибку.
Перед программированием отсоедините провода идущие к ESP8266 от контактов 0 и 1. Произведите программирование. Затем верните контакты на место. Нажмите кнопку сброса Arduino.
Примечание: Первый признак того, что программирование прошло успешно, это мерцание синего светодиода на модуле ESP8266 в течении полсекунды сразу после сброса. Мерцание синего светодиода означает обмен данными между Arduino и ESP8266. В эти полсекунды Arduino производит настройку ESP8266 для работы в качестве точки доступа.
Налаштування
Для налаштування вам необхідно на телефоні під’єднатися до Wi-Fi мережі Wemos_00000000 (замість нулів буде серійний номер вашої плати).
Стандартний пароль — 12345678. Ви можете його змінити за вашим бажанням.
Після підключення відкриваєте веб-переглядач і переходите за адресою 192.168.4.1 — це адреса для налаштувань.
Налаштування точки доступу
- SSID — назва вашої моделі у Wi-Fi мережі. Це може бути, наприклад, номерний знак, або ваш нікнейм…
- PASSWORD — пароль доступу. Типово встановлено 12345678
Налаштування сервоприводу
- center — Положення сервоприводу при русі прямо, в градусах
- left — Положення сервопривду при вивороті коліс до упору в ліво, в градусах
- right — Положення сервопривду при вивороті коліс до упору в право, в градусах
- Stearing potenciometer linearity — лінійність керма
- Linear — кермо лінійне. Відхилення керма на 1 градус повертає колеса на 1 градус.
- Y = X^2/X кермо не лінійне. При позиціях, близьких до нуля, на один градус зміни положення керма колеса повертаються менше.
При позиціях, близьких до крайніх положень, колеса повертаються швидко. На високих швидкостях це дозволяє маневрувати плавніше.
Налаштування тягового мотора
- Minimum PWM speed — мінімальне значення ШІМ, яке необхідне для того, щоб мотор міг зрушити модель з місця.
- Speed potenciometer linearity — лінійність значень потенціометра.
- Linear — потенціометр лінійний.
- Y = X^2/X Потенціометр не лінійний. При позиціях близьких до нуля на одиницю зміни положення потенціометра швидкусть наростає повільно.
При позиціях, близьких до максимальних положень, швидкість наростає швидко.
Налаштування світла
- Head light PWM — значення ШІМ для переднього світла фар
- High light PWM — значення ШІМ для дальнього світла фар
- Parking light PWM — значення ШІМ для габаритних стоянкових вогнів
- Turn light PWM — значення ШІМ для поворотів та аварійної світлової сигналізації
- Stop light duration — проміжок часу, на який включається стоп-сигнал після зупинки моделі
- Back light timeout — проміжок часу, через який вимикається світло заднього ходу після зупинки моделі
- Back light PWM — Значення ШІМ для світла заднього ходу
Connection via Software Serial
It allows to connect the module to an arbitrary microcontroller pins. The pins used must be select in the module interface settings of editor. Also in the settings must be select the baud rate for serial port. ESP8266 default configured to 115200 baud. To work through SoftwareSerial, must configure the transmission speed ESP8266 to a lower speed. Stable operation of the module is possible at a speed of no more than 19200 baud. To change the speed of module serial interface, must to connect it to the console to the possibility of the AT commands. Module serial interface speed can be changed with the AT command «AT+UART_DEF=19200,8,1,0,0».
There are some limitations on the use of the RX pin for Arduino boards. Limitations associated with do not support to pins interrupt of the microcontroller.
- On Arduino RX doesn’t work on pin 13;
- On Mega and Mega2560 only the following can be used for RX: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8(62), A9(63), A10(64), A11(65), A12(66), A13(67), A14(68), A15(69);
- On Leonardo and Micro only the following can be used for RX: 8, 9, 10, 11, 14, 15, 16;
Also, when using SoftwareSerial you should take the following limitations:
- No ability to work at high baud rates. It is not recommended to use a baud rate of more than 19200.
- Some libraries, which also uses interrupt may not work correctly. For example Servo library, the servos will twitch.
Example of ESP8266 module connecting via SoftwareSerial by pins 2(RX) and 3 (TX) on the picture. Please note that you must connect to pins the cross hairs, pin 2(RX) of Arduino to TX of ESP8266 module and pin 3(TX) to the RX pin of module.
Качаем приложение и подключаемся к нашему Arduino
Заходим в раздел сайта «Скачать мобильное приложение» и загружаем на смартфон или планшет приложение. Конечно же ваш смартфон/планшет должен иметь встроенный Bluetooth.
Запускаем приложение. Включаем Bluetooth, если он не включен. Автоматически начинается поиск устройств. Все найденные устройства будут показаны в списке.
По умолчанию модули HC-04 (05/06/07) имеют запрограммированное имя «INVOR» или «HC-04» («HC-05″,»HC-06»). Если в списке устройств появилось такое — то это ваше. Щелкаем в него. После некоторого времени, необходимого на соединение с модулем, вам будет предложено ввести пароль для сопряжения. Опять же модули серии HC-04 (05/06/07) имеют запрограммированный пароль «1234». Вводим его. И ВУА-ЛЯ, нам открылся наш интерфейс с большущей кнопкой на весь экран!
Нажимаем на эту огромную кнопку и наблюдаем, как загорается светодиод на плате Arduino! Все просто, все работает!
https://youtube.com/watch?v=A2a9Ow41kiU
Step 6: Load the sketch into the Arduino
The sketch is loaded into the Arduino in the normal way. However, programming is not possible because the ESP8266 module is connected to pins 0 and 1, the compiler will show an error.
Before programming, disconnect the wires going to the ESP8266 from terminals 0 and 1. Fulfill programming. Then place the contacts back. Press the Arduino reset button.
Notice. Flickering of the blue LED on the ESP8266 module for half a second immediately after the reset is the first sign that the programming was successful. Blinking of the blue LED means the data exchange between the Arduino and the ESP8266. In these half-seconds, the Arduino configures the ESP8266 to work as an access point.
Virtuino
Программа для Андроид, предназначенная для мониторинга сенсора. Управляет электро устройствами через Bluetooth, Wi-Fi или Интернет.
При помощи Виртуино создаются:
Приложение способно совмещать несколько проектов в один. Управляет отличными платформами единовременно через Bluetooth и Wi-fi. Бесплатно в использовании. Относится к подкатегории System Maintenance. Есть возможность проектировать внутреннее оформление с разной визуализацией.
К ним относятся:
- светодиоды;
- переключатели;
- диаграммы;
- счетчики;
- аналоговые приборы.
Обучаться Virtuino можно по учебным пособиям и видео урокам с библиотечной поддержкой. Пока приложение работает в режиме английского языка.
ESP-07
Особенности этого модуля — керамическая антенна и разъем для внешней антенны, металлический экран.
Подключение к IoT
Аппаратная часть
Работа с этим модулем, к сожалению, прошла не слишком гладко. Ни один из возможных вариантов подключения не сработал, и я, уже отчаявшись, решила удалять его описание из статьи. Но тут мне дали новый модуль и сказали попробовать еще раз — о чудо, он заработал с первого раза! В чем было дело и как сломался первый модуль, который я мучила, — неизвестно, но скорее всего он был убит нещадной статикой. Мораль этого лирического отступления такова — если у вас что-то не заработало по инструкции, написанной ниже, не вините инструкцию — сначала прозвоните и проверьте все контакты, а потом попробуйте на другом модуле.
1) Собираем схему
ESP-07 |
USB-Serial |
VCC |
VCC |
CH_PD (рекомендуется через резистор) |
VCC |
TX |
RX |
RX |
TX |
GND |
GND |
GPIO 15 (рекомендуется через резистор) |
GND |
GPIO 0 — сначала не подключен, но будет использоваться для перевода в режим программирования далее, поэтому к нему уже подведен провод |
|
все остальные контакты не подключены |
RTS, CTS — не подключены |
На фото этого и следующего модуля уже можно заметить резисторы. После неведомой поломки уже решила перестраховаться и поставила килоомники, хотя и без них все должно работать.
2) Переводим в режим программирования (необходимо каждый раз выполнять перед прошивкой модуля)
2.1) Отключаем питание от модуля2.2. Подключаем пин GPIO 0 к GND
2.2) Подключаем пин GPIO 0 к GND
ESP-07 |
USB-Serial |
VCC |
VCC |
CH_PD |
VCC |
TX |
RX |
RX |
TX |
GND |
GND |
GPIO 15 |
GND |
GPIO 0 |
GND |
все остальные контакты не подключены |
RTS, CTS — не подключены |
2.3) Подключаем модуль к питанию
2.4) Железо готово, приступаем к программной части.
Программная часть
1) Выбираем плату: Tools (Инструменты) -> Board(Плата) Generic ESP8266 Module.
2) Вставляем подготовленный код.
3) Задаем данные для подключения Wi-Fi и идентификатор своего объекта на платформе.
4) Компилируем и загружаем скетч на плату.
5) Для обычной работы модуля (не для режима прошивки) пин GPIO 0 должен быть свободен, поэтому отключаем его от GND.
6) Переподключаем питание ESP-07 (например, вытаскиваем и вставляем обратно адаптер).
7) Видим появление данных на платформе.
В Китае
Код прошивки
Для прошивки всех используемых ниже модулей используем один и тот же код.
Основные функции:
-
Установка Wi-Fi соединения
-
Подключение к объекту на платформе Rightech IoT Cloud по протоколу MQTT
-
Отправка рандомных значений по температуре («base/state/temperature») и влажности («base/state/humidity») каждые 5 секунд (PUB_DELAY)
-
Получение сообщений о переключении света («base/relay/led1»)
Работоспособность кода будем проверять на платформе Rightech IoT Cloud, именно поэтому в качестве адреса MQTT-брокера указан dev.rightech.io. Идентификаторами клиентов служат идентификаторы объектов, созданных на платформе. Под каждую проверку я завела на платформе отдельный объект, именно поэтому во всех скринах кодов, которые будут далее представлены, отличается только строка <ric-mqtt-client-id>.
Прим. — Можно подключаться и к одному и тому же объекту, тогда можно использовать один и тот же код для прошивки всех плат без изменений, однако следите, чтобы в таком случае платы не подключались к одному и тому же объекту одновременно, иначе случится коллизия.
Bluetooth Controller 8 Lamp
Платформа Arduino была создана в 2003 году. Всеобщего внимания она достигла, благодаря низкой цене, а также многомилионному сообществу, направленного на углубленное изучение программирования. Микропроцессоры и микроконтроллеры поставляются с платами. Самыми популярными считаются Arduino. Итальянские модели имеет много функций по расширению и исследованию встроенных Pro систем.
Bluetooth Controller 8 Lamp создан для регулировки функций Ардуино 8 канальным контроллером. Работает при помощи модулей Bluetooth HC-05, HC-06 и HC-07. 8 кнопочный интерфейс соответствует каждой лампочке.
Метод активен только в пределах видимости. В сравнении с другими беспроводными способами — этот самый дешевый. Комплектующие платы стоят менее 1 доллара. Для работы подходят даже подержанные варианты. Статичные девайсы, используя инфракрасный контроллер в потолочных светодиодных лентах, решают легко проблемы, возникшие в процессе.
Последние штрихи
Итак, смотрим что получилось:
https://example.com/ — это ваш сайт заглушка, можно разместить что-то полезное, положив html файлы в conf/nginx/www
https://example.com/manager/rabbit/ — интерфейс управления RabbitMQ, доступ по умолчанию guest пароль guest — пароль нужно сразу же сменить — помните про китайцев! Создание новых пользователей MQTT на вкладке Admin. Если укажете TAG administrator, то этот пользователь сможет логиниться в WEB интерфейс RabbitMQ и управлять другими пользователями. Если нужно только подключение по MQTT то задавайте TAG None. Создайте нового пользователя, которого прописали в конфиге Telegraf, перезапустите Telegraf. Каждому пользователю после создания нужно дать права на доступ к Virtual host (это внутренний термин RabbitMQ, наш единственный Virtual host это «/»), жмите Set permission.
https://example.com/manager/grafana/ — самое интересное — Grafana. По умолчанию там только один источник данных — Prometheus. Из него берутся данные для мониторинга RabbitMQ и VPS. Нужно создать еще один источник данных InfluxDB — туда Telegraf будет складывать данные из всех топиков, полученные по MQTT. Вообще, в Grafana все интуитивно понятно да и в интернете множество инструкций. Смотрите готовые dashboards, импортируйте чужие и создавайте свои.
https://example.com/manager/portainer/ — WEB интерфейс для управления контейнерами. Тоже нужно задать нормальный пароль после первого входа (admin admin). Можно останавливать/перезапускать контейнеры, смотреть логи каждого контейнера и многое другое — смотрите, изучайте. Именно здесь найдете причину в логах, если что-то не работает.
Приложение Blynk
Этакий разработчик идей, имеющий открытый вход к запуску на платформе Ардуино. Главное требование в использовании – наличие интернета: Wi-Fi или мобильный трафик. Только в этом случае Blynk будет готов к выполнению. Начать использование можно спустя несколько минут, после окончания настроек. Программой поддерживается АО по выбору пользователя.
Основные функции приложения Blynk заключаются в управлении устройствами при помощи удаления и добавления протоколов HTTP, а также запросов GET и POST. Значения параметров можно обновлять и получать. Запросы обновляются в самом приложении.
Вариативность – важная точка программы. Имея связь с работающими платформами, можно соединиться с сервером любым удобным способом. Данный инстинктивный портал обладает простотой в использовании над проектом. Библиотека постоянно обновляется для всех приложений Arduino Blynk.
Клиентов, желающих включать кофе машинку со своего смартфона, заинтересует это приложение. Это, пожалуй, единственный сервис с подобными возможностями. И не смотря на, то, что он практически безлимитный, является трудным Openhab. В сравнении с другими сервисами обладает быстрой скоростью при запуске.
Функция loop
Функция loop() имеет вызов обработчика RemoteXY_Handler (). Не удаляйте этот код. Обработчик RemoteXY_Handler должен вызываться в каждом цикле программы. Вызов необходим для того, что бы библиотека RemoteXY могла обработать очередную порцию данных об элементах управления, переданных со смартфона и предать на смартфон новые данные о состоянии элементов индикации.
В функции loop вы реализуете программу, решающую вашу задачу с использованием графического интерфейса. Для взаимодействия с графическим интерфейсом вы должны использовать поля структуры RemoteXY, которые соответствуют элементам управления и индикации интерфейса. Для того, что бы узнать состояние элемента управления, вы должны причитать поле данных, соответствующее этому элементу. Что бы изменить состояние элемента индикации на графическом интерфейсе, вы должны записать новое значение в поле структуры RemoteXY, соответствующее этому элементу.
Внимание. Не рекомендуется в процедуре loop использовать задержки delay () и другие
Если обработчик RemoteXY_Handler не сможет во время передать необходимую информацию на смартфон, произойдет разрыв соединения.
Пример кода для взаимодействия с элементами управления и индикации
Подключаем модуль Bluetooth
Теперь нам необходимо физически подключить Bluetooth модуль к плате Arduino. Модуль HC-04 имеет 4-е контакта (они подписаны прямо на плате). Два из них — питание модуля. Их подключаем стандартно к питанию +5V на плате Arduino.
Остальные два — это шина UART интерфейса: RX и TX, отвечающие за прием и передачу данных. Контакт RX необходимо подключить к пину на Arduino, который у нас имеет функцию TX, а контакт TX к пину на Arduino, имеющему функцию RX. Как же узнать, какие пины на Arduino отвечают за RX и TX связи с модулем? Очень просто.
В коде скетча имеются два определения пинов, к которому подключен модуль Bluetooth. Найдите эти строки кода. Они как раз и определяют, какие пины будут использованы при настройке SerialSoftware:
Итак, контакт RX модуля Bluetooth подключаем к пину 3 платы Arduino, а контакт TX — к пину 2 платы. Конечно же вы можете изменить номера пинов по своему усмотрению (читайте документацию на SerialSoftware, так как не все пины могут быть использованы в программной эмуляции UART).
Вот теперь можно залить исходный код в микроконтроллер. ЗАГРУЖАЕМ!
Connection via Hardware Serial
It allows to connect the module to the microcontroller pins, supporting one of the hardware serial ports. For different Arduino boards are different ports and contacts. Hardware serial allows to work motule at a maximum connection speed of 115200 baud. The baud rate for Arduino is selected in the module interface settings of editor. ESP8266 must be to pre-configured to work at the same speed as the Arduino. The baud rate setting of module can be made via AT commands. Next Arduino serial ports are available:
- Arduino UNO and Nano: Serial (RX-0, TX-1);
- Arduino MEGA and MEGA2560: Serial (RX-0, TX-1), Serial1 (RX-19 и TX-18), Serial2 (RX-17 и TX-16), Serial3 (RX-15 и TX-14);
>Which port to use, and therefore the pins should be connected to the module, you must select in interface settings of editor. It should also be borne in mind that for Arduino boards Serial port enabled for the microcontroller programming, and if you decide to use this port, you must disconnect the ESP8266 module when programming it. A good solution is to use the boards Arduino MEGA any port other than Serial.
Example of HC-05(06) module connecting via HardwareSerial by pins 0(RX) and 1(TX) on the picture. Please note that you must connect to pins the cross hairs, pin 0(RX) of Arduino to TX of ESP8266 module and pin 1(TX) to the RX pin of module.
Компоненты умного дома
Теперь я хотел бы подробнее остановится на компонентной схеме умного дома. Все компоненты уместились в следующей схеме:
Компоненты умного дома
Слева-направо: сначала идет ваше устройство на ESP8266, далее это прошивка ESP Easy (ее ставим на ESP8266), прошивку подключаем к MQTT-брокеру (например WQTT.ru или свой брокер на своем сервере), веб-сервис WQTT.ru уже имеет подключение к Алисе (на своем брокере это подключение придется сделать самостоятельно, что в общем несложно, потому что это наша привычная работа программиста), далее сервер логики Node RED, который подключен к MQTT-брокеру и управляет всем умным домом. И в конце можно поставить Homebridge для связи умного дома с Homekit.
Как вы наверное догадались, homebridge с голосовыми помощниками не обязательные компоненты. Главное это MQTT-брокер и Node RED. Эти два сервера вам обеспечат практический полный функционал и доступ к настройке любой логики.
Думаю общая картинка умного дома уже появилась и можно переходить к самим компонентам в отдельности. В этой статье рассмотрим MQTT-брокер и само устройство. В следующих статьях будем рассматривать настройку прошивки ESP Easy и Node RED. Этого будет достаточно, чтобы запустить простейший вариант умного дома.
В качестве устройства у нас будет светодиод, который встроен в ESP8266 и сидит на пине GPIO2. Этот светодиод будет имитировать освещение в гостиной например. Также подключим кнопку, которая будет включать этот светодиод. И еще в нашем устройстве будут два датчика: DHT11 и BMP085 (влажности и барометр с термометром).
В логику (которая будет хранится в Node RED) заложим управление кнопкой и светодиодом, оповещение по телеграму о резком похолодании в комнате и вывод значений датчиков в Homekit и Алису.
Generate source code
Our interface design is ready. Before you get the source code for our microcontroller, you must specify for which platform we want to get it. Our platform — Arduino. To communicate with the Bluetooth module will use SoftwareSerial. This will give us an opportunity to connect the Bluetooth module to virtually any microcontroller pins. This setting must be selected in project configuration field.
Now press the button «Get source code». If you are not registered, you must register to get a project source code.
On the download page of the source code is the code of the sketch program for the Arduino microcontroller. This code implements a graphical management interface that was created in the editor. To compile this sketch also need to install the RemoteXY library. Download library by link and install in the Arduino IDE using instruction.
Click the «Download» link and download the source code of a zip archive. Unzip it and open the file project.ino in the IDE Arduino.
Note that in the project (function main) already as an example our button connected to the pin 13. This pin is standard for Arduino board is a LED that allows testing program. Them we are going to blink. We do not need to fix anything in this part of the code.
We generally do not need to be corrected. The code compiles without errors completely. But do not be in a hurry, we still need to set up a connection with the Bluetooth module.
Step 7. Connect from the mobile application.
Install the RemoteXY mobile application on your smartphone/tablet.
Notice. Before connecting, it is necessary to connect manually your smartphone to the access point using the operating system settings in the iOS application. The Android application is able to independently switch the system to the access point of the device and return to the previous access point after disconnecting.
Press the new connection «+» button in the top panel in the application. In the window that opens, select the connection «WiFi access point».
In the iOS application, go to the system settings first and connect to the access point «RemoteXY» using the password «12345678». The connected access point must be displayed in the opened window. Press the «Connect» button.
In the Android application, turn on WiFi and press the update button for a list of available access points. Select the RemoteXY access point. In the window that opens, enter the password for the access point «12345678», press the «Connect» button.
Bluino Loader – Arduino IDE
ПО для компиляции кода в файл и загрузки его на платформу Ардуино через смартфон и USB OTG. Громоздкие кнопки и запутанные провода значительно усложняют работу над проектами. Для упрощенного контроля удаленным администрированием предоставляется графический идентификатор Bluino Loader IDE. Разрабатывает проекты, доступные триггеру. Подключается к всемирной паутине с помощью: Wi-Fi, Ethernet или через накопитель ESP8266. Когда необходимые процедуры будут выполнены и произойдет начало работы, приложение даст сигнал.
Настройка софта для создания проектов займет не более 5 минут. Матобеспечение настраивается по выбору пользователя. Простой и удобной софт. Для проверки заливают скетч в микроконтроллер и убеждаются в том, что все работает как надо. Мигающий диод подаст сигнал о правильности выполняемых действий. Далее приступают к прошивкам.