Дистанционное управление ардуино с телефона

Содержание

  1. Arduino Bluetooth Controller
  2. ArduinoDroid — Arduino IDE
  3. RemoteXY: Arduino Control
  4. Приложение Blynk
  5. Bluino Loader – Arduino IDE
  6. Arduino Bluetooth Control
  7. BT Voice Control for Arduino
  8. Virtuino
  9. Bluetooth Controller 8 Lamp
  10. IoT Wi-Fi контроллер

В данном обзоре указаны 10 распространенных приложений в управлении Ардуино с компьютера или телефона, которые легки в изучении и использовании. Arduino – это платформа, разработанная ввиду технологий современного программирования. Плата  с USB разъемами  для блока питания. При подключении к ПК, заряжается. Во внутренней системе есть кнопка для форматирования данных.

Главные составляющие:

  • Бредбоард – соединяет платформу с устройством.
  • Светодиод – индикатор, сигнализирует об управлении.
  • Резистор — контролирует подачу электрического тока внутри платформы.
  • Фоторезистор – реагирует на тип освещения.
  • Транзистор – усиливает электрические сигналы и используется в сложных цепях.

Это было внутреннее описание. Далее переходим к обзору самого приложения. Компанией Google был создан новый интерфейс прикладного программирования под названием Arduino. Предназначается для связи Android устройства с USB. Открывает большие возможности в создании проектов и упрощает программирование и управление с экрана мобильного телефона. Помогает управлять синхронизацией данных.

Обзор возможностей Arduino:

  • создание скетчей;
  • их редактирование, компилирование и загрузка в плате;
  • программирование и разработка кодов.

Работа производится со смартфона из любой части земного шара. В данном обзоре будут описаны программы, разработанные для удаленного пользования Ардуино, а именно Bluetooth и Wi-fi — контроллерами. Они просты в использовании и позволяют работать с любого гаджета. Проект Ардуино состоит из 3 этапов:

  • написание кода;
  • макетирование;
  • прошивка.

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

Arduino Bluetooth Controller

Эта программа работает в 3 основных положениях:

Контроллер. Приложение демонстрируется в облике play идентификатора и управляется кнопками переключения. Работает одной клавишей, основная функция которой – дистанционное управление.

Диммер. На расстоянии регулирует настройки яркости и скорости.

Терминал. Осуществление отправления директива для дешифрирования.

Arduino Bluetooth Controller

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

ArduinoDroid — Arduino IDE

Используется программистами как средство редактирования кодов и создания программ. Особенность – написанный скетч превращается в СС+, компилируется и грузится в Arduino. Отлично подходит для работы новичков в этой области. Приложением можно пользоваться бесплатно и в открытом доступе.

Первым шагом в использовании будет заливка скетча на микроконтроллер. Далее нажав кнопку «Загрузить» необходимо дождаться окончания загрузки. Мигающий светодиод означает, что все было сделано правильно. Все готово к написанию и использованию прошивок.

ArduinoDroid – легкий в использовании софт. Проводит редактирование, компилирование и загрузку кодов в плату с мобильного устройства или планшета. Так же рекомендуется проводить редактирование шифра или заливать готовый, если программа забанена..

RemoteXY: Arduino Control

Данная программа управления Ардуино, позволяет создать персональную панель. Дистанционное управление происходит через:

  • Инет;
  • Вай-Фай;
  • Ик-порт;
  • Блютуз.

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. Когда необходимые процедуры будут выполнены и произойдет начало работы, приложение даст сигнал.

Bluino Loader – Arduino IDE

Настройка софта для создания проектов займет не более 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 или Интернет.

Virtuino

При помощи Виртуино создаются:

светодиоды;

кнопки;

переключатели;

дисплеи задач;

инструменты;

регуляторы.

 Приложение способно совмещать несколько проектов в один. Управляет отличными платформами единовременно через 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 кнопочный интерфейс соответствует каждой лампочке.

Bluetooth Controller 8 Lamp

Метод активен только в пределах видимости. В сравнении с другими беспроводными способами — этот самый дешевый. Комплектующие платы стоят менее 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 через Bluetooth управлять смартфоном.

Когда-нибудь задумывались о том, чтобы управлять любыми электронными устройствами с помощью смартфона? Согласитесь, управлять роботом или любыми другими устройствами с вашего смартфона было бы очень круто. Если вам после этого урока захочется познакомиться с Arduino поближе — вы можете найти книги о нём здесь.

Содержание

  • Шаг 1. Что нам необходимо
  • Шаг 2. Как это работает
  • Шаг 3. Начинаем собирать схему
  • Шаг 4. Загрузка программы в Arduino
  • Шаг 5. Как происходит процесс
  • Шаг 6. Приложение для Андроид-устройств

Шаг 1. Что нам необходимо

Устройства

  • Модуль — Bluetooth Module HC 05/06
  • Плата — Arduino
  • Светодиод (LED)
  • Резистор — 220Ω
  • Android-устройство

Программное обеспечение

  • Arduino IDE
  • Android Studio (на самом деле не нужно, т.к. приложение для Андроида вы найдете ниже).

Что нам необходимо

Шаг 2. Как это работает

Обычно мы делаем этот шаг в конце, но, чтобы вы понимали к чему мы должны прийти — посмотрите на результат на этом промежуточном шаге. Также ниже мы опубликовали видео урока по шагам.

Как это работает

Шаг 3. Начинаем собирать схему

Цепь в нашем уроке настолько проста и мала, что нам нужно сделать всего несколько соединений:

  • Arduino Pins <-> Bluetooth Module Pins
  • RX (Pin 0) <-> TX
  • TX (Pin 1) <-> RX
  • 5V <-> VCC
  • GND <-> GND

Подключите минус светодиода к GND на Arduino, а плюс к контакту 13 через сопротивление 220 Ом — 1 кОм. В целом, на нашем рисунке ниже всё довольно наглядно.

Внимание! Не подключайте RX к RX и TX к TX выходы Bluetooth к выходам Arduino, вы не получите никаких данных, здесь TX означает «передача», RX означает «прием».

Начинаем собирать схему

Шаг 4. Загрузка программы в Arduino

Теперь нам нужно написать программу и загрузить её в наш Arduino. Если вы этого пока еще не умеете делать — скачайте книги здесь. Код ниже именно то, что нам нужно загрузить в Ардуино.

/* Bluetooh Basic: LED ON OFF
* Coder - Mayoogh Girish
* Website - https://bit.do/Avishkar
* Download the App : https://github.com/Mayoogh/Arduino-Bluetooth-Basic
* This program lets you to control a LED on pin 13 of arduino using a bluetooth module
*/
char data = 0; //Variable for storing received data
void setup()
{
Serial.begin(9600); //Sets the baud for serial data transmission
pinMode(13, OUTPUT); //Sets digital pin 13 as output pin
}
void loop()
{
if(Serial.available() > 0) // Send data only when you receive data:
{
data = Serial.read(); //Read the incoming data and store it into variable data
Serial.print(data); //Print Value inside data in Serial monitor
Serial.print("n"); //New line
if(data == '1') // Checks whether value of data is equal to 1
digitalWrite(13, HIGH); //If value is 1 then LED turns ON
else if(data == '0') // Checks whether value of data is equal to 0
digitalWrite(13, LOW); //If value is 0 then LED turns OFF
}
}

Шаг 5. Как происходит процесс

Модуль HC 05/06 работает по последовательному каналу связи. Андроид-приложение последовательно отправляет данные на модуль Bluetooth, когда вы нажимаете определенную клавишу. Bluetooth на другом конце получает данные и отправить на Arduino через TX-соединение модуля Bluetooth (RX-соединение Arduino) .

Код загруженный в Arduino проверяет полученные данные и сравнивает их. Если получена «1» — светодиод включается и выключается при получении «0». Откройте монитор последовательного порта и наблюдайте полученные данные.

Как происходит процесс

Шаг 6. Приложение для Андроид-устройств

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

Как использовать приложение?

После того как мы подключились через Bluetooth — нам нужно скачать и установить приложение, которое при помощи смартфона 🙂 будет управлять нашим светодиодом на расстоянии. Скачать приложение вы можете бесплатно на сайте Амазон.ком. Подсоединяем смартфон к модулю Bluetooth HC 05/06:

  1. Включите модуль HC 05/0
  2. Ищем устройство
  3. Соединяемся с HC 05/06 введя дефолтный пароль «1234» или «0000» (четыре нуля).

После этого мы устанавливаем приложение на наш смартфон. Открываем его. Выбираем устройство — выбираем модуль Bluetooth  из списка (HC 05/06). После успешного подключения нажмите кнопку ON для включения светодиода и кнопку OFF, чтобы выключить светодиод. Потом уже можно нажать кнопку «Отключить», чтобы отключиться от модуля Bluetooth.

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

20 апреля 2016 в 23:41
| Обновлено 21 января 2021 в 20:06 (редакция)
Опубликовано:

Уроки, Arduino

В данной статье будет подробно расписано создание небольшого приложения для мобильной операционной системы Android и скетча для Arduino. На Arduino Uno будет стоять Wireless Shield с Bluetooth-модулем. Приложение будет подключаться к Bluetooth-модулю и посылать некую команду. В свою очередь скетч по этой команде будет зажигать или гасить один из подключенных к Arduino светодиодов.

Нам понадобится

  1. Телефон на базе ОС Android

Создание приложения для Android

Заготовка

Разработка для ОС Android ведется в среде разработки ADT, Android Development Tools. Которую можно скачать с портала Google для разработчиков.
После скачивания и установке ADT, смело его запускаем. Однако, еще рано приступать к разработке приложения. Надо еще скачать Android SDK нужной версии. Для этого необходимо открыть Android SDK Manager «Window → Android SDK Manager». В списке необходимо выбрать нужный нам SDK, в нашем случае Android 2.3.3 (API 10). Если телефона нет, то выбирайте 2.3.3 или выше; а если есть — версию, совпадающую с версией ОС телефона. Затем нажимаем на кнопку «Install Packages», чтобы запустить процесс установки.

После завершения скачивания и установки мы начинаем создавать приложение. Выбираем «File → New → Android Application Project». Заполним содержимое окна так, как показано на рисунке.

  • Application Name — то имя приложения, которое будет показываться в Google Play Store. Но выкладывать приложение мы не собираемся, поэтому имя нам не особо важно.

  • Project Name — имя проекта в ADT.

  • Package Name — идентификатор приложения. Он должен быть составлен следующим образом: название Вашего сайта задом наперед, плюс какое-либо название приложения.

В выпадающих списках «Minimum Required SDK», «Target SDK», «Compile With» выбираем ту версию, которую мы скачали ранее.
Более новые версии SDK поддерживают графические темы для приложений, а старые нет. Поэтому в поле «Theme» выбираем «None».
Нажимаем «Next».

Снимаем галочку с «Create custom launcher icon»: в рамках данной статьи не будем заострять внимание на создании иконки приложения. Нажимаем «Next».

В появившемся окне можно выбрать вид «Activity»: вид того, что будет на экране, когда будет запущено приложение. Выбираем «Blank activity», что означает, что мы хотим начать всё с чистого листа. Нажимаем «Next».

В нашем приложении будет всего одно Activity, поэтому в появившемся окне можно ничего не менять. Поэтому просто жмем на «Finish».

Все, наше приложение создано.

Настройка эмулятора

Отладка приложений для Android производится на реальном устройстве или, если такового нет, то на эмуляторе. Сконфигурируем свой.

Для этого запустим «Window → Android Virtual Device Manager». В появившемся окне нажмем «New». Заполняем поля появившейся формы. От них зависит сколько и каких ресурсов будет предоставлять эмулятор «телефону». Выберите разумные значения и нажимайте «ОК».

В окне Android Virtual Device Manager нажимаем кнопку «Start». Это запустит эмулятор. Запуск занимает несколько минут. Так что наберитесь терпения.

В результате вы увидите окно эмулятора подобное этому:

Заполнение Activity

Activity — это то, что отображается на экране телефона после запуска приложения.
На нем у нас будет две кнопки «Зажечь красный светодиод» и «Зажечь синий светодиод». Добавим их. В панели «Package Explorer» открываем res/layout/activity_main.xml. Его вид будет примерно таким же, как на скриншоте.

Перетаскиваем 2 кнопки «ToggleButton» на экранную форму. Переключаемся во вкладку «activity_main.xml» и видим следующий код:

activity_main_aiutogen.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
 
    <ToggleButton
        android:id="@+id/toggleButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="ToggleButton" />
 
    <ToggleButton
        android:id="@+id/toggleButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/textView1"
        android:layout_alignParentRight="true"
        android:text="ToggleButton" />
 
</RelativeLayout>

Это ни что иное, как наша Activity, которая отображается не в виде графики, а описанная в формате XML.

Сделаем имена компонентов более понятными. Изменим поля android:id следующим образом.

<ToggleButton
        android:id="@+id/toggleRedLed" ...
 
<ToggleButton
        android:id="@+id/toggleGreenLed" ...

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

activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" 
    android:weightSum="2"
    android:orientation="horizontal">
 
    <ToggleButton
        android:id="@+id/toggleRedLed"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#FF0000"
        android:textOff="OFF"
        android:textOn="ON"
        android:textSize="30dp" />
 
    <ToggleButton
        android:id="@+id/toggleGreenLed"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#00FF00"
        android:textOff="OFF"
        android:textSize="30dp"
        android:textOn="ON" />
 
</LinearLayout>

Эти же изменения можно сделать и в графическом режиме, воспользовавшись вкладкой «Outline/Properties».

Пробный запуск

Мы можем запустить только что созданное приложение на эмуляторе. Идем в настройки запуска «Run» → Run Configurations», в левой части нажимаем на «Android Application». Появляется новая конфигурация «New_configuration». В правой части окна выбираем вкладку «Target» и выбираем опцию «Launch on all compatible devices/AVD».

Нажимаем «Apply», а затем «Run». Приложение запустится в эмуляторе.

Можно понажимать кнопки. Но ничего происходить не будет, поскольку обработчики нажатий еще нами не написаны.

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

На реальном устройстве приложение выглядит абсолютно аналогично.

Написание кода для Android

Правка манифеста

Каждое Android-приложение должно сообщить системе о том, какие права необходимо ему предоставить. Перечисление прав идет в так называемом файле манифеста AndroidManifest.xml. В нем мы должны указать тот факт, что хотим использовать Bluetooth в своем приложении.
Для этого достаточно добавить буквально пару строк:

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ru.amperka.arduinobtled"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="10" />
 
    <!-- Разрешаем приложению работать с Bluetooth -->
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="ru.amperka.arduinobtled.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
    </application>
 
</manifest>

Добавляем основной код

Пришла пора вдохнуть жизнь в наше приложение. Открываем файл MainActivity.java (src → ru.amperka.arduinobtled). Изначально он содержит следующий код:

MainActivityAutogen.java
package ru.amperka.arduinobtled;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
 
public class MainActivity extends Activity {
 
        @Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
 
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
 
}

Дополним код в соответствии с тем, что нам нужно:

  1. Будем включать Bluetooth, если он выключен.

  2. Будем обрабатывать нажатия на кнопки

  3. Будем посылать информацию о том, какая кнопка была нажата.

Передавать на Arduino мы будем один байт с двузначным числом. Первая цифра числа — номер пина, к которому подключен тот или иной светодиод, вторая — состояние светодиода: 1 — включен, 0 — выключен.

Число-команда, рассчитывается очень просто:
Если нажата красная кнопка, то берется число 60 (для красного светодиода мы выбрали 6-й пин Arduino) и к нему прибавляется 1 или 0 в зависимости от того, должен ли сейчас гореть светодиод или нет. Для зеленой кнопки всё аналогично, только вместо 60 берется 70 (поскольку зеленый светодиод подключен к 7 пину).
В итоге, в нашем случае, возможны 4 команды: 60, 61, 70, 71.

Напишем код, который реализует всё сказанное.

MainActivity.java
package ru.amperka.arduinobtled;
 
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
 
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
import android.widget.ToggleButton;
 
public class MainActivity extends Activity implements View.OnClickListener{
 
    //Экземпляры классов наших кнопок
    ToggleButton redButton;
    ToggleButton greenButton;
 
    //Сокет, с помощью которого мы будем отправлять данные на Arduino
    BluetoothSocket clientSocket;
 
    //Эта функция запускается автоматически при запуске приложения
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        //"Соединям" вид кнопки в окне приложения с реализацией
        redButton = (ToggleButton) findViewById(R.id.toggleRedLed);
        greenButton = (ToggleButton) findViewById(R.id.toggleGreenLed);
 
        //Добавлем "слушатель нажатий" к кнопке
        redButton.setOnClickListener(this);
        greenButton.setOnClickListener(this);
 
        //Включаем bluetooth. Если он уже включен, то ничего не произойдет
        String enableBT = BluetoothAdapter.ACTION_REQUEST_ENABLE;
        startActivityForResult(new Intent(enableBT), 0);
 
        //Мы хотим использовать тот bluetooth-адаптер, который задается по умолчанию
        BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
 
        //Пытаемся проделать эти действия
        try{
            //Устройство с данным адресом - наш Bluetooth Bee
            //Адрес опредеяется следующим образом: установите соединение
            //между ПК и модулем (пин: 1234), а затем посмотрите в настройках
            //соединения адрес модуля. Скорее всего он будет аналогичным.
            BluetoothDevice device = bluetooth.getRemoteDevice("00:13:02:01:00:09"); 
 
            //Инициируем соединение с устройством
            Method m = device.getClass().getMethod(
                    "createRfcommSocket", new Class[] {int.class});
 
            clientSocket = (BluetoothSocket) m.invoke(device, 1);
            clientSocket.connect();
 
            //В случае появления любых ошибок, выводим в лог сообщение
        } catch (IOException e) {
            Log.d("BLUETOOTH", e.getMessage());
        } catch (SecurityException e) {
            Log.d("BLUETOOTH", e.getMessage());
        } catch (NoSuchMethodException e) {
            Log.d("BLUETOOTH", e.getMessage());
        } catch (IllegalArgumentException e) {
            Log.d("BLUETOOTH", e.getMessage());
        } catch (IllegalAccessException e) {
            Log.d("BLUETOOTH", e.getMessage());
        } catch (InvocationTargetException e) {
            Log.d("BLUETOOTH", e.getMessage());
        }
 
        //Выводим сообщение об успешном подключении
        Toast.makeText(getApplicationContext(), "CONNECTED", Toast.LENGTH_LONG).show();
 
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
 
    //Как раз эта функция и будет вызываться 
 
    @Override
    public void onClick(View v) {
 
        //Пытаемся послать данные
        try {
            //Получаем выходной поток для передачи данных
            OutputStream outStream = clientSocket.getOutputStream();
 
            int value = 0;
 
            //В зависимости от того, какая кнопка была нажата, 
            //изменяем данные для посылки
            if (v == redButton) {
                value = (redButton.isChecked() ? 1 : 0) + 60;
            } else if (v == greenButton) {
                value = (greenButton.isChecked() ? 1 : 0) + 70;
            }
 
            //Пишем данные в выходной поток
            outStream.write(value);
 
        } catch (IOException e) { 
            //Если есть ошибки, выводим их в лог
            Log.d("BLUETOOTH", e.getMessage());
        }
    }
}

Написание скетча

Данные, которые принимает Bluetooth-модуль, приходят через UART (он же Serial-соединение) на скорости 9600 бит/с. Настраивать Bluetooth-модуль нет никакой необходимости: он сразу готов к работе. Поэтому скетч должен уметь следующее:

  1. Принять данные по UART

  2. Зажечь нужный светодиод в зависимости от принятого кода

bluetooth.ino
void setup() {
    //Устанавливаем скорость UART
    Serial.begin(9600); 
 
    //Настраиваем нужные пины на выход
    pinMode(6, OUTPUT);
    pinMode(7, OUTPUT);    
}
 
void loop() {
    //Если данные пришли
    if (Serial.available() > 0) {
 
        //Считываем пришедший байт
        byte incomingByte = Serial.read();
 
        //Получаем номер пина путем целочисленного деления значения принятого байта на 10
        //и нужное нам действие за счет получения остатка от деления на 2:
        //(1 - зажечь, 0 - погасить)
        digitalWrite(incomingByte / 10, incomingByte % 2);
    }
}

Особенности заливки скетча

Для связи Bluetooth-Bee с контроллером используются те же пины (0 и 1), что и для прошивки. Поэтому при программировании контроллера переключатель «SERIAL SELECT» на «Wireless Shield» должен быть установлен в положение «USB», а после прошивки его надо вернуть в положение «MICRO».

Результат

Заключение

В данной статье мы научились создавать приложения для операционной системы Android и передавать данные по Bluetooth. Теперь при нажатии на кнопку на экране телефона на базе операционной системы Android, произойдет изменение состояния светодиода на плате.

Вы можете развить мысль и сделать более дружественный интерфейс на Android, управлять с его помощью гораздо более сложными устройствами, публиковать классные приложения в Android Market и ещё много-много всего интересного!

Очень часто в ваших проектах возникает необходимость в дистанционном управлении или передачи данных с ваших телефонных гаджетов.

Один из самых популярных и распространенных методов обмена данными посредством Bluetooth.

Сегодня мы разберем простые примеры как можно подключить Bluetooth модуль к Arduino и настроить дистанционное управление с телефона.

Нам понадобится:

  • Arduino Uno R3
  • Набор проводов ПАПА-МАМА
  • HC-06 Bluetooth

Схема подключения Bluetooth к Arduino:

Подключать Bluetooth модуль к микроконтроллеру Arduino удобнее всего с помощью проводков ПАПА-МАМА.

Arduino Bluetooth
Pin 1 (TX) RXD
Pin 0 (RX) TXD
GND GND
5V VCC

Будьте внимательны, подключать подключать нужно TX -> RXD ,RX -> TXD.

Теперь необходимо записать пробный код программы:

Во время загрузки скетча необходимо что бы Bluetooth модуль был отключен от микроконтроллера arduino. В противном случае скетч не запишется, потому что связь с Bluetooth модулем происходит по одному и томуже порту RX и TX, что и USB.

int val;
int LED = 13;
void setup()
{
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  digitalWrite(LED, HIGH);
}
void loop()
{
  if (Serial.available())
  {
    val = Serial.read();
    // При символе "1" включаем светодиод
    if (val == '1')
    {
      digitalWrite(LED, HIGH);
    }
    // При символе "0" выключаем светодиод
    if ( val == '0')
    {
      digitalWrite(LED, LOW);
    }
  }
}

Скачать скетч можно по ссылке.

После того как скетч записан и Bluetooth модуль подключен к Arduino, можно перейти к следующему шагу.

Подключение Bluetooth к телефону

Желательно в качестве источника питания для arduino использовать не USB, а внешний Блок питания на 9 В.

  1. Включаем Bluetooth на телефоне и ищем новые устройства
  2. Находим в списке расстройств «HC-06″ и подключаемся к нему.
  3. Телефон спросит пин-код. необходимо ввести «1234» или «0000«
  4. Ура. Устройство подключено.

Теперь нужно скачать bluetooth terminal на ваш телефон. Мы рассмотрим на примере платформы Android.

Вы можете установить разные bluetooth терминалы, как правило они отличаются только разными дизайнами, функционал от этого не меняется. Так же можно найти и терминал и для продуктов ios.

После того как мы установили терминал, запускаем его выбираем наш bluetooth модуль HC-06 и подключаемся к нему.

Пришло время попробовать проект в деле. Пишем в терминале цифру «0» и отправляем. Светодиод L который находится на плате arduino рядом с pin 13, должен погаснуть. Теперь отправим через терминал цифру «1» и светодиод L должен зажечься.

Демонстрация работы:

Домашняя работа:

  • Изменить скетч так, что бы светодиод зажигался и потухал с помощью одной и той же команды например «G».
  • Дописать скетч и научить его преобразовывать текстовые данные приходящие через блютус в цифровые и реализовать димер, зажигать светодиод с помощью ШИМ, на заданную яркость от 0 до 254 приходящую через bluetooth.

Платы 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 в рубрике Блог

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

Автоматизация дома на Arduino под управлением смартфона: внешний вид конструкции

Ранее на нашем сайте мы уже рассматривали различные проекты автоматизации дома:

— автоматизация дома под управлением персонального компьютера;
— автоматизация дома с помощью пульта инфракрасной связи;
— автоматизация дома с помощью GSM;
— автоматизация дома с помощью MATLAB и Arduino.

В этой же статье мы рассмотрим проект автоматизации дома на Arduino под управлением смартфона. Сигналы управления со смартфона будут передаваться с помощью технологии Bluetooth.

Необходимые компоненты

  1. Плата Arduino Mega (или другая модель) (купить на AliExpress).
  2. Мобильный телефон на Android (смартфон).
  3. Bluetooth модуль HC05 (купить на AliExpress).
  4. Приложение Bluetooth terminal.
  5. Микросхема (драйвер двигателей) L293D (купить на AliExpress).
  6. Два реле на 6 В.
  7. ЖК дисплей 16х2 (купить на AliExpress).
  8. Две электрические лампочки.
  9. Адаптер на 12 v,1A.
  10. Макетная плата.

Работа схемы

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

Схема автоматизации дома на Arduino под управлением смартфона

На схеме показаны необходимые соединения платы Arduino с ЖК дисплеем, Bluetooth модулем HC05 и микросхемой L293D (драйвером двигателей).

Два реле подсоединены к микросхеме L293D для управления двумя приборами постоянного тока (в нашем проекте их роль выполняют электрические лампочки). Реле имеют 5 контактов, из которых 2 (вокруг контакта COM) подсоединены к L293D и GND. А общий контакт (COM) соединен с контактами AC приборов.

Микросхема L293D используется для увеличения тока (поскольку контакты платы Arduino не могут обеспечить нужный ток для управления реле). Контакт Vcc2 или VS L293D должен быть подключен к контакту VIN (контакт входного напряжения или Vcc) платы Arduino. Контакты Input 1 и Input 2 L293D подключены к контактам 10 и 11 платы Arduino, а выходные контакты подключены к контактам реле.

Принципы работы проекта

Сначала нам необходимо скачать и установить на наш смартфон приложение Bluetooth Terminal App (можно использовать и другое аналогичное приложение) и подключить смартфон к Bluetooth модулю HC05. Затем сконфигурировать приложение Bluetooth Terminal как в этой статье.

После того, как мы выполним все это, мы сможем передавать данные с нашего смартфона (из приложения Bluetooth Terminal) на Bluetooth модуль HC05, который затем сможет передавать эти данные по последовательному порту плате Arduino Mega. ЖК дисплей 16×2 используется для отображения статуса (включен/выключен) управляемых нами электронных устройств. Микросхема L293D используется для управления двумя реле, к которым подключены электрические лампочки. Адаптер 12v используется для питания платы Arduino и всей схемы. Структурная схема работы устройства представлена на следующем рисунке.

Структурная схема работы нашего проекта

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

В целом, наше устройство будет выполнять следующие операции:

  • если мы передаем символ ‘a’ через приложение Bluetooth Terminal, то электрическая лампочка № 1 включится, а электрическая лампочка № 2 выключится;
  • если мы передаем символ ‘b’ через приложение Bluetooth Terminal, то электрическая лампочка № 1 выключится, а электрическая лампочка № 2 включится;
  • если мы передаем символ ‘c’ через приложение Bluetooth Terminal, то обе электрические лампочки включатся;
  • если мы передаем символ ‘d’ через приложение Bluetooth Terminal, то обе электрические лампочки выключатся.

Более подробно все эти процессы вы можете посмотреть в видео в конце статьи.

Исходный код программы

Вначале подключим библиотеку LiquidCrystal.h, необходимую для корректной работы с ЖК дисплеем, и укажем контакты Arduino, к которым подключен ЖК дисплей.

#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

Сконфигурируем контакты 10 и 11 Arduino для работы на вывод данных и используем функцию Serial.begin(9600) чтобы задействовать последовательный порт для связи между Arduino и Bluetooth модулем HC05.

void setup() {
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
Serial.begin(9600);
lcd.begin(16, 2);
lcd.print("**AUTOMATION**");
}

В функции void loop() будем проверять поступление каких-либо данных по последовательному порту и помещать эти данные в переменную символьного типа (char c).

void loop() {
if (Serial.available() > 0)
{
char c = Serial.read();
if (c == 'a')
{
Serial.print("in a code");
..... .......
....... ......

Затем мы будем сравнивать символ, поступивший из последовательного порта (char c) с заранее определенными символами ‘a’ ,’b’, ’c’, ’d’, которые используются для управления нашими устройствами. После сравнения плата Arduino выдает соответствующие команды на включение/выключение соответствующих устройств.

Далее представлен полный текст программы.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

#include <LiquidCrystal.h> // подключение библиотеки для работы с ЖК дсиплеем

LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // контакты Arduino, к которым подключен ЖК дисплей

void setup() {

  pinMode(11, OUTPUT);

  pinMode(10, OUTPUT);

  Serial.begin(9600);

  lcd.begin(16, 2);

  lcd.print(«**AUTOMATION**»);

}

void loop() {

  if (Serial.available() > 0)

  {

    char c = Serial.read();

    if (c == ‘a’)

    {

     Serial.print(«in a code»);

     digitalWrite(10,HIGH);

     digitalWrite(11,LOW);

     Serial.print(«10 HIGH»);

     lcd.clear();

     lcd.print(«**BULB1 ON**»);

    }

    if(c==‘b’)

    {

     digitalWrite(11,HIGH);

     digitalWrite(10,LOW);

     Serial.print(«11 HIGH»);

     lcd.clear();

     lcd.print(«**BULB2 ON**»);

    }

    if(c==‘c’)

    {

     digitalWrite(10,HIGH);

     digitalWrite(11,HIGH);

     lcd.clear();

     lcd.print(«**BULB 1,2 ON**»);

    }

    if(c==‘d’)

    {

     digitalWrite(10,LOW);

     digitalWrite(11,LOW);

     lcd.clear();

     lcd.print(«**BULB 1,2 OFF**»);

    }

  }

}

Видео, демонстрирующее работу схемы

Загрузка…

1 071 просмотров

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

Если вам нужно сказать Arduino изменить состояние булавки (например, чтобы включить свет), пользователю необходимо нажать физическую кнопку или использовать датчик. Полагаться на человеческое нажатие пальца или подобное хорошо для многих проектов, но что, если вы просто хотите настроить свою схему и получить к ней удаленный доступ?

6 простых способов подключить Arduino к Android Arduino Uno 670

В этой статье рассказывается о 6 способах подключения устройства Android к любой плате, совместимой с Arduino . Давайте погрузимся в .

1. ArduinoDroid

Первый в нашем списке — ArduinoDroid . Это приложение работает через USB On The Go (OTG), чтобы подключить ваше устройство к Arduino через USB-кабель. Одним из преимуществ USB является то, что для его работы не требуется подключение к Интернету или Bluetooth.

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

6 простых способов подключить Arduino к Android ArduinoDroidPictureLandscape 670

Преимущества использования этого приложения очевидны. Наличие IDE в руках — идеальная вещь для быстрых изменений в этой области. Подключить устройство Android гораздо проще, чем балансировать ноутбук на руке!

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

Это также недорогой способ изучения основ Arduino. , так как клоновая плата Arduino и USB OTG-кабель стоят всего несколько долларов. Идеально подходит для тех, у кого нет частого доступа к компьютеру!

2. Arduino Bluetooth контроллер

Следующим в нашем списке является точно названное приложение Arduino Bluetooth Controller. Это приложение не столько для программирования Arduino на лету, сколько для запуска изменений в загруженном эскизе. Приложение отправляет данные на вашу доску через Bluetooth, что позволяет отправлять последовательные данные нажатием кнопки в приложении. Вам понадобится модуль Bluetooth для вашей платы, хотя модуль HC-06 широко используется и доступен на момент написания всего за 3 доллара .

Чтобы получить отличную информацию о начале работы с этими дешевыми небольшими модулями, посмотрите это видео от Tinkernut Labs:

В приведенном выше видео рекомендуется другое приложение, хотя некоторые пользователи сообщают, что оно не работает на современных смартфонах. Контроллер Bluetooth Arduino, похоже, не страдает от этой проблемы. Стоит отметить, что приложение загружается не на итальянском, а на английском, как показано на картинках Play Store!

3. Блинк

Мы уже рассматривали создание проектов с помощью Blynk и обнаружили, что это отличный сервис. Его гибкость и простота делают его интуитивно понятным способом запуска событий на вашей доске. Blynk требует подключения к Интернету, так как он использует свой собственный сервер. Вы можете использовать Wi-Fi или мобильные данные для доступа к Blynk , что делает его идеальным для использования на смартфоне.

Одной из сильных сторон Blynk является ряд способов подключения к устройству. Наряду с поддержкой практически всех плат разработки, вы можете подключиться к серверу по беспроводной сети, используя Ethernet, или даже использовать подключение к компьютеру через USB. Сервис хорошо документирован, а его интуитивно понятное приложение упрощает создание пользовательских элементов управления для вашего проекта. Библиотека Blynk для Arduino IDE отвечает за все коммуникации.

Если вы тот человек, который хочет запустить свою кофемашину со своего телефона до того, как они встают утром, то этот для вас!

Blynk — не единственная служба в этой области, также стоит обратить внимание на сильно настраиваемый Thinger.io и практически безграничный, но ужасно сложный OpenHAB . Из всех трех Blynk, безусловно, быстрее всего запускается и работает, хотя изучает OpenHAB — отличная идея в долгосрочной перспективе.

4. Общение с нуля

Все, что мы рассмотрели до сих пор, использует уже существующие сервисы, чтобы помочь вам подключаться различными способами, но что, если вы хотите получить полный контроль над каждым аспектом приложения Android? Почему бы не сделать это самостоятельно с нуля?

Харихаран Матхаван проведет нас через весь процесс в этом обширном пошаговом руководстве . Созданное здесь приложение предназначено просто для открытия USB-соединения и передачи последовательных данных назад и вперед между приложением и платой Arduino. Это отличный способ познакомиться с Android Studio и сборкой приложений в целом.

Руководство проведет вас через весь код, необходимый для связи с вашим Arduino через USB, предоставляя объяснения на каждом этапе. Последующее руководство о том, как реализовать подключение Bluetooth, также хорошо объяснено.

6 простых способов подключить Arduino к Android bluetooth android DIY комбинированный2 670

Хотя существуют способы создания приложений для Android без кодирования , стоит изучить основы кодирования на Java. Создание собственных приложений — это круто, но, прежде чем вы узнаете об этом, у вас может быть совершенно новая карьера. !

5. Превратите свой Arduino в сервер

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

Для этого невероятно подробного учебника с сайта startelectronics.org необходим щит Ethernet, чтобы подключить плату к домашней сети. Вот видео этого в действии:

Не получил сетевой щит? Не бойтесь, того же можно достичь с помощью щита Wi-Fi или платы, подключенной к Wi-Fi, например NodeMCU.

Если node.js — это ваш джем, то для вас может иметь смысл взглянуть на проект arduino-android github . Приложение Android снова поставляется с исходным кодом, так что вы можете получить под капотом и возиться с душой. Это довольно просто, но есть все для реализации сервера node.js на плате Arduino по вашему выбору.

Если вам больше нравится Python , у пользователя Instructables metanurb есть учебник по модулю Bluetooth .

6 простых способов подключить Arduino к Android Arduino Android 2

6. Инфракрасный контроль

Ищете настоящий дикий способ поговорить с вашим Arduino? Вы хотите получить полный MacGyver? Затем извлеките инфракрасный (ИК) приемник из старого стерео или VHS-плеера и используйте его, чтобы поговорить с вашей платой Arduino!

Этот метод требует, чтобы на вашем Android-устройстве был установлен встроенный ИК-бластер. Для использования этой функции доступно множество приложений, хотя контроллер Mi Remote бесплатный и работает со многими другими бытовыми устройствами.

6 простых способов подключить Arduino к Android-приложению Mi Ir 670

Как только приложение будет запущено и запущено, вам нужно будет создать простую схему, чтобы «вынюхивать» ИК-сигналы. Это руководство по дистанционному ИК-обучению проведет вас через процесс построения схемы.

Хотя в этом руководстве используется старый пульт дистанционного управления, процесс использования устройства Android с ИК-подсветкой точно такой же, а наличие деталей делает его отличным проектом для начинающих.

Этот метод работает только в пределах прямой видимости. Однако это самый дешевый способ беспроводной связи с вашей платой. Даже если вы не можете очистить детали для этого, ИК-приемник стоит меньше доллара . Для статического устройства, такого как набор светодиодных лент, установленных на потолке, это может быть идеальным решением простой проблемы.

Мы пропустили инструмент?

Это несколько способов освободить Arduino от вашего компьютера, хотя мы уверены, что их гораздо больше. Какой бы метод вы ни использовали, почему бы не реализовать его в классном проекте, таком как спуск затвора DSLR. или светодиодный куб ?

Как вы разговариваете со своей платой Arduino? Вы всегда используете компьютер? Есть ли хитрый способ поговорить с нашими досками, которые мы здесь пропустили? Дайте нам знать в разделе комментариев ниже !

Кредит изображения: almoond / Depositphotos

Скетч для Arduino

Мы будем использовать для работы такой скетч:

Хотя nRF8001 является 3.3В устройством, Vcc и контакты данных устойчивы к 5В, так что вы можете использовать и то, и другое. Эскиз для демонстрации проекта основан на примере, представленном в библиотеке в разделе «examples» как «echodemo».

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

Попробуйте набрать какой-нибудь текст и нажмите «send», и он появится в серийном окне. Введите текст в серийное окно и отправьте его, и оно появится на вашем телефоне.

В измененном примере ниже, я добавил красный, зеленый и синий светодиод на плату, и вы можете мигать ими, введя r, или b, или g с телефона. При вводе слова со всеми тремя, например, «grab» будут мигать все три. У меня старый Samsung Galaxy и работало всё просто отлично.

На этом всё. Оставляйте вопросы или комментарии ниже, наше сообщество поможет в любой ситуации.

Написание скетча

Данные, которые принимает Bluetooth-модуль, приходят через UART (он же Serial-соединение) на скорости 9600 бит/с. Настраивать Bluetooth-модуль нет никакой необходимости: он сразу готов к работе. Поэтому скетч должен уметь следующее:

  1. Принять данные по UART
  2. Зажечь нужный светодиод в зависимости от принятого кода
bluetooth.ino
void setup() {
    //Устанавливаем скорость UART
    Serial.begin(9600); 
 
    //Настраиваем нужные пины на выход
    pinMode(6, OUTPUT);
    pinMode(7, OUTPUT);    
}
 
void loop() {
    //Если данные пришли
    if (Serial.available() > ) {
 
        //Считываем пришедший байт
        byte incomingByte = Serial.read();
 
        //Получаем номер пина путем целочисленного деления значения принятого байта на 10
        //и нужное нам действие за счет получения остатка от деления на 2:
        //(1 - зажечь, 0 - погасить)
        digitalWrite(incomingByte  10, incomingByte % 2);
    }
}

Особенности заливки скетча

Для связи Bluetooth-Bee с контроллером используются те же пины (0 и 1), что и для прошивки. Поэтому при программировании контроллера переключатель «SERIAL SELECT» на «Wireless Shield» должен быть установлен в положение «USB», а после прошивки его надо вернуть в положение «MICRO».

Подключение и настройка

Bluetooth-модуль общается с управляющей платой по протоколу UART. Дополнительный сигнальный пин служит для перевода модуля в режим AT-команд.

Для работы с модулем удобно использовать Troyka Shield.
Если хотите избавиться от проводов —
возьмите Troyka Slot Shield.

SoftwareSerial

Некоторые платы Arduino прошиваются через пины 0 и 1 (Arduinio Uno, Arduino Mega 2560, Arduino ADK и Iskra Mini). Перед прошивкой таких плат отключите Bluetooth-модуль от пинов RX и TX. Если необходимо одновременно работать с Bluetooth и подключать контроллер к компьютеру, подключите пины TX и RX к другим контактам управляющей платы.

Для примера подключим управляющие пины Bluetooth-модуля и — на и пин Arduino через Troyka Shield.
После включения Bluetooth HС-05 на нём замигает светодиод .

Bluetooth-модуль работает в двух режимах: «прозрачного UART» и управления AT-командами. В первом случае всё предельно просто — включаете модуль, подключаетесь к нему с компьютера или иного устройства и шлёте на этот порт данные. Второй режим предназначен для настройки модуля.

Режим AT-команд

Чтобы получить доступ к настройке модуля, его необходимо перевести в режим приёма AT-команд. Для входа в этот режим можно воспользоваться двумя методами:

Первый метод:

  1. Отключаем модуль от питания.
  2. Подаем на пин высокий уровень.
  3. Включаем модуль.

В этом варианте скорость обмена с модулем устанавливается в бод.

Второй метод

  1. Включаем модуль.
  2. Подаем на пин высокий уровень.

В этом случае скорость обмена с модулем будет равна скорости, установленной настройками. По умолчанию — 9600 бод.

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

Bluetooth-модуль может работать в 3-х режимах:

  • Master — в этом режиме модуль сам инициирует подключение к какому-нибудь Bluetooth-девайсу.
  • Slave — самый распространённый режим. С ним мы можем подключиться к модулю сами. Например с телефона.
  • Slave-loop — здесь модуль отправляет обратно все байты, которые ему прислали.

Шаг 4. Загрузка программы в Arduino

Теперь нам нужно написать программу и загрузить её в наш Arduino. Если вы этого пока еще не умеете делать — скачайте книги здесь. Код ниже именно то, что нам нужно загрузить в Ардуино.

/* Bluetooh Basic: LED ON OFF
* Coder - Mayoogh Girish
* Website - https://bit.do/Avishkar
* Download the App : https://github.com/Mayoogh/Arduino-Bluetooth-Basic
* This program lets you to control a LED on pin 13 of arduino using a bluetooth module
*/
char data = 0; //Variable for storing received data
void setup()
{
Serial.begin(9600); //Sets the baud for serial data transmission
pinMode(13, OUTPUT); //Sets digital pin 13 as output pin
}
void loop()
{
if(Serial.available() > 0) // Send data only when you receive data:
{
data = Serial.read(); //Read the incoming data and store it into variable data
Serial.print(data); //Print Value inside data in Serial monitor
Serial.print("n"); //New line
if(data == '1') // Checks whether value of data is equal to 1
digitalWrite(13, HIGH); //If value is 1 then LED turns ON
else if(data == '0') // Checks whether value of data is equal to 0
digitalWrite(13, LOW); //If value is 0 then LED turns OFF
}
}

Программируем Ардуино используя Ноутбук или PC

Начните с того, что скопируйте код, который приведен ниже. Затем, вставьте его в Arduino IDE. Скомпилируйте. Загрузите.

Этот код содержит несколько функций для изменения параметров модуля Bluetooth HC-05:

AT+NAME=Bluino#00 : Измените имя модуля bluetooth, имя по умолчанию — «HC-05».
AT+BAUD=115200,0,0 : Измените скорость передачи, бод, на 115200 (Arduino Uno, Bluino и Mega2560)
AT+BAUD=57600,0,0 : Измените скорость передачи, бод, на 57600 (Arduino Nano, Leonardo, Micro, Pro Mini 3V3/5V и Duemilanove)
AT+POLAR=1,0 : Изменить состояние пина.

Дополнительно вы можете сменить пароль, чтобы использовать не стандартный пароль при спаривании, AT+PSWD=xxxx.

Имя bluetooth должно быть «Bluino#00-9999», если вы хотите использовать собственное имя, вы должны использовать платную версию Bluino Loader App.

//======================
void setup() {
Serial.begin(38400);
delay(500);
Serial.println("AT+NAME=Bluino#00");
delay(500);

/* Используйте эту скорость при использовании с Arduino Uno, Bluino и Mega2560 */

Serial.println("AT+UART=115200,0,0");

/* Используйте эту скорость при использовании с Arduino Nano, Leonardo, Micro, Pro Mini 3V3/5V и Duemilanove */
//Serial.println("AT+UART=57600,0,0");

delay(500);
Serial.println("AT+POLAR=1,0");
delay(500);
}
void loop() {
}
//======================

Режим Slave «Ведомый»

Модуль ожидает сопряжение от другого Bluetooth устройства. В качестве примера рассмотрим подключение смартфона к BLE-модулю. Со стороны последовательного порта возьмём USB-UART преобразователь.

Настройка модуля

Для начала необходимо настроить Bluetooth через AT-команды.

AT-команды служат для настройки модуля, например:

  • узнать/изменить имя устройства;
  • узнать/изменить пароль;
  • узнать MAC-адрес устройства и т.д.
  1. Запустите терминал на ПК. Например встроенный в Arduino IDE или Putty.
  2. Выставьте настройки последовательного порта:

    1. скорость: 9600 бод
    2. бит чётности: N
    3. количество бит данных: 8
    4. количество стоповых бит: 1
    5. без возврата каретки «r»
    6. без новой строки «n»
  3. В качестве теста отправьте на модуль команду:

    AT

    В ответ вы должны получить:

    OK

    Если ответа нет — проверьте схему, не помогло — .

, а полный список — в документации на модуль HM-10.

Настройка телефона с ОС Android

  1. Запустите приложение.
  2. Зайдите в меню:
    Настройки ≡
    Devices и нажмите кнопку .
  3. Выберите по имени интересующий BLE-модуль. По умолчанию имя модуля — HMSoft.
  4. Вернитесь в главное меню и соединитесь с выбранным девайсом — нажмите на кнопку
  5. При успешном сопряжении:

    1. В окне терминала телефона появится надпись ;
    2. В окне терминала на ПК вернётся команда ;
    3. Светодиод будет гореть непрерывно.

Это значит всё получилось и можно передавать данные в обоих направлениях.

Настройка телефона с ОС iOS

  1. Запустите приложение.
  2. Нажмите на кнопку для поиска новых Bluetooth устройств.
  3. Выберите по имени интересующий BLE-модуль и нажмите кнопку . По умолчанию имя модуля — HMSoft.
  4. При успешном сопряжении:

    1. В окне терминала телефона появится надпись сопряжённого BLE-устройства;
    2. В окне терминала на ПК вернётся команда ;
    3. Светодиод будет гореть непрерывно.

Это значит всё получилось и можно передавать данные в обоих направлениях.

Передача данных

Для примера отправим из телефона сообщение . В ответ в терминале на ПК придёт послание .

И в обратную сторону: отправим из терминала ПК текст . В ответ в терминале телефона увидим сообщение .

Вместо USB-UART адаптера возьмите любую управляющую платформу. Например Arduino Uno или Iskra JS. Для общение используйте интерфейс .

Приложение и скетч для машинки на Ардуино

После сборки схемы загрузите следующий скетч для машинки (не забудьте отключать Bluetooth модуль от Ардуино при загрузке) и установите приложение на смартфоне. Все файлы для проекта (библиотека AFMotor.h, скетч для машинки и приложение для Android) можно скачать одним архивом по прямой ссылке здесь. Работу скетча можно проверить управлением машинки от компьютера через Serial Monitor по USB.

#include <AFMotor.h>  // подключаем библиотеку для шилда
AF_DCMotor motor1(1); // подключаем мотор к клеммнику M1
AF_DCMotor motor2(2); // подключаем мотор к клеммнику M2

int val; // освобождаем память в контроллере

void setup() {

  Serial.begin(9600);
  pinMode(2, OUTPUT);   // Порт для светодиодов
  motor1.setSpeed(250); // задаем максимальную скорость мотора
  motor1.run(RELEASE);  // останавливаем мотор
  motor2.setSpeed(250); // задаем максимальную скорость мотора
  motor2.run(RELEASE);  // останавливаем мотор
}

void loop() {

if (Serial.available()) // проверяем, поступают ли какие-то команды
  {
    val = Serial.read();

    if (val == 'f') { // едем вперед
motor1.run(FORWARD);
motor1.setSpeed(250); 
motor2.run(FORWARD);
motor2.setSpeed(250);
 }

    if (val == 'b') { // едем назад
motor1.run(BACKWARD);
motor1.setSpeed(200); 
motor2.run(BACKWARD);
motor2.setSpeed(200);
 }

    if (val == 's') { // останавливаемся
motor1.run(RELEASE);
motor2.run(RELEASE);
 }

    if (val == 'l') { // поворачиваем налево
motor1.run(FORWARD);
motor1.setSpeed(100); 
motor2.run(BACKWARD);
motor2.setSpeed(250);
 }

    if (val == 'r') { // поворачиваем направо
motor1.run(BACKWARD);
motor1.setSpeed(250); 
motor2.run(FORWARD);
motor2.setSpeed(100);
 }

    if (val == '1') { // включаем светодиоды
digitalWrite(2,HIGH);
 }

    if (val == '0') { // выключаем светодиоды
digitalWrite(2,LOW);
 }

}
}

Пояснения к коду:

  1. для тестирования, можно отправлять команды с компьютера через USB;
  2. вращение моторов при подключении к аккумулятору будут отличаться;
  3. вы можете задавать свою скорость вращения моторами.


Управление машинкой на Ардуино через Андроид

Элементы платы

Модуль HM-10

Светодиодная индикация

Имя светодиода Назначение
RX и TX Мигают при обмене данными между BLE модулем и управляющим устройством.
PAIR Горит, если модуль сопряжён с другим устройством;
Мигает — нет сопряжения;

Troyka-контакты

На Bluetooth модуле выведено две пары Troyka-контактов.

Нижняя группа

  • Питание (V) — соедините с рабочим напряжением микроконтроллера.
  • Земля (G) — Соедините с пином микроконтроллера.
  • Сигнальный (TX) — цифровой выход BLE-модуля. Используется для передачи данных из Bluetooth в микроконтроллер. Подключите к пину микроконтроллера.

Верхняя группа

  • Сигнальный (RX) — цифровой вход BLE-модуля. Используется для приёма данных из микроконтроллера в Bluetooth. Подключите к пину микроконтроллера.
  • Сигнальный (K) — пин управления BLE-модулем. Подключите к сигнальному пину микроконтроллера.

Регулятор напряжения

Понижающий регулятор напряжения TPS73033 с выходом 3,3 вольта, обеспечивает питание Bluetooth-модуля. Максимальный выходной ток составляет 200 мА.

На плате так же присутствует необходимая обвязка для сопряжения устройств с разными питающими напряжениями.

В нашем случае это может быть управляющая плата Arduino с 5 вольтовой логикой и BLE-модуль с 3,3 вольтовой логикой.

Характеристики Bluetooth модуля HC-05 / HC-05

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


HC-05/06 Bluetooth модуль распиновка

Оба устройства построены на чипе CSR BC417, который поддерживает радиосигнал по протоколу Bluetooth со скоростью до 3 Мбит/сек. На самой плате находится антенна из дорожки в виде змейки, обеспечивающая дальность связи до 10 метров. Главным преимуществом можно назвать устойчивость к широкополосным помехам, а значит несколько устройств могут общаться между собой, не мешая друг другу.

Скетч для управления Ардуино через блютуз со смартфона на Android ничем не отличается от скетча, который применяется для управления Ардуино с компьютера. Так как в обоих случаях микроконтроллер будет получать данные по протоколу UART (универсальный асинхронный приемопередатчик) — самый первый и наиболее распространенный сегодня физический протокол передачи данных.

Step 3: Arduino Code

As I mentioned before , I will use software serial library to make pin D10 & D11 As Tx & Rx instead of using the default Rx and tx » D0 &D1 On most arduino Board » . this program below allow us to control LED connected to D13 To blink on/off , by press # 1 from PC Keyboard the LED blink on , and if we press 0 LED blink off ! To send the Control commands from Computer to arduino , Go to the tera term , Run it , and choose Serial , and select the bluetooth Serial from the list as Shown on the picture . The code below : // This program shown how to control arduino from PC Via Bluetooth // Connect … // arduino>>bluetooth // D11   >>>  Rx // D10   >>>  Tx //Written By Mohannad Rawashdeh //for http://www.genotronex.com/ // you will need arduino 1.0.1 or higher to run this sketch #include <SoftwareSerial.h>// import the serial library SoftwareSerial Genotronex(10, 11); // RX, TX int ledpin=13; // led on D13 will show blink on / off int BluetoothData; // the data given from Computer void setup() {   // put your setup code here, to run once:   Genotronex.begin(9600);   Genotronex.println(«Bluetooth On please press 1 or 0 blink LED ..»);   pinMode(ledpin,OUTPUT); } void loop() {   // put your main code here, to run repeatedly:    if (Genotronex.available()){ BluetoothData=Genotronex.read();    if(BluetoothData==’1′){   // if number 1 pressed ….    digitalWrite(ledpin,1);    Genotronex.println(«LED  On D13 ON ! «);    }   if (BluetoothData==’0′){// if number 0 pressed ….   digitalWrite(ledpin,0);    Genotronex.println(«LED  On D13 Off ! «);   } } delay(100);// prepare for next data … } After uploading This sketch go to tera term and press 0 or 1 and see the results This Video show the results of this code .

Как подключить блютуз модуль к Ардуино

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • Bluetooth модуль HC-05/06;
  • светодиоды и резисторы;
  • сервомотор;
  • провода «папа-папа» и «папа-мама».

Обратите внимание, что при подключении любого модуля к портам TX и RX на Arduino, скетч загрузить в плату не получится — у вас будет выходить ошибка, что Arduino Nano не доступна. Перед загрузкой скетча — отключайте Bluetooth модуль

Во-вторых, вам потребуется установить приложение на смартфон для отправки данных на блютуз модуль hc-05/06, скачайте приложение здесь и загрузите на телефон с компьютера.


Схема подключения блютуз модуля к Ардуино

Для начала мы будем дистанционно включать и выключать светодиод, подключенный параллельно к 13 порту на Ардуино и, расположенный на самой плате. После установки приложения на смартфон или планшет и загрузки скетча (скачать архив со скетчем можно далее), подключите блютуз модуль к Ардуино, как изображено на схеме выше. До сопряжения устройств, светодиод на модуле HC-05 начнет быстро мигать.

Скетч для Bluetooth модуля Arduino

int val; // освобождаем память в контроллере для переменой

void setup() {
  Serial.begin(9600);  // подключаем последовательный порт
  pinMode(13, OUTPUT); // объявляем пин 13 как выход
}

void loop() {
  if (Serial.available()) // проверяем, поступают ли какие-то команды
  {

    val = Serial.read(); // переменная val равна полученной команде

    if (val == '1') {digitalWrite(13, HIGH);} // при 1 включаем светодиод
    if (val == '0') {digitalWrite(13, LOW);}  // при 0 выключаем светодиод

  }
}

Соединение с телефоном Bluetooth модуля

Для сопряжения смартфона с Bluetooth модулем HC-06 и HC-05 перейдите в настройки телефона и включите блютуз. У вас активируется поиск устройств, кроме названия HC-05 или HC-06, вы увидите адрес устройства. Для подключения потребуется ввести пароль, обычно, это «1234» или «0000». Пароль потребуется ввести только один раз, при последующих подключениях сопряжение будет происходить автоматически.


Соединение между смартфоном и блютуз модулем HC-05

Далее откройте приложение, которое вы установили на смартфон или планшет и нажмите на кнопку «Подключить Блютуз». У вас появится список устройств с адресами — выберите нужное устройство. Если сопряжение прошло успешно, то светодиод на модуле начнет мигать реже — примерно 1 раз в две секунды. Теперь вы можете дистанционно включать/выключать светодиод на Ардуино, используя блютуз модуль.


Приложение для управление Ардуино через блютуз модуль

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

Скетч для управления блютуз модулем

#include <Servo.h> // подключаем библиотеку для работы с сервоприводом
Servo servo1;      // объявляем переменную servo типа "servo1"

int val; // освобождаем память в контроллере для переменой

void setup() {
  servo1.attach(11);   // привязываем сервопривод к аналоговому выходу 11
  Serial.begin(9600);  // подключаем последовательный порт
  pinMode(13, OUTPUT); // объявляем пин 13 как выход
}

void loop() {
  if (Serial.available()) // проверяем, поступают ли какие-то команды
  {

    val = Serial.read(); // переменная val равна полученной команде

    if (val == '1') {digitalWrite(13, HIGH);} // при 1 включаем светодиод
    if (val == '0') {digitalWrite(13, LOW);}  // при 0 выключаем светодиод

    if (val == '4') {servo1.write(0);}   // ставим угол поворота 0
    if (val == '5') {servo1.write(90);}  // ставим угол поворота 90
    if (val == '6') {servo1.write(180);} // ставим угол поворота 180

  }
}

5Подключаемся к bluetooth-модулю по bluetooth с компьютера

Для подключения к bluetooth модулю можно использовать различные программы, которые могут подключаться к COM-порту. Например, такие как HyperTerminal, PuTTY, Tera Term, Termite и другие. Они все бесплатные и свободно распространяются в интернете.

Удобство программы TeraTerm в том, что она автоматически выводит список COM-портов, которые назначены модулю bluetooth вашего компьютера. Запускаем программу, выбираем подключение Serial, из списка выбираем соответствующий bluetooth COM-порт, нажимаем OK.

Подключение к bluetooth-модулю с помощью программы TeraTerm

Программа PuTTY при запуске также спрашивает номер порта (COM4, у вас будет свой), скорость подключения (9600), тип соединения (Serial). Затем нажимаем кнопку Соединиться.

Подключение к bluetooth-модулю с помощью программы PuTTY

В случае ошибки при подключении программа выведет соответствующее оповещение. Если соединение вашего компьютера с bluetooth-модулем произошло успешно, то вы увидите перед собой поле терминала. Введите с клавиатуры в это поле число 1 – и светодиод на 13 выводе Arduino загорится, введите 0 – погаснет.

История

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

В этом процессе принимали участие компании Intel, Ericsson и Nokia, а название Bluetooth было предложено как символ единства, т.к. в 10 веке король Гарольд Блютуз отвечал за объединение Скандинавии. Считается, что данное название не должно было остаться на постоянной основе, но оно так и осталось в дальнейшем.

Bluetooth был создан для обмена данными с близкого расстояния без необходимости использования проводов, таких как наушники, кардиомониторы и датчики. Работает в диапазоне ISM 2,4 ГГц. Данные разделены на один из 79 слотов между 2,4 и 2,4835 ГГц в полосах 1 МГц.

Bluetooth LE (Low Energy) был новой версией. В отличие от более раннего стандарта Bluetooth, LE не требует никаких контрактов или проблем с разработкой приложений, и вы можете распространять их через Play Store; он также требует очень мало энергии, поэтому он очень подходит для работы от батареи.

Загрузка исходного кода

Этот код использует протокол последовательной связи Arduino с модулем Bluetooth. Выводы RX и TX Arduino подключаются к выводам TX и RX модуля HC-06 Bluetooth соответственно.

Модуль Bluetooth получает данные от сопряженного смартфона Android и запускает реле на основе полученных данных.

Код, стоящий за этим, довольно прост. Если принятые данные являются символом «1», то реле включается, а включается если принятыми данными является символ «0» (реле будет отключено).

Вы можете скачать или скопировать код ниже:

//--------BT app control---------//
//Программа для четырех переключателей, но в нашем случае мы используем вывод pin 11

int switch1=11;
int switch2=12;
int switch3=8;
int switch4=7;

int Received=0;
int switch1_state =0;
int switch2_state =0;
int switch3_state = 0;
int switch4_state = 0;


void setup(){
  
  Serial.begin(9600);
  pinMode(switch1,OUTPUT);
  pinMode(switch2,OUTPUT);
  pinMode(switch3,OUTPUT);
  pinMode(switch4,OUTPUT);
  
}

void loop(){
 
 if(Serial.available()>0)
 { 
    Received = Serial.read();
    
 }

////////////////switch1/////////////////////

if (switch1_state == 0 && Received == '1')
  {
    digitalWrite(switch1,HIGH);
    switch1_state=1;
    Received=0;  
  }
if (switch1_state ==1 && Received == '1')
  {
    digitalWrite(switch1,LOW);
    switch1_state=0;
    Received=0;
  }

////////////////switch2/////////////////////
if (switch2_state == 0 && Received == '2')
  {
    digitalWrite(switch2,HIGH);
    switch2_state=1;
    Received=0;  
  }
if (switch2_state ==1 && Received == '2')
  {
    digitalWrite(switch2,LOW);
    switch2_state=0;
    Received=0;
  }
///////////////////////////////////////////
////////////////switch3/////////////////////
if (switch3_state == 0 && Received == '3')
  {
    digitalWrite(switch3,HIGH);
    switch3_state=1;
    Received=0;  
  }
if (switch3_state ==1 && Received == '3')
  {
    digitalWrite(switch3,LOW);
    switch3_state=0;
    Received=0;
  }
///////////////////////////////////////////
////////////////switch4/////////////////////
if (switch4_state == 0 && Received == '4')
  {
    digitalWrite(switch4,HIGH);
    switch4_state=1;
    Received=0;  
  }
if (switch4_state ==1 && Received == '4')
  {
    digitalWrite(switch4,LOW);
    switch4_state=0;
    Received=0;
  }
}

Посмотрим схему подключения HC-05 и HC-06

Обратите внимание, что подключение происходит крест-накрест передатчик (Tx) Ардуино подключается к приёмнику (Rx) модуля, а приёмник (Rx) Ардуино подключается к передатчику (Tx) модуля. Данный модуль работает на частоте от 2,40 ГГц до 2,48 ГГц и поддерживает спецификацию bluetooth версии 2.1+EDR – это значит, что он обладает:

Данный модуль работает на частоте от 2,40 ГГц до 2,48 ГГц и поддерживает спецификацию bluetooth версии 2.1+EDR – это значит, что он обладает:

  • высокой скоростью до 3 Мбит/сек, 
  • пониженным потреблением энергии, 
  • повышенным уровнем защиты данных, 
  • устойчивостью к широкополосным помехам, а это значит несколько устройств могут общаться между собой, не мешая друг другу.
  • лёгким соединением Bluetooth-устройств.

Устойчивый приём с модулем гарантирован в пределах 10 метров. Это обеспечено антенной из дорожки в виде змейки, нанесённой на плате модуля.

Для связи платы Ардуино и компьютера используется интерфейс UART (универсальный асинхронный приемопередатчик).
Так как любая плата Ардуино имеет хотя бы 1 последовательный порт UART, для подключения Bluetooth модуля не требуются специализированные библиотеки и схемы.

Можно использовать аппаратный или программный UART.

Если вы используете аппаратный UART, то вы должны подключаться к пинам Ардуино TX и RX, но тогда вы не сможете загружать скетч в Ардуино не отключив предварительно модуль Bluetooth от платы. В противном случае скетч не запишется, потому что связь с Bluetooth модулем происходит по одному и тому же порту RX и TX, что и USB.
И вам придётся постоянно подключать и отключать модуль от платы, что не совсем удобно.
Это не касается плат Ардуино МЕГА у которой есть ещё 3 последовательных порта. И не забывайте отключать питание от модуля, иначе он может сгореть.

Так же желательно подключить модуль к Выводам Ардуино через делитель напряжения.

а можно через DC/DC преобразователь 5В/3,3В, но я во всех проектах подключал напрямую и всё работало замечательно. Как будете подключать вы – это ваше дело.
Если использовать программный UART, то можно подключаться к любым цифровым выводам, но для этого надо будет установить библиотеку SoftwareSerial.h
Записывается так
Здесь для работы с Bluetooth создается программный последовательный порт на выводах 2 и 3.
Тогда не нужно будет постоянно отключать модуль при перезаписи скетчей в Arduino.

Если вы подключили всё правильно, то при подаче напряжения на модуль он сразу переходит в режим ожидания подключения, это можно заметить по часто мигающему светодиоду.

  1. Включаем Bluetooth на телефоне и ищем новые устройства
  2. Находим в списке расстройств «HC-06» или «HC-05»  и подключаемся к нему.
  3. Телефон спросит пин-код. необходимо ввести «1234» или «0000»

 Пароль по умолчанию для конкретного модуля может отличаться от «1234». Эту информацию должен предоставить изготовитель (продавец) модуля.

Если не можете войти, то узнать или сменить пароль можно посмотрев 09:21 минута этого видео.

Для работы со смартфоном  вам потребуется установить приложение для отправки данных на блютуз модуль hc-05/06.
Я использовал бесплатную программу Bluetooth Terminal, но можно использовать приложение RemoteXY.


В видео я показал как работать с модулем и смартфоном. На примере кнопки на смартфоне Android и нажатия номера кнопки на индикатор.

  • Дистанционное открытие ворот с телефона
  • Дистанционное отключение электричества с телефона
  • Дистанционное обучение школа номер 40 сатка
  • Дистанционное обучение школа номер 22 шахтерск
  • Дистанционное обучение школа номер 148