Содержание
- Arduino Bluetooth Controller
- ArduinoDroid — Arduino IDE
- RemoteXY: Arduino Control
- Приложение Blynk
- Bluino Loader – Arduino IDE
- Arduino Bluetooth Control
- BT Voice Control for Arduino
- Virtuino
- Bluetooth Controller 8 Lamp
- IoT Wi-Fi контроллер
В данном обзоре указаны 10 распространенных приложений в управлении Ардуино с компьютера или телефона, которые легки в изучении и использовании. Arduino – это платформа, разработанная ввиду технологий современного программирования. Плата с USB разъемами для блока питания. При подключении к ПК, заряжается. Во внутренней системе есть кнопка для форматирования данных.
Главные составляющие:
- Бредбоард – соединяет платформу с устройством.
- Светодиод – индикатор, сигнализирует об управлении.
- Резистор — контролирует подачу электрического тока внутри платформы.
- Фоторезистор – реагирует на тип освещения.
- Транзистор – усиливает электрические сигналы и используется в сложных цепях.
Это было внутреннее описание. Далее переходим к обзору самого приложения. Компанией Google был создан новый интерфейс прикладного программирования под названием Arduino. Предназначается для связи Android устройства с USB. Открывает большие возможности в создании проектов и упрощает программирование и управление с экрана мобильного телефона. Помогает управлять синхронизацией данных.
Обзор возможностей Arduino:
- создание скетчей;
- их редактирование, компилирование и загрузка в плате;
- программирование и разработка кодов.
Работа производится со смартфона из любой части земного шара. В данном обзоре будут описаны программы, разработанные для удаленного пользования Ардуино, а именно Bluetooth и Wi-fi — контроллерами. Они просты в использовании и позволяют работать с любого гаджета. Проект Ардуино состоит из 3 этапов:
- написание кода;
- макетирование;
- прошивка.
Для программирования этих функций, требуется написать код, который можно удалять по необходимости, и прошить среду разработки. Это многоступенчатый процесс. В нем участвует несколько программ.
Arduino Bluetooth Controller
Эта программа работает в 3 основных положениях:
Контроллер. Приложение демонстрируется в облике play идентификатора и управляется кнопками переключения. Работает одной клавишей, основная функция которой – дистанционное управление.
Диммер. На расстоянии регулирует настройки яркости и скорости.
Терминал. Осуществление отправления директива для дешифрирования.
Установка приложения Arduino Bluetooth Controller сводит несколько устройств по воздушному каналу. Сообщения передаются по датчикам, контроллерам и обратно. Управляя смартфоном при помощи блютуз модулей, также возможно организовать беспроводное соединение целого проекта. Программирование такого типа доступно всем желающим и не требует особых усилий.
ArduinoDroid — Arduino IDE
Используется программистами как средство редактирования кодов и создания программ. Особенность – написанный скетч превращается в СС+, компилируется и грузится в Arduino. Отлично подходит для работы новичков в этой области. Приложением можно пользоваться бесплатно и в открытом доступе.
Первым шагом в использовании будет заливка скетча на микроконтроллер. Далее нажав кнопку «Загрузить» необходимо дождаться окончания загрузки. Мигающий светодиод означает, что все было сделано правильно. Все готово к написанию и использованию прошивок.
ArduinoDroid – легкий в использовании софт. Проводит редактирование, компилирование и загрузку кодов в плату с мобильного устройства или планшета. Так же рекомендуется проводить редактирование шифра или заливать готовый, если программа забанена..
RemoteXY: Arduino Control
Данная программа управления Ардуино, позволяет создать персональную панель. Дистанционное управление происходит через:
- Инет;
- Вай-Фай;
- Ик-порт;
- Блютуз.
На странице http://remotexy.com можно найти и скачать много интересных инструкций. К примеру, как создавать оригинальные клавиши и переключатели. Функционал адаптирован под новичка и не создаст проблем в использовании.
Управление ардуино с компьютера, а именно RemoteXY, возможно через облако. Это превозносит его перед аналогичными русскими софтами Arduino.
Приложение Blynk
Этакий разработчик идей, имеющий открытый вход к запуску на платформе Ардуино. Главное требование в использовании – наличие интернета: Wi-Fi или мобильный трафик. Только в этом случае Blynk будет готов к выполнению. Начать использование можно спустя несколько минут, после окончания настроек. Программой поддерживается АО по выбору пользователя.
Основные функции приложения Blynk заключаются в управлении устройствами при помощи удаления и добавления протоколов HTTP, а также запросов GET и POST. Значения параметров можно обновлять и получать. Запросы обновляются в самом приложении.
Вариативность – важная точка программы. Имея связь с работающими платформами, можно соединиться с сервером любым удобным способом. Данный инстинктивный портал обладает простотой в использовании над проектом. Библиотека постоянно обновляется для всех приложений Arduino Blynk.
Клиентов, желающих включать кофе машинку со своего смартфона, заинтересует это приложение. Это, пожалуй, единственный сервис с подобными возможностями. И не смотря на, то, что он практически безлимитный, является трудным Openhab. В сравнении с другими сервисами обладает быстрой скоростью при запуске.
Bluino Loader – Arduino IDE
ПО для компиляции кода в файл и загрузки его на платформу Ардуино через смартфон и USB OTG. Громоздкие кнопки и запутанные провода значительно усложняют работу над проектами. Для упрощенного контроля удаленным администрированием предоставляется графический идентификатор Bluino Loader IDE. Разрабатывает проекты, доступные триггеру. Подключается к всемирной паутине с помощью: Wi-Fi, Ethernet или через накопитель ESP8266. Когда необходимые процедуры будут выполнены и произойдет начало работы, приложение даст сигнал.
Настройка софта для создания проектов займет не более 5 минут. Матобеспечение настраивается по выбору пользователя. Простой и удобной софт. Для проверки заливают скетч в микроконтроллер и убеждаются в том, что все работает как надо. Мигающий диод подаст сигнал о правильности выполняемых действий. Далее приступают к прошивкам.
Arduino Bluetooth Control
Сокращенное название — ABC. Управляет и контролирует основные возможности API. Используется в мониторинге контактов через Bluetooth. Работает в автономном режиме. Приобщение к работе производит строго из Ардуино.
Инструменты, используемые в процессе:
- Metrics – передает показатели о сбоях и изменениях. Те, свою очередь, приходят на телефон в виде сообщения об остановке работы. Это подобие функции, где встряхнув гаджет можно отправить данные.
- Клавиши с указателями – служат для отправки информации.
- Терминал – варьирует информацией с временными показателями по назначению.
- Accelerometer – управление жестами. Смартфон превращается в механизм для регулирования машины.
- Голос – создает речевые команды. Доступно голосовое общение с роботом.
- Кнопки – функционируют 6 штук в горизонтальном положении. Используются для доставки информации на Arduino.
Управление проектами в дистанционном и удаленном виде стало частой необходимостью. ABC подходит для этих целей на 100%. UART (Serial) предназначается для беспроводного соединения Ардуино и PC. Данное подключение не нуждается в библиотеках и схемах.
BT Voice Control for Arduino
Главное предназначение данного софта – передача ультразвуковых сигналов сквозь преобразователи. Они соединены с платформой Arduino андроид благодаря Bluetooth порту. Главный модуль в работе — HC-05. Он передает интервал между объектами. Данные отображаются в смартфоне и на Hub диске портала, через это приложение.
BT Voice Control – это голосовое управление Ардуино. Владеет функцией распознавания команд: forward, back, left, right. Чувствительные датчики переадресовывают расстояние в объект Arduino. Далее при помощи модуля Bluetooth HC-05 направляет его в приложение. Программа сэкономит время, тратящееся на набор команд вручную.
Virtuino
Программа для Андроид, предназначенная для мониторинга сенсора. Управляет электро устройствами через Bluetooth, Wi-Fi или Интернет.
При помощи Виртуино создаются:
светодиоды;
кнопки;
переключатели;
дисплеи задач;
инструменты;
регуляторы.
Приложение способно совмещать несколько проектов в один. Управляет отличными платформами единовременно через Bluetooth и Wi-fi. Бесплатно в использовании. Относится к подкатегории System Maintenance. Есть возможность проектировать внутреннее оформление с разной визуализацией.
К ним относятся:
- светодиоды;
- переключатели;
- диаграммы;
- счетчики;
- аналоговые приборы.
Обучаться Virtuino можно по учебным пособиям и видео урокам с библиотечной поддержкой. Пока приложение работает в режиме английского языка.
Bluetooth Controller 8 Lamp
Платформа Arduino была создана в 2003 году. Всеобщего внимания она достигла, благодаря низкой цене, а также многомилионному сообществу, направленного на углубленное изучение программирования. Микропроцессоры и микроконтроллеры поставляются с платами. Самыми популярными считаются Arduino. Итальянские модели имеет много функций по расширению и исследованию встроенных Pro систем.
Bluetooth Controller 8 Lamp создан для регулировки функций Ардуино 8 канальным контроллером. Работает при помощи модулей Bluetooth HC-05, HC-06 и HC-07. 8 кнопочный интерфейс соответствует каждой лампочке.
Метод активен только в пределах видимости. В сравнении с другими беспроводными способами — этот самый дешевый. Комплектующие платы стоят менее 1 доллара. Для работы подходят даже подержанные варианты. Статичные девайсы, используя инфракрасный контроллер в потолочных светодиодных лентах, решают легко проблемы, возникшие в процессе.
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. Далее используются традиционные библиотеки.
Регулирование платформы Ардуино и ее «помощников», увеличивают программирование и соприкосновение с другими устройствами. Регулировка показателей, изменение настроек, создание роботов и машин – это теперь делается, при помощи удаленного контроля и управлению. Эта самая популярная плата, используемая в программировании. Необходимые запчасти и аксессуары для работы и учебы, продаются по доступной цене в соответствующем магазине компьютерной техники.
Приложения для удаленного управления Arduino на Android предоставляют GUI для легкого управления микроконтроллером.
Содержание
- Ардуино и Андроид
- 1. Arduino Bluetooth Controller
- 2. Bluetooth Controller 8 Lamp
- 3. BT Voice Control for Arduino
- 4. RemoteXY: Arduino Control
- 5. Virtuino
- 6. Blynk
- 7. IoT Wifi Controller
Ардуино и Андроид
Кто не хочет избавиться от этих громоздких кнопок и запутанных проводов во время работы над проектами?
Удаленное управление платами Arduino через приложение Android возможно благодаря графическому интерфейсу пользователя (GUI).
Созданная в 2003 году платформа Arduino быстро попала на глаза сообществам с открытым исходным кодом и любителям радиоэлектроники из-за её низкой цены, тонн онлайн-учебников и многомиллионного поддерживающего сообщества.
Платы поставляются с различными микропроцессорами и микроконтроллерами, наиболее популярными среди которых являются Arduino UNO с Atmega328.
Благодаря большому количеству коммерчески доступных модулей расширения эти итальянские платы стали выбором для новичков для исследования мира встроенных систем.
Следующим шагом стало развитие контроля плат из любой точки Мира.
1. Arduino Bluetooth Controller
Ссылка: Arduino Bluetooth Controller

Это приложение имеет простой пользовательский интерфейс и его легко настроить. Соедините Android с модулем Bluetooth, подключенным к Arduino. Можно подключаться в 4 разных режимах:
- Режим контроллера: этот режим представляет собой интерфейс игрового контроллера. При нажатии любой из экранных кнопок будет отправлена соответствующая команда на Arduino. Легко управляйте своим роботом с помощью этого приятного интерфейса.
- Режим переключателя: этот режимсостоит из одной кнопки, которую вы можете использовать для дистанционного управления переключателем.
- Режим диммера: режим диммера может отправлять изменяющиеся значения в Arduino. Очень полезно, когда нужно фиксировать такие данные, например, как яркость и скорость.
- Режим терминала. Отправьте свои пользовательские команды в этом режиме и напишите несколько строк кода на вашем Arduino, чтобы декодировать команды.
2. Bluetooth Controller 8 Lamp
Ссылка: Bluetooth Controller 8 Lamp

Благодаря поддержке модулей Bluetooth HC-05, HC-06 и HC-07, это приложение позволяет контролировать до 8 каналов.
Оно имеет простой пользовательский интерфейс, состоящий из 8 кнопок для соответствующих каналов.
Кнопки также предназначены для одновременного переключения всех каналов. В расширенных руководствах также приводятся примеры кода.
3. BT Voice Control for Arduino
Ссылка: BT Voice Control for Arduino

У Arduino недостаточно памяти и вычислительной мощности для эффективного распознавания речи. Что если мы сможем использовать функцию распознавания речи Android для отправки команд на Arduino?
Это именно то, для чего это приложение создано. Оно принимает речевой ввод и отправляет его в Arduino через Bluetooth в виде строки.
4. RemoteXY: Arduino Control
Ссылка: RemoteXY: Arduino Control

Приложение позволяет управлять Arduino с помощью Bluetooth, Wi-Fi и даже через Ethernet.
Создайте свой собственный уникальный графический интерфейс для этого приложения, посетив веб-сайт приложения — remotexy. Получайте удовольствие от создания кнопок, переключателей, слайдеров, джойстиков и других элементов GUI для управления вашим Arduino.
Кроме того, оно позволяет подключаться через облачный сервер, поэтому ваши устройства будут доступны из любой точки мира.
5. Virtuino
Ссылка: Virtuino

Virtuino позволяет визуализировать ваши проекты, как никакое другое приложение. Контролируйте одновременно несколько плат Arduino через Bluetooth, Wi-Fi, Интернет или даже через SMS.
Создавайте визуальные интерфейсы для светодиодов, переключателей, диаграмм, аналоговых инструментов, счетчиков и многого другого.
Оно поставляется с поддержкой библиотеки и множеством обучающих программ (включая видеоуроки), которые помогут вам в этом процессе. Добавьте несколько строк кода к существующим примерам, и можно начинать изобретать.
6. Blynk
Ссылка: Blynk

Благодаря красивому дизайну Blynk позволяет создавать пользовательские интерфейсы для Arduino и управлять ими с помощью USB, ethernet, Wi-Fi и Bluetooth. Совместное использование проектов стало проще, просто поделитесь ссылкой на него.
7. IoT Wifi Controller
UPD: данное приложение с 2020 года не доступно Google Play. На момент редакции статьи приложение было удалено из магазина.

IoT Wifi Controller имеет уникальный интерфейс, который отображает конфигурацию каждого из контактов IO Arduino.
Переключайте значения высокого или низкого уровня GPIO и просматривайте его в режиме реального времени. Также отображается значение ADC. Оно подключается к плате, используя ваш телефон или через маршрутизатор.
Вы нашли для себя в этом списке приложение Android, чтобы контролировать Arduino? Поделитесь своими отзывами и предложениями в комментариях в нашей группе ВКонтакте.
19 марта 2018 в 15:55
| Обновлено 21 января 2021 в 17:41 (редакция)
Опубликовано:
Статьи, Android, Blynk
В данном обзоре указаны 10 распространенных приложений в управлении Ардуино с компьютера или телефона, которые легки в изучении и использовании. Arduino – это платформа, разработанная ввиду технологий современного программирования. Плата с USB разъемами для блока питания. При подключении к ПК, заряжается. Во внутренней системе есть кнопка для форматирования данных.
Главные составляющие:
- Бредбоард – соединяет платформу с устройством.
- Светодиод – индикатор, сигнализирует об управлении.
- Резистор — контролирует подачу электрического тока внутри платформы.
- Фоторезистор – реагирует на тип освещения.
- Транзистор – усиливает электрические сигналы и используется в сложных цепях.
Это было внутреннее описание. Далее переходим к обзору самого приложения. Компанией Google был создан новый интерфейс прикладного программирования под названием Arduino. Предназначается для связи Android устройства с USB. Открывает большие возможности в создании проектов и упрощает программирование и управление с экрана мобильного телефона. Помогает управлять синхронизацией данных.
Обзор возможностей Arduino:
- создание скетчей;
- их редактирование, компилирование и загрузка в плате;
- программирование и разработка кодов.
Работа производится со смартфона из любой части земного шара. В данном обзоре будут описаны программы, разработанные для удаленного пользования Ардуино, а именно Bluetooth и Wi-fi — контроллерами. Они просты в использовании и позволяют работать с любого гаджета. Проект Ардуино состоит из 3 этапов:
- написание кода;
- макетирование;
- прошивка.
Для программирования этих функций, требуется написать код, который можно удалять по необходимости, и прошить среду разработки. Это многоступенчатый процесс. В нем участвует несколько программ.
Arduino Bluetooth Controller
Эта программа работает в 3 основных положениях:
Контроллер. Приложение демонстрируется в облике play идентификатора и управляется кнопками переключения. Работает одной клавишей, основная функция которой – дистанционное управление.
Диммер. На расстоянии регулирует настройки яркости и скорости.
Терминал. Осуществление отправления директива для дешифрирования.
Установка приложения Arduino Bluetooth Controller сводит несколько устройств по воздушному каналу. Сообщения передаются по датчикам, контроллерам и обратно. Управляя смартфоном при помощи блютуз модулей, также возможно организовать беспроводное соединение целого проекта. Программирование такого типа доступно всем желающим и не требует особых усилий.
ArduinoDroid — Arduino IDE
Используется программистами как средство редактирования кодов и создания программ. Особенность – написанный скетч превращается в СС+, компилируется и грузится в Arduino. Отлично подходит для работы новичков в этой области. Приложением можно пользоваться бесплатно и в открытом доступе.
Первым шагом в использовании будет заливка скетча на микроконтроллер. Далее нажав кнопку «Загрузить» необходимо дождаться окончания загрузки. Мигающий светодиод означает, что все было сделано правильно. Все готово к написанию и использованию прошивок.
ArduinoDroid – легкий в использовании софт. Проводит редактирование, компилирование и загрузку кодов в плату с мобильного устройства или планшета. Так же рекомендуется проводить редактирование шифра или заливать готовый, если программа забанена..
RemoteXY: Arduino Control
Данная программа управления Ардуино, позволяет создать персональную панель. Дистанционное управление происходит через:
- Инет;
- Вай-Фай;
- Ик-порт;
- Блютуз.
На странице https://remotexy.com можно найти и скачать много интересных инструкций. К примеру, как создавать оригинальные клавиши и переключатели. Функционал адаптирован под новичка и не создаст проблем в использовании.
Управление ардуино с компьютера, а именно RemoteXY, возможно через облако. Это превозносит его перед аналогичными русскими софтами Arduino.
Принципиальная схема
Подключим Ethernet shield к материнской плате Ардуино. А электромагнитное реле уже к плате расширения. Используем питание 5 вольт и землю. А для управление реле возьмем 7 цифровой пин.
Приложение Blynk
Этакий разработчик идей, имеющий открытый вход к запуску на платформе Ардуино. Главное требование в использовании – наличие интернета: Wi-Fi или мобильный трафик. Только в этом случае Blynk будет готов к выполнению. Начать использование можно спустя несколько минут, после окончания настроек. Программой поддерживается АО по выбору пользователя.
Основные функции приложения Blynk заключаются в управлении устройствами при помощи удаления и добавления протоколов HTTP, а также запросов GET и POST. Значения параметров можно обновлять и получать. Запросы обновляются в самом приложении.
Вариативность – важная точка программы. Имея связь с работающими платформами, можно соединиться с сервером любым удобным способом. Данный инстинктивный портал обладает простотой в использовании над проектом. Библиотека постоянно обновляется для всех приложений Arduino Blynk.
Клиентов, желающих включать кофе машинку со своего смартфона, заинтересует это приложение. Это, пожалуй, единственный сервис с подобными возможностями. И не смотря на, то, что он практически безлимитный, является трудным Openhab. В сравнении с другими сервисами обладает быстрой скоростью при запуске.
Итоговый результат
Если код вы записали правильно, с правильным паролем и именем от вашего wifi, который исправно работает, то в монитор порта будет отправлена ссылка, которую необходимо вставить в адресную строку браузера. Изображение должно выглядеть так
А теперь вы можете подключить ардуино к источнику питания и убрать провод подключения ардуино — компьютер. И узнавать температуру в вашем доме, находясь на другом конце города. Все зависит только от вашей фантазии.
В следующий раз попробуем разобрать еще один проект, который поможет больше раскрыть все возможности интернет модуля. В дальнейшем попробуем создать свой сервер и сайт, а также поговорим о соединении с соцсетями. Увеличить возможности сделать ваш дом умным.
Bluino Loader – Arduino IDE
ПО для компиляции кода в файл и загрузки его на платформу Ардуино через смартфон и USB OTG. Громоздкие кнопки и запутанные провода значительно усложняют работу над проектами. Для упрощенного контроля удаленным администрированием предоставляется графический идентификатор Bluino Loader IDE. Разрабатывает проекты, доступные триггеру. Подключается к всемирной паутине с помощью: Wi-Fi, Ethernet или через накопитель ESP8266. Когда необходимые процедуры будут выполнены и произойдет начало работы, приложение даст сигнал.
Настройка софта для создания проектов займет не более 5 минут. Матобеспечение настраивается по выбору пользователя. Простой и удобной софт. Для проверки заливают скетч в микроконтроллер и убеждаются в том, что все работает как надо. Мигающий диод подаст сигнал о правильности выполняемых действий. Далее приступают к прошивкам.
Программа
Смысл проекта такой же как и с bluetooth. Плата должна получить от нас сигнал и установить реле в нужное состояние. Тогда подключенное к реле оборудование включится или выключится соответственно.
Используем пример из библиотеки Ethernet.
Откроем скетч из Меню File -> Examples -> Ethernet -> WebServer
Здесь используются библиотеки и
Вы можете задать mac адрес и ip адрес для вашей платы. Ip адрес должен подходить для вашей локальной сети. HTTP сервер будет работать на 80 порту как обычно. А реле подключим к 7 пину.
// Enter a MAC address and IP address for your controller below. // The IP address will be dependent on your local network: byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192, 168, 0, 177); EthernetServer server(80); int RelayPin = 7;
В функции setup() настраиваем все необходимые функции для работы через интернет. И раскомментируем строку Ethernet.init(10);
// You can use Ethernet.init(pin) to configure the CS pin Ethernet.init(10); // Most Arduino shields
Настроим пин для реле на вывод и выключим его.
// start the server server.begin(); Serial.print(«server is at «); Serial.println(Ethernet.localIP()); pinMode(RelayPin, OUTPUT); digitalWrite(RelayPin, 0);
Теперь разберемся с циклом loop(). Каждый раз, когда к серверу подключается новый клиент, мы должны передать ему веб страницу с необходимой информацией. Используем монитор последовательного порта для отладки программы. Информацию от клиента мы будем получать через http заголовки и для этого считаем всю информацию, которую мы можем получить при соединении к серверу.
void loop() { // listen for incoming clients EthernetClient client = server.available(); if (client) { Serial.println(«new client»); // an http request ends with a blank line boolean currentLineIsBlank = true; String readString = «»; while (client.connected()) { if (client.available()) { char c = client.read(); readString += c;
Таким образом мы получили строку, в которой будет вся имеющаяся информация. В том числе о хосте, рефферере и данных о браузере. Из-за того, что данные в рефферере и хосте будут дублироваться, а нам нужна только строка хоста, уберем лишнюю информацию.
//Serial.write(c); // if you’ve gotten to the end of the line (received a newline // character) and the line is blank, the http request has ended, // so you can send a reply if (c == ‘n’ && currentLineIsBlank) { readString.replace(«https://192.168.0.177/LightOff?», «refferer»); readString.replace(«https://192.168.0.177/LightOn?», «refferer»); Serial.println(readString);
Теперь мы можемиспользовать информацию о состоянии реле и сформировать нужную веб страницу для пользователя.
// send a standard http response header client.println(«HTTP/1.1 200 OK»); client.println(«Content-Type: text/html»); client.println(«Connection: close»); // the connection will be closed after completion of the response client.println(); client.println(«»); client.println(«»); // output the value of each analog input pin if(readString.indexOf(«LightOn») > 0) { digitalWrite(RelayPin, 1); } else { digitalWrite(RelayPin, 0); } int Relay = digitalRead(RelayPin); String ButtonText = «»; String ButtonLink = «»; if( Relay ){ ButtonText = » LightOff «; ButtonLink = «/LightOff»; } else { ButtonText = » LightOn «; ButtonLink = «/LightOn»; } client.print(» «); client.print(» «); client.println(» «); break;
В итоге получим кнопку со ссылкой на включение реле, если реле выключено. И наоборот, на выключение, если свет включен в настоящий момент.
Arduino Bluetooth Control
Сокращенное название — ABC. Управляет и контролирует основные возможности API. Используется в мониторинге контактов через Bluetooth. Работает в автономном режиме. Приобщение к работе производит строго из Ардуино.
Инструменты, используемые в процессе:
- Metrics – передает показатели о сбоях и изменениях. Те, свою очередь, приходят на телефон в виде сообщения об остановке работы. Это подобие функции, где встряхнув гаджет можно отправить данные.
- Клавиши с указателями – служат для отправки информации.
- Терминал – варьирует информацией с временными показателями по назначению.
- Accelerometer – управление жестами. Смартфон превращается в механизм для регулирования машины.
- Голос – создает речевые команды. Доступно голосовое общение с роботом.
- Кнопки – функционируют 6 штук в горизонтальном положении. Используются для доставки информации на Arduino.
Управление проектами в дистанционном и удаленном виде стало частой необходимостью. ABC подходит для этих целей на 100%. UART (Serial) предназначается для беспроводного соединения Ардуино и PC. Данное подключение не нуждается в библиотеках и схемах.
BT Voice Control for Arduino
Главное предназначение данного софта – передача ультразвуковых сигналов сквозь преобразователи. Они соединены с платформой Arduino андроид благодаря Bluetooth порту. Главный модуль в работе — HC-05. Он передает интервал между объектами. Данные отображаются в смартфоне и на Hub диске портала, через это приложение.
BT Voice Control – это голосовое управление Ардуино. Владеет функцией распознавания команд: forward, back, left, right. Чувствительные датчики переадресовывают расстояние в объект Arduino. Далее при помощи модуля Bluetooth HC-05 направляет его в приложение. Программа сэкономит время, тратящееся на набор команд вручную.
Полный текст программы
#include #include // Enter a MAC address and IP address for your controller below. // The IP address will be dependent on your local network: byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192, 168, 0, 177); // Initialize the Ethernet server library // with the IP address and port you want to use // (port 80 is default for HTTP): EthernetServer server(80); int RelayPin = 7; void setup() { // You can use Ethernet.init(pin) to configure the CS pin Ethernet.init(10); // Most Arduino shields //Ethernet.init(5); // MKR ETH shield //Ethernet.init(0); // Teensy 2.0 //Ethernet.init(20); // Teensy++ 2.0 //Ethernet.init(15); // ESP8266 with Adafruit Featherwing Ethernet //Ethernet.init(33); // ESP32 with Adafruit Featherwing Ethernet // Open serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } Serial.println(«Ethernet WebServer Example»); // start the Ethernet connection and the server: Ethernet.begin(mac, ip); // Check for Ethernet hardware present if (Ethernet.hardwareStatus() == EthernetNoHardware) { Serial.println(«Ethernet shield was not found. Sorry, can’t run without hardware. :(«); while (true) { delay(1); // do nothing, no point running without Ethernet hardware } } if (Ethernet.linkStatus() == LinkOFF) { Serial.println(«Ethernet cable is not connected.»); } // start the server server.begin(); Serial.print(«server is at «); Serial.println(Ethernet.localIP()); pinMode(RelayPin, OUTPUT); digitalWrite(RelayPin, 0); } void loop() { // listen for incoming clients EthernetClient client = server.available(); if (client) { Serial.println(«new client»); // an http request ends with a blank line boolean currentLineIsBlank = true; String readString = «»; while (client.connected()) { if (client.available()) { char c = client.read(); readString += c; //Serial.write(c); // if you’ve gotten to the end of the line (received a newline // character) and the line is blank, the http request has ended, // so you can send a reply if (c == ‘n’ && currentLineIsBlank) { readString.replace(«https://192.168.0.177/LightOff?», «refferer»); readString.replace(«https://192.168.0.177/LightOn?», «refferer»); Serial.println(readString); // send a standard http response header client.println(«HTTP/1.1 200 OK»); client.println(«Content-Type: text/html»); client.println(«Connection: close»); // the connection will be closed after completion of the response client.println(); client.println(«»); client.println(«»); // output the value of each analog input pin if(readString.indexOf(«LightOn») > 0) { digitalWrite(RelayPin, 1); } else { digitalWrite(RelayPin, 0); } int Relay = digitalRead(RelayPin); String ButtonText = «»; String ButtonLink = «»; if( Relay ){ ButtonText = » LightOff «; ButtonLink = «/LightOff»; } else { ButtonText = » LightOn «; ButtonLink = «/LightOn»; } client.print(«
«); client.print(«
«); client.println(» «); break; } if (c == ‘n’) { // you’re starting a new line currentLineIsBlank = true; } else if (c != ‘r’) { // you’ve gotten a character on the current line currentLineIsBlank = false; } } } // give the web browser time to receive the data delay(1); // close the connection: client.stop(); Serial.println(«client disconnected»); } }
Если все настроено правильно, то зайдя по адресу указанному в настройках IPAddress ip(192, 168, 0, 177) мы увидим веб страницу.
И нажав на кнопку мы сможем управлять реле, соединенным с платой Ардуино.
Virtuino
Программа для Андроид, предназначенная для мониторинга сенсора. Управляет электро устройствами через Bluetooth, Wi-Fi или Интернет.
При помощи Виртуино создаются:
светодиоды;
кнопки;
переключатели;
дисплеи задач;
инструменты;
регуляторы.
Приложение способно совмещать несколько проектов в один. Управляет отличными платформами единовременно через Bluetooth и Wi-fi. Бесплатно в использовании. Относится к подкатегории System Maintenance. Есть возможность проектировать внутреннее оформление с разной визуализацией.
К ним относятся:
- светодиоды;
- переключатели;
- диаграммы;
- счетчики;
- аналоговые приборы.
Обучаться Virtuino можно по учебным пособиям и видео урокам с библиотечной поддержкой. Пока приложение работает в режиме английского языка.
Описание ESP8266
ESP8266 – микроконтроллер с интерфейсом WiFi, который имеет возможность исполнять программы из флеш-памяти. Устройство было выпущено в 2014 году китайской фирмой Espressif и практически сразу же стало популярным.
Контроллер недорогой, обладает небольшим количеством внешних элементов и имеет следующие технические параметры:
- Поддерживает Wi-Fi протоколы 802.11 b/g/n с WEP, WPA, WPA2;
- Обладает 14 портами ввода и вывода, SPI, I2C, UART, 10-бит АЦП;
- Поддерживает внешнюю память до 16 МБ;
- Необходимое питание от 2,2 до 3,6 В, потребляемый ток до 300 мА в зависимости от выбранного режима.
Важной особенностью является отсутствие пользовательской энергонезависимой памяти на кристалле. Программа выполняется от внешней SPI ПЗУ при помощи динамической загрузки необходимых элементов программы. Доступ к внутренней периферии можно получить не из документации, а из API набора библиотек. Производителем указывается приблизительное количество ОЗУ – 50 кБ.
Особенности платы ESP8266:
- Удобное подключение к компьютеру – через USB кабель, питание от него же;
- Наличие встроенного преобразователя напряжения 3,3В;
- Наличие 4 Мб флеш-памяти;
- Встроенные кнопки для перезагрузки и перепрошивки;
- Все порты выведены на плату на две гребенки с шагом 2,5 мм.
Сферы применения модуля ESP8266
- Автоматизация;
- Различные системы для умного дома: Беспроводное управление, беспроводные розетки, управление температурой, дополнение к сигнализационным системам;
- Мобильная электроника;
- >Распиновка esp8266
Существует огромное количество разновидностей модуля ESP8266. На рисунке представлены некоторые из них. Наиболее популярным вариантом является ESP 01.
Исполнение программы требуется задавать состоянием портов GPIO0, GPIO2 и GPIO15, когда заканчивается подача питания. Можно выделить 2 важных режима – когда код исполняется из UART (GPIO0 = 0, GPIO2 = 1 и GPIO15 = 0) для перепрошивки флеш-карты и когда исполняется из внешней ПЗУ (GPIO0 = 1, GPIO2 = 1 и GPIO15 = 0) в штатном режиме.
Распиновка для ESP01 изображена на картинке.
- 1 – земля, 8 – питание. По документации напряжение подается до 3,6 В – это важно учесть при работе с Ардуино, на которую обычно подают 5 В.
- 6 – RST, нужна для перезагрузки микроконтроллера при подаче на него низкого логического уровня.
- 4 – CP_PD, также используется для перевода устройства в энергосберегающий режим.
- 7 и 0 – RXD0 и TXD0, это аппаратный UART, необходимый для перепрошивки модуля.
- 2 – TXD0, к этому контакту подключается светодиод, который загорается при низком логическом уровне на GPIO1 и при передаче данных по UART.
- 5 – GPIO0, порт ввода и вывода, также позволяет перевести устройство в режим программирования (при подключении порта к низкому логическому уровню и подачи напряжения) .
- 3 – GPIO2, порт ввода и вывода.
Основные отличия Ардуино от ESP8266
- ESP8266 имеет больший объем флеш-памяти, при этом у ESP8266 отсутствует энергонезависимая память;
- Процессор ESP8266 быстрее, чем у Ардуино;
- Наличие Wi-Fi у ESP8266;
- ESP8266 потребляеn больше тока, чем для Ардуино;
Bluetooth Controller 8 Lamp
Платформа Arduino была создана в 2003 году. Всеобщего внимания она достигла, благодаря низкой цене, а также многомилионному сообществу, направленного на углубленное изучение программирования. Микропроцессоры и микроконтроллеры поставляются с платами. Самыми популярными считаются Arduino. Итальянские модели имеет много функций по расширению и исследованию встроенных Pro систем.
Bluetooth Controller 8 Lamp создан для регулировки функций Ардуино 8 канальным контроллером. Работает при помощи модулей Bluetooth HC-05, HC-06 и HC-07. 8 кнопочный интерфейс соответствует каждой лампочке.
Метод активен только в пределах видимости. В сравнении с другими беспроводными способами — этот самый дешевый. Комплектующие платы стоят менее 1 доллара. Для работы подходят даже подержанные варианты. Статичные девайсы, используя инфракрасный контроллер в потолочных светодиодных лентах, решают легко проблемы, возникшие в процессе.
Описание ESP8266
ESP8266 – микроконтроллер с интерфейсом WiFi, который имеет возможность исполнять программы из флеш-памяти. Устройство было выпущено в 2014 году китайской фирмой Espressif и практически сразу же стало популярным.
Контроллер недорогой, обладает небольшим количеством внешних элементов и имеет следующие технические параметры:
- Поддерживает Wi-Fi протоколы 802.11 b/g/n с WEP, WPA, WPA2;
- Обладает 14 портами ввода и вывода, SPI, I2C, UART, 10-бит АЦП;
- Поддерживает внешнюю память до 16 МБ;
- Необходимое питание от 2,2 до 3,6 В, потребляемый ток до 300 мА в зависимости от выбранного режима.
Важной особенностью является отсутствие пользовательской энергонезависимой памяти на кристалле. Программа выполняется от внешней SPI ПЗУ при помощи динамической загрузки необходимых элементов программы. Доступ к внутренней периферии можно получить не из документации, а из API набора библиотек. Производителем указывается приблизительное количество ОЗУ – 50 кБ.
Особенности платы ESP8266:
- Удобное подключение к компьютеру – через USB кабель, питание от него же;
- Наличие встроенного преобразователя напряжения 3,3В;
- Наличие 4 Мб флеш-памяти;
- Встроенные кнопки для перезагрузки и перепрошивки;
- Все порты выведены на плату на две гребенки с шагом 2,5 мм.
Сферы применения модуля ESP8266
- Автоматизация;
- Различные системы для умного дома: Беспроводное управление, беспроводные розетки, управление температурой, дополнение к сигнализационным системам;
- Мобильная электроника;
- >Распиновка esp8266
Существует огромное количество разновидностей модуля ESP8266. На рисунке представлены некоторые из них. Наиболее популярным вариантом является ESP 01.
Исполнение программы требуется задавать состоянием портов GPIO0, GPIO2 и GPIO15, когда заканчивается подача питания. Можно выделить 2 важных режима – когда код исполняется из UART (GPIO0 = 0, GPIO2 = 1 и GPIO15 = 0) для перепрошивки флеш-карты и когда исполняется из внешней ПЗУ (GPIO0 = 1, GPIO2 = 1 и GPIO15 = 0) в штатном режиме.
Распиновка для ESP01 изображена на картинке.
- 1 – земля, 8 – питание. По документации напряжение подается до 3,6 В – это важно учесть при работе с Ардуино, на которую обычно подают 5 В.
- 6 – RST, нужна для перезагрузки микроконтроллера при подаче на него низкого логического уровня.
- 4 – CP_PD, также используется для перевода устройства в энергосберегающий режим.
- 7 и 0 – RXD0 и TXD0, это аппаратный UART, необходимый для перепрошивки модуля.
- 2 – TXD0, к этому контакту подключается светодиод, который загорается при низком логическом уровне на GPIO1 и при передаче данных по UART.
- 5 – GPIO0, порт ввода и вывода, также позволяет перевести устройство в режим программирования (при подключении порта к низкому логическому уровню и подачи напряжения) .
- 3 – GPIO2, порт ввода и вывода.
Платы Arduino и подобные микроконтроллеры делают творчество более доступным, чем когда либо, пишут MUD. Вне зависимости от целей использования – для автоматизации вашего дома или контроля светодиодных лент, или даже для защиты вашей собственности, эти удивительные маленькие технические устройства являются сердцевиной большинства электронных девайсов формата «сделай сам».
Если вам необходимо дать команду вашему Arduino изменить положение перемычек контакта (например, включить свет), то Arduino потребует от пользователя нажать на физическую кнопку или применить сенсор. Для многих проектов использование силы давления человеческого пальца или аналогичных методов управления устройствами вполне приемлемо, но что необходимо применить, если вам захотелось только собрать схему с возможностью дистанционного доступа?
Данная статья дает краткое описание шести способов соединения вашего устройства на платформе Android с любой совместимой платой Arduino.
1. ArduinoDroid позволяет создавать скетчи
Первое устройство в нашем списке — ArduinoDroid. Это приложение работает через USB On The Go (OTG), соединяющее ваше мобильное устройство с Arduino через USB кабель. Одно из преимуществ USB кабеля – это отсутствие необходимости соединения с интернетом или Bluetooth для функционирования устройства.
Приложение является полнофункциональным IDE, которое предоставляет пользователю возможность написания кода на смартфоне, сделать загрузку ранее написанных скетчей, которые хранятся в Dropbox или Google drive и затем начать процесс компиляции.
Преимущества использования приложения ArduinoDroid очевидны. Наличие под рукой IDE позволяет оперативно вносить изменения в поля, а процесс прикрепления устройства Android является менее сложным и трудоемким, чем попытки сбалансировать громоздкий ноутбук на руках!
Явный недостаток приложения ArduinoDroid заключается в том, что написание кода на вашем девайсе может быть не очень комфортным занятием, особенно если вы будете использовать для этих целей смартфон. Вместе с тем, это слабое место приложения не является столь ярко выраженным, когда на одной чаше весов – удобство иметь под рукой ультра-портативный способ программирования на вашей плате без необходимости наличия интернет соединения, а на другой чаше весов – не слишком комфортный метод написания кода.
С другой стороны, наличие ArduinoDroid является недорогим способом обучения основам Arduino, поскольку клон платы Arduino и USB On The Go стоят несколько долларов. Для тех, кому редко доступен компьютер, приложение ArduinoDroid является отличной альтернативой!
2. Arduino Bluetooth Controller
Следующая программа в нашем списке – удачно названный Контроллер Arduino Bluetooth. Это приложение имеет большую значимость относительно триггеров на изменения в загруженных скетчах, и меньшую значимость для программирования Arduino. Контроллер Arduino по Bluetooth посылает данные на вашу плату по Bluetooth, что дает вам возможность послать серийные данные нажатием кнопки. Вам потребуется модуль Bluetooth для вашей платы, хотя модуль HC-06 широко используется и доступен всего лишь за $3.
Заслуживает упоминания тот факт, что программа загружается на английском языке, хотя на картинках Play Store указан итальянский язык!
3. Приложение Blynk для разработки проектов
Приложение Blynk является отличной разработкой для создания проектов. Гибкость и простота приложения обеспечивают интуитивный подход к триггеру событий на вашей плате. Работа с Blynk требует наличия соединения с интернетом, поскольку приложение использует свой собственный сервер. Вы можете использовать либо Wi-Fi, либо мобильные данные для обеспечения доступа к приложению Blynk, и эта возможность отлично подходит для смартфонов.
Одно из самых сильных мест приложения – это вариативность подключений к устройству. При наличии поддержки практически всех разработческих плат, вы можете соединиться с сервером на беспроводной основе, или используя ethernet и даже компьютер через USB. Сервис отлично документирован, а его интуитивное приложение обеспечивает простоту интеграции кастомизированного контроля над вашим проектом. Библиотека Blynk для Arduino IDE следит за всеми коммуникациями.
Если вы предпочитаете включать вашу кофемашину с использованием смартфона до того, как встали с постели рано утром, это приложение, действительно, для вас!
Blynk является не единственным сервисом в этой категории. Стоит обратить внимание и на такой исключительно кастомизированный сервис как Thinger.io и практически безлимитный, хотя и чрезвычайно трудный OpenHAB. Из этих трех сервисов Blynk является самым быстрым при запуске и работе, хотя в долгосрочной перспективе изучение OpenHAB является отличной идеей.
4. Коммуникация с нуля
Описанные выше приложения предполагают использование уже существующих сервисов, которые оказывают вам помощь в обеспечении различных вариантов соединения. Что необходимо предпринять для осуществления полного и тотального контроля над каждым аспектом ваших приложений к устройствам Android? Почему бы вам не решить этот вопрос самостоятельно и с нуля?
Проблема обеспечения контроля над пакетом приложений решается просто через открытие USB связи и взаимообратную передачу серийных данных между приложениями и платой Arduino. Этот вариант обеспечения контроля является одним из лучших для знакомства с Android Studio и созданием приложений в целом.
Следует заметить, что при наличии методов и способов создания приложений для устройств на платформе Android без кода, заслуживает внимание и изучение основ кодирования программного обеспечения на Java.
5. Превратить ваш Arduino в сервер
Альтернативным способом обеспечения коммуникации с вашей платой является превращение ее в крошечный сервер. Ключевое преимущество такой трансформации платы в сервер является появление возможности коммуникации с платами с любого устройства, которое может осуществлять навигацию по IP адресу или отправлять веб-запрос. Это потребует прикрепления Ethernet shield к вашей плате к домашней сети.
Если у вас нет Ethernet shield, то аналогичный эффект может быть достигнут через Wi-Fi shield или через плату, соединенную с Wi-Fi, подобно NodeMCU.
Если код node.js является вашим джемом (jam), есть смысл взглянуть на проект arduino-android github. Еще раз повторим, что приложения для Android разработаны на основе открытого кода, и все, что необходимо сделать вам — это установить сервер node.js на выбранной вами Arduino плате.
6. Инфракрасный контроль
Если вы в поиске универсального инструмента коммуникации с вашим Arduino или вам хотелось бы сыграть роль легендарного секретного агента Макгайвер, то снимите инфракрасный приемник (ИТ) с вашей старой стереоустановки или VHS плеера и используете его для коммуникации с вашей Arduino платой!
Этот способ коммуникации потребует наличия на вашем устройстве Android инфракрасного бластера. Эта специфичный метод коммуникации доступен для многих приложений, хотя из их числа Mi Remote controller является бесплатным и функционирует со многими другими домашними девайсами.
После загрузки приложений и начала их использования, вам необходимо создать простую схему для «обнаружения» инфракрасных сигналов.
Этот метод работает только в пределах линии видимости. Но этот способ беспроводной коммуникации с вашей платой является самым дешевым. Даже если вы не сможете использовать подержанные комплектующие, инфракрасный приемник стоит менее одного доллара. Для статичных девайсов, например потолочных светодиодных лент, использование инфракрасного контроля является отличным решением простой проблемы.
03.05.2018 в рубрике Блог
-
#1
Всем привет. Хочу связать arduino nano с телефоном через wifi. В качестве модуля связи использовать ESP8266-01. А приложение для управления со смартфона сделать в Processing.Знаю что можно использовать Blynk и NodeMCU. Но это не мой вариант. Может у кого есть идеи как это реализовать
-
#2
@RamasTex, а какова цель подобной возни, если уже есть куча работоспособных решений?
-
#4
@RamasTex, что значит
Вы самим их перечисли, да и другие есть. Например, посмотрите здесь. Или Вам вот прям хочется в Processing делать, а остальное по барабану?
-
#5
Нет дело не в Processing я пытался в Delphi что то реализовать.Просто тема актуальная она сейчас активно развивается на канале . ESP8266 запрограммировать как модем я могу, а дальше никак. Те что я перечислил, платные решения
-
#6
Ну если в дельфи, то я бы сделал так. А я так уже делал.
ESP либо подключается к локальной сети , либо делает свою. Так или иначе у нее есть IP и это IP в одной сети с приложением на дельфи.
На ESP открываем порт UDP, на дельфи ставим клиент UDP и соединяем их вместе. Все.
-
#7
Еще придётся сервер организовать. Данным нужно где-то сохранятся. И в нужный момент пользователь открывает приложение и считывает данные с сервера, а не напрямую.
-
#8
Ну это уже доп. вопрос. Чем ESP не сервер ? Тут вопрос в конечном смысле. Мне надо было что бы приложение с телефона андроида быстро изменяла несколько значений на есp-01, я это сделал таким образом.
-
#9
Еще придётся сервер организовать.
Вот здесь есть ответ на Ваш вопрос.
Изменено: 7 Май 2021
Введение
Привет друзья, меня зовут Алексей, и я решил написать небольшой курс статей, по использованию платы Arduino Nano и адресной ленты, на основе светодиодов ws2812b. На сегодня это уже восьмая статья. На данный момент мы придерживаемся изначальной идеи, за исключением маленького нюанса, — мы уже перестали использовать плату Arduino Nano. И на замену пришла Wemos D1 mini, но это практически ничего не меняет, только увеличивает наши возможности. В прошлой статье мы занимались подключением Wemos, настраивали и писали программу. Так что логичнее всего прочитать статьи, предшествующие этой.
Перед тем, как начать что-либо делать, хочу дать небольшое уточнение, которое я забыл сделать в прошлой статье. Дело в том, что Wemos, ну а если говорить точнее ESP8266, потребляет достаточно большой ток, так что я бы рекомендовал изначально использовать эту плату в связке с блоком питания. Кстати, хочу напомнить, что не будет никаких проблем, если при включенном в розетку блоке питания, подключить плату к компьютеру, посредством USB провода.
Сегодня мы организуем управление цветом светодиодной ленты с помощью смартфона. Причем совершенно не важно, на какой именно операционной системе работает Ваш телефон: на Android или IOS. Думаю, это будет достаточно интересно и актуально. И в любом случае данная статья является продолжением предыдущей, там мы занимались настройкой Wemos и улаживали нюансы, если не читали, обязательно ПРОЧИТАЙТЕ Тем более, что, не прочитав прошлой статьи, высока вероятность того, что у Вас ничего не получится.
Донастройка IDE Arduino
Теперь создадим новый проект в IDE Arduino. И нам необходимо скачать библиотеку. Библиотека для связи с сервисом Blynk. Так что нажимаем Скетч -> Подключить библиотеку -> Управлять библиотеками.
В поиске появившегося окна вбиваем – «Blynk». И устанавливаем одноимённую библиотеку.
После успешной установки последней версии, хорошо бы перезагрузить IDE Arduino. Вообще сейчас это уже не обязательно делать, но все же иногда встречаются неполадки, связанные с этим, так что лишним не будет.
Давайте приступим к написанию скетча. Для начала добавляем необходимые библиотеки. Их всего две: первая служит для использования внутреннего Wi—Fi микроконтроллера, а вторая — для связи с сервисом Blynk. А также сразу я записал еще несколько строк кода, но о них мы поговорим далее.
В 4, 6 и 7 строках указаны следующие данные: идентификационный ключ, название Wi—Fi сети и пароль от Wi—Fi сети. На данный момент мы не будем указывать ключ, так как мы его просто не знаем. Но имя и пароль указать нужно, конечно же, вы указываете свои данные. В девятой строке начинается функция setup(). Тут мы передаем указанные данные Blynk объекту, и библиотека уже сама выполнит подключение. В 14 строке начинается функция loop(), тут в каждой итерации цикла мы запускаем Blynk объект методом run(). Думаю, данный код достаточно простой и особых пояснений не требует.
Теперь давайте подключим Wemos к компьютеру посредством USB-кабеля и загрузим данный скетч на МК. Кстати, процесс компиляции и загрузки на ESP8266 занимает гораздо больше времени, чем на Arduino Nano, но думаю, что результат того стоит. В общем после того, как мы увидим надпись «Загрузка завершена», заходим на свой маршрутизатор и смотрим, появилось ли новое подключенное устройство. Тут уже интерфейс у всех будет разный, в зависимости от маршрутизатора. У меня это выглядит следующим образом:
Если Вы не знаете, как подключиться к своему маршрутизатору и посмотреть список подключенных устройств, то найдите его название на корпусе самого устройства и воспользуйтесь Гуглом. Если же устройство не подключилось, то проверьте, правильно ли Вы ввели данные. И только когда все получится, следует приступать к следующему этапу статьи.
Хочу заострить Ваше внимание, что мы только что, написав буквально пару строк, подключились к домашней сети. И, по сути, если домашняя сеть подключена к интернету (а только так мы получим доступ для управления), Вы уже можете управлять устройством у себя на столе с любой точки мира. Это очень впечатляет.
Настройка Blynk на смартфоне
Хоть статья, по сути, целиком и полностью посвящена Blynk, говорить об этом мы начали с вами только сейчас. Можно было бы, конечно, и раньше, в самом начале, но именно сейчас самое время. Сейчас я вам расскажу, что же это такое.
Но для начала давайте разберемся, каким именно образом происходит управление по сети интернет. Это позволит нам понять, для чего нужен Blynk. Чтобы управлять через интернет чем-либо, нам необходимо отправлять пакеты управления. Эти пакеты должны иметь определенный стандарт, чтобы хотя бы сетевые устройства понимали, кому и какой пакет доставить. Данный стандарт называется протокол передачи данных. Допустим, мы с вами будем использовать TCP/IP, просто для примера, лично я довольно часто его использую. Отправить пакет по определенному протоколу достаточно просто, для этого есть специальные программы, они бесплатные и их много разных. Получить пакет можно таким же путем. Также мы можем написать свою программу, на любом языке программирования это не сложно, благодаря специализированным библиотекам, чтобы отправить или получить данные по TCP/IP, нужно написать всего пару строк кода. При этом можно даже не иметь представления, как устроен протокол. Так вот, если отправлять данные и получать их так легко, в чем же проблема? Проблема в том, что нужно точно знать, куда конкретно необходимо отправить пакет. Для этого получатель (далее по тексту — Сервер) должен иметь белый IP или доменное имя. То есть какой-то постоянный адрес, который не будет меняться и будет доступен всем из сети интернет. Интернет-провайдеры, как правило, не предоставляют такую возможность. Конечно же можно подключить белый IP адрес за дополнительную плату, но это не всегда возможно и, наконец, не всегда нужно. И даже если мы решили получить белый адрес, то возможно у нас будет несколько устройств в нескольких местах. Что делать тогда? Получать адрес для всех? Хотя, если мы находимся в рамках открытой локальной сети, то проблем не возникнет. А что, если это не так? Для этого придумали архитектуру Сервер-клиент. Данная архитектура используется практически везде. Тут смысл такой: и отправляющее пакет устройство, и получающее не имеют какого-то белого и постоянного адреса, они просто подключены к сети с выходом в интернет. Но зато есть сервер, один единственный с внешним адресом. Клиенты общаются с сервером и передают ему инструкции, что и кому они хотели бы передать или получить. А сервер, принимая все эти данные, является связующим звеном. Ну и, собственно, главный вопрос: готовы ли мы для домашней самоделки организовывать целый сервер? Даже пускай это будет микрокомпьютер, типа из семейства Raspberry Pi, данный вариант подходит далеко не каждому. Ну и напоследок хочу уточнить: все описанное в данном абзаце, было в общих чертах, на деле все немного сложнее.
Теперь о том, что такое Blynk и для чего он нам нужен. Как я уже говорил ранее, Blynk – это сервис, который можно разделить на 3 части:
— сервер,
— библиотеки связи,
— интерфейс управления и мониторинга.
Для чего нужен сервер мы уже говорили, эта часть находится целиком на стороне сервиса и все возможные проблемы с адресацией там уже решены. Библиотеки связи, в рамках данной статьи, мы уже подключили, они работают на устройстве и выходят на связь с сервером Blynk без нашей помощи – это сильно облегчает дело. Интерфейс управления и мониторинга – представляет из себя мобильное приложение, из этого приложение мы можем отправлять и получать пакеты с нашего устройства, на котором стоят библиотеки связи, по средствам сервера Blynk. Получается, что сервис Blynk взял на себя самое сложное и скучное, предоставив нам работать с самым нужным для нас и интересным. Нужно сказать, что интерфейс Blynk работает исключительно на мобильных устройствах, есть конечно же способы воспользоваться сервисом с компьютера, но об этом мы говорить не будем, там все немного сложнее. Но дело в том, что на мобильные устройства писать красивые и правильно работающие программы немного сложнее, чем под ПК, так что и тут Blynk решил за нас просто кучу проблем.
Итак, сервер Blynk существует без нашего участия, библиотеки связи мы уже подключили, остается настроить интерфейс. Именно этим мы с вами сейчас и займемся. Сам я являюсь пользователем Андроида, но я проверял — на IOS тоже завезли Blynk, следовательно, нам необходимо скачать приложение.
После этого запускаем его, тут нам необходимо зарегистрироваться и авторизоваться. В общем, после входа в свой аккаунт мы должны увидеть следующее окно.
Тут нам необходимо создать новый проект. Нажимаем на плюсик (+), и вводим название проекта, также выбираем МК с которым мы будем работать, не смотря на то, что в списке есть Wemos, я выбираю ESP8266, так как я уже понимаю суть происходящего и работать пока буду только с виртуальными портами. Вы же можете выбрать название своей платы, в этом тоже есть плюсы. А также нужно выбрать цветовую тему приложения, я привык пользоваться темной темой. Ну и напоследок подтверждаем создание проекта.
Видим следующую рабочую область. С верху имеются 3 кнопки в форме: головки болта, плюсика и треугольника. Это настройка проекта, добавление новых элементов и запуск приложения.
Нажимаем на первую – это настройки проекта. Тут все настройки в принципе понятны. Нас с вами интересует токен проекта, то есть секретный ключ. Он необходим, что бы вашим устройством могли управлять только вы и никто другой. Есть два варианта получить данный ключ: отправить на почту и скопировать в буфер памяти. Я обычно копирую и отправляю на компьютер уже самостоятельно, на тот самый, где мы пишем скетч для устройства.
Теперь необходимо добавить данный ключ в написанный уже ранее нами скетч. Вставлять его нужно в четвертую строку, между двойных кавычек. Если после этого залить программу на МК, то приложение с телефона и ваша плата на столе будут связаны через сервер Blynk.
Давайте вернемся к приложению на телефоне и покинем настройки проекта. На экране вновь рабочая область данного проекта. Выбираем вторую доступную кнопку «добавить элемент». На экране появится подменю с графическими элементами, которые мы можем использовать. Тут их достаточно много и функционал разнообразный.
Данные элементы даются не просто так, а покупаются за местную валюту, под названием «энергия». Изначально у вас имеется 2000 на энергетическом балансе. Это не очень много, но тем не менее достаточно, чтобы управлять своей системой. Конечно же, баланс возможно пополнить, для этого есть кнопка «Добавить»(Add). Стоит энергия небольшие деньги, особенно если сразу покупать много. Данные средства идут на поддержку проекта, так как проект открытый и бесплатный для использования. Пользоваться данной услугой или нет, решать только Вам, лично я еще не разу не покупал энергию. И своего читателя тоже не призываю, это дело сугубо каждого.
Теперь вернемся к выбору графических контролов. Нас интересует элемент под названием zeRGBa, дальше по тексту я буду называть этот элемент «зеброй». По сути, это обычный RGB контрол для выбора цвета, просто выполненный в виде зебры. Давайте добавим его на рабочую область проекта, для этого достаточно просто кликнуть по зебре и элемент появится на рабочей области.
А для того, чтобы было удобнее работать, нажмем на уже вставленный элемент, подержим какое-то время и отпустим. Появится рамка масштабирования элемента, давайте растянем контрол. Кстати, перемещение производится примерно таким же образом. Долго нажимаем, и начинаем перемещать, а с позиционировав — отпускаем.
Отлично, готово. Теперь настроим графический элемент. Для этого достаточно короткого клика по нему, и мы попадаем в настройки контрола. Настроек, кстати, не так уж и много.
Первая настройка отвечает за имя контрола, но так как у нас будет всего один графический элемент такого типа, то смысла пользоваться этим никакого нет. Вторая настройка отвечает за тип отправляемых на МК данных: либо значения цветов отправляются отдельно, как в первом положении, либо эти же значения отправляются массивом, как в случае, когда переключатель в положении MERGE. Выберем второй вариант, мне кажется, он гораздо удобнее. И на картинке сразу же имеется пример того, как стоит поступить с кодом проекта. Но об этом немного позже.
Теперь нам необходимо выбрать пин. Для этого в интерфейсе следует нажать на квадрат с надписью PIN. Обычно тут имеется несколько типов пинов, но так как у нам с вами выбран режим MERGE, то доступен только виртуальный тип, так как физический вывод не способен получить в качестве значения массив.
Я выбрал виртуальный пин V0 и подтвердил свой выбор. Теперь, где было написано PIN, написано V0.
Также обратите внимание, что можно изменить диапазон принимаемых нами значений, сейчас цвет изменяется от 0 до 255, но это можно изменить и ввести любые значения в любом порядке. Но для нас это, конечно же, не актуально, так как библиотека, изменяющая цвет адресной ленты, также работает от 0 до 255.
И осталась еще одна настройка – SEND ON RELEASE. Тут речь идет о том, что значения цвета будут отправляться только после полного изменения и выбора цвета (то есть нажали, выбрали, отпустили, значение отправилось) или же прямо во время изменения цвета (то есть цвет на адресной ленте будет меняться в процессе выбора, отпускать не нужно). Конечно же, второй вариант более эффектный и поэтому выберем его, для этого переведем ползунок в противоположную сторону. И тут станет доступна еще одна настройка — это интервал задержки, между отправлением пакетов с данными. Я выставил минимальный, думаю, понятно почему. Кстати, это аж сто миллисекунд, что достаточно большая задержка, но стоит учитывать, что и сервера Blynk не резиновые, да и пакет может идти по очень длинному маршруту и тогда в огромной скорости отправки изменений не будет смысла. Так что значение в сто миллисекунд не так уж и велико.
На этом все, выходим из настройки, контрол полностью настроен и нажимаем последнюю из кнопок в шапке приложения — кнопку запуска программы (треугольник — play). На этом наше приложение готово управлять МК. Теперь необходимо дописать скетч, чтобы принимать эти команды и правильно ими распорядиться. Так что выходим из настроек и запускаем приложение кнопкой треугольной формы. И вот мы уже видим вполне рабочую программу, с одной единственной функцией – выбор цвета. Кстати, теперь, если закрыть приложение и открыть вновь, программа будет по-прежнему открыта на рабочем приложении.
Финальная программа
Как я говорил ранее, у Blynk есть три составляющих: библиотеки связи, интерфейс и сервера. Связь организованна, интерфейс настроен, сервера работают и без нашего вмешательства. Осталось организовать логику работы программы, чтобы МК, получая данные, мог правильно их использовать. В рамках данной статьи мы уже начали писать программу и не будем бросать ее недописанной. Сейчас я покажу, как выглядит уже ее финальная версия, а потом все объясню.
#define LED_COUNT 5
#define LED_PIN D5
#include «Adafruit_NeoPixel.h»
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = «4_Wpe-jyEdZdNHsATohKnY4dQJmKOyPhRkJkOdU»;
char ssid[] = «Keenetic-2.4»;
char pass[] = «password»;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
int red;
int green;
int blue;
BLYNK_WRITE(V0)
{
red = param[0].asInt();
green = param[1].asInt();
blue = param[2].asInt();
for (int i = 0; i < LED_COUNT; i++)
{
strip.setPixelColor(i, strip.Color(red, green, blue)); // Красный цвет.
}
strip.show();
}
void setup()
{
strip.begin();
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
}
Как я и обещал, проговорим по коду буквально все.
1-2 строка. Задаю количество пикселей в адресной ленте и номер физического вывода, который будет отправлять команды управления на адресную ленту. Это уже ни раз было использовано, не буду заострять внимание.
4-6 строка. Вызываю необходимые библиотеки.
8-10 строка. Данные, необходимые для подключения к Wi—Fi сети и инициализации на серверах Blynk.
12 строка. Создаю объект для управления адресной лентой.
13-15 строка. Создаю три глобальных переменных, чтобы хранить текущее значение цвета ленты.
17-28 строка. И тут нам с вами нужно немного остановиться и разобраться, что же происходит. Во-первых, я думаю, читателя насторожила сама конструкция: это что-то вроде похожее на функцию, но не указан тип возвращаемого значения, а также тип получаемого параметра. И читатель будет прав, но, к сожалению, чтобы объяснить, как так произошло и откуда такая конструкция появилась, уйдет очень много времени и заниматься я этим не стану. Давайте договоримся следующим образом: функции, которые мы писали ранее, будем называть пользовательскими, мы их сами описываем и вызываем. А то, что находится между 17 и 28 строкой, давайте назовем системной функцией, для которой действуют немного другие правила. И если мы посмотрим дальше по коду, то не найдем, откуда данная функция вызывается, — это потому что платформа в купе с библиотеками связи сами вызывают ее тогда, когда нужно. А мы с вами лишь опишем действия, которые должны выполняться. Обратите внимание на то, что параметр, который принимает функция, называется V0, как тот самый виртуальный пин, который мы указали в приложении. А если вы не забыли, данный порт отправлял массив из трех значений, составляющих значение цвета. И вот, как раз ниже, в теле функции, строка 19-21, мы получаем из некого параметра функции, являющегося массивом, значение цвета. Причем видно, что параметр был получен как набор байт и не имеет типизации, что решается с помощью команды asInt(), где мы явно указываем программе тип данных. А вот с 23 по 27 строку начинается уже знакомое для нас действия: в цикле заполняем цветовые значения пикселей во внутренний массив объекта управления strip, и выводим эти значения на саму адресную ленту.
30-34 строка. Можно сказать, тут идет последняя отмашка. Запускаем в работу объект управления лентой, объект связи с Wi—Fi сетью и серверами Blynk.
36-39 строка. Функция loop() тут выполняет лишь одну операцию. По сути, команда Blynk.run() запрашивает данные, предназначенные МК с сервера и отправляет данные, которые должны дойти с МК до приложения. Нет никакой надобности запускать эту команду так часто, но дело в том, что у нас программа простая и функция loop() совершенно пустует. В ином случае синхронизация данных происходила бы гораздо реже, хотя то, что есть сейчас, не скажется негативно на результате, поэтому оставляем.
Теперь остается запрограммировать МК нашей новой программой и испытать работоспособность программы.
Результат
Мы настроили приложение на телефоне, связали его с МК, через сервера Blynk, написали исполнительную программу, а также запрограммировали наш МК. И я не говорю уже о выполненной нами ранее аппаратной части (все, что касается подключения). И теперь мы готовы увидеть результат. Не буду томить и описывать это словами, просто смотрим видео.
Конечно же, моя камера не смогла передать полную цветовую палитру, но тем не менее, смысл полностью понятен. Меняем цвет на палитре, меняется цвет на светодиодной ленте. Тут стоит обратить внимание на то, что телефон имел доступ в интернет не по средствам домашней Wi—Fi сети, а по средствам мобильного подключения 4G. Следовательно, МК и телефон не находились в одной сети, а это значит, что с таким же успехом я бы мог управлять своей лентой с другого конца света, и это очень здорово, а главное, совершенно бесплатно. Также вы могли заметить, что при изменении цвета, изменения происходили не плавно, а небольшими рывками, это как раз из-за 100 млс задержки, между отправкой пакетов.
Заключение
Вот и подошел к завершению мой маленький курс. Несмотря на то, что я объяснял самые простые и начальные вещи, я сам неплохо уложил и систематизировал знания в голове. Не зря говорят: «Хочешь чему-то хорошо научиться, — научи другого». Я надеюсь, что данные статьи будут для вас, моих читателей, полезны. И хочу поблагодарить, за возможность публиковать данный материал, интернет-магазин giant4.
Конечно же, в данных статьях тема раскрыта далеко не полностью, так как это просто невозможно, тут с трудом бы хватило объема целой книги, а может быть даже не одной. Напоследок я хотел бы порекомендовать своему читателю не лениться, искать материал и не бояться новых знаний, ведь что сегодня для нас тяжело, завтра будет элементарной практикой. Как я уже и говорил в рамках данных статей, источником знаний может быть что угодно: поисковик, книга и даже друг-сосед, зашедший в своих исследованиях дальше Вас. И никогда не стоит стесняться просить помощи, если быть открытым и честным, то помощь чуть ли не найдет вас сама.
В общем я желаю Вам развиваться, учиться и быть востребованными специалистами, а также успешных и интересных проектов.