Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Подключение материалов через Bluetooth / Android / Arduino

Компоненты и расходные материалы

Arduino UNO
× 1
LED (общий)
× 1

Приложения и онлайн-сервисы

IDE Arduino
MIT App Inventor 2

Об этом проекте

Bluetooth (BT), несомненно, является очень хорошей беспроводной локальной (и личной) сетью. Сегодня в нашей повседневной жизни часто можно встретить нас, использующих сотовые телефоны, стереосистемы, камеры и т. Д., Соединенные между собой с помощью знаменитого «голубого огонька».

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

  • Простые платформы разработки для приложений ANDROID (например, MIT AppInventor2) и
  • Доступные модули BT (например, HC-06)

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

Шаг 1. Модуль Bluetooth и Arduino

На рынке очень часто встречаются модули BT 3.0 "Master-Slave" как HC-05 и "Slave" как HC-06. Совсем недавно появились HC-08 и HC-10, работающие по технологии BT 4.0 или BLE («Bluetooth Low Energy»). Модули BLE - единственные, которые можно подключить к iPhone, потому что, к сожалению, Apple не поддерживает BT 3.0.

Для проектов, обсуждаемых здесь, я буду использовать очень популярный и дешевый HC-06 (пока, пока, iPhone! Андроиды здесь короли!). Модуль BT питается от 5 В, что позволяет легко подключить его, например, к Arduino UNO. Его контакты передачи (Tx) и приема (Rx) могут быть подключены напрямую к UNO, без необходимости использования делителей напряжения, как мы видим в случае ESP8266. Обычно HC-06 должен быть подключен напрямую к контактам 0 и 1 Arduino («Serial 0»):

  • HC06-Tx к контакту 0 Arduino (Rx)
  • HC06-Rx к контакту 1 Arduino (Tx)

При использовании входов «Serial 0» (единственный последовательный порт HW на UNO) очень важно помнить, что HC-06 не может быть физически подключен к контактам 0 и 1 во время загрузки программы, потому что порт USB также использует тот же серийник. Простой способ обойти эту небольшую проблему (если ваш проект не использует много GPIO UNO) - использовать «последовательный порт SW» через библиотеку SoftwareSerial. В нашем случае мы будем использовать контакты 10 и 11 разъема UNO (Tx, Rx соответственно).

Шаг 2. Тестирование и настройка HC-06

Следующим шагом будет написание простого кода для тестирования, программирования и инициализации HC-O6:для начала включите серийный номер программного обеспечения библиотеки, установив переменную «BT» на новый последовательный порт.

  #include  SoftwareSerial BT (10, 11); // RX, TXString command =""; // Сохраняет ответ устройства bluetoothvoid setup () {Serial.begin (9600); Serial.println («Введите AT-команды»); BT.begin (9600); // HC-06 Обычно скорость передачи по умолчанию}  

Затем идет основная часть кода, которая просто ожидает данных, поступающих от BT. По прибытии данные записываются в Serial Monitor. Аналогичным образом, AT-команды могут быть отправлены с монитора последовательного порта на модуль HC-06.

  void loop () {if (BT.available ()) // получение данных, если они доступны. {while (BT.available ()) // "продолжаем получать". {задержка (10); // Добавлена ​​задержка для стабилизации работы char c =BT.read (); // Выполнение команды последовательного чтения + =c; // Строим строку. } Serial.println (команда); команда =""; // Без повторов} if (Serial.available ()) {delay (10); BT.write (Serial.read ()); }}  

После загрузки программы с помощью монитора последовательного порта выполните несколько основных тестов, например:

  • Отправьте «AT», модуль должен ответить «ОК».
  • Спросите версию прошивки:«T + VERSION», модуль должен ответить, например:«linvorV1.8».
  • С помощью HC-06 вы можете определить имя для модуля, например:«The T + NAMEMJRoBot_BT_HC06». Но в отличие от других модулей, вы не можете знать, какое имя установлено для модуля. При отправке предыдущей команды HC-06 просто отвечает:«OKsetname».

Обычно HC-O6 поставляется с паролем (или PIN-кодом):1234. Вы можете установить новый с помощью AT-команды:

  • AT + PIN xxxx, где xxxx - 4 цифры.

Ниже приведен код Arduino для теста HC-06:

F08H931IL8LGG7U.ino

Шаг 3. Устройство Android

В ПОРЯДКЕ! Модуль подключен к UNO и работает. Пора представить Android-устройство.

В магазине Google есть много приложений, которые можно использовать. Я буду использовать приложение, которое было разработано мной с помощью инструмента MIT Application2 и доступно бесплатно в магазине Google:MJRoBot BT Digital Analog Voice Control

Приложение отправляет цифровые команды (с помощью кнопок или голосом) и аналоговые команды для управления устройствами PWM, такими как сервоприводы (отправка данных в диапазоне от 0 до 255).

  • Загрузить приложение
  • Перейдите к настройке устройства Android, найдите модуль BT и установите соединение (введите PIN-код 1234 или любой другой, указанный вами). Это нужно сделать один раз, так как устройство сохранит данные подключения.
  • Когда устройство и HC-06 установят связь, запустите приложение. Во второй раз при запуске приложения модуль BT должен подключиться автоматически.
  • Выберите имя модуля (в моем случае это тот, у которого в конце есть HC-06).

Затем приложение покажет «ПОДКЛЮЧЕНО», сообщая, что оно «сравнивается» с HC-06. На этом этапе проверьте кнопки приложения и посмотрите на последовательном мониторе ПК, какие данные отправляет приложение. Например, последовательное нажатие кнопок «ВКЛ» и «ВЫКЛ» для 4-х устройств приведет к следующему:

  dev1ondev1offdev2ondev2offdev3ondev3offdev4ondev4off  

Теперь, когда у нас есть приложение для Android, которое взаимодействует с модулем BT, давайте создадим что-нибудь полезное!

Шаг 4. Управление выходами Arduino.

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

Подключения:

  • Устройство 1:"dev1on / dev1off" ==> Красный светодиод ==> Контакт 3 UNO
  • Устройство 2:"dev2on / dev2off" ==> Желтый светодиод ==> Контакт 5 UNO
  • Устройство 3:"dev3on / dev3off" ==> зеленый светодиод ==> контакт 6 UNO
  • Устройство 4:"dev4on / dev4off" ==> Синий светодиод ==> Контакт 9 UNO

То есть, чтобы активировать «ON», относящееся к кнопке «Device 1», на Arduino будет отправлено текстовое сообщение «dev1on». При получении этого сообщения должен загореться красный светодиод и т. Д.

Обратите внимание, что 4 контакта - это контакты, способные генерировать ШИМ (не все цифровые контакты UNO могут это делать. Ищите те, которые продаются с « ~ ». Это важно для использования «ползунков» в приложении для отправки числовых данных для управления яркостью светодиодов через ШИМ:

  • Dev A0:"r / 0-255" ==> Красный светодиод ==> Контакт 3 UNO
  • Dev A1:"y / 0-255" ==> Желтый светодиод ==> Контакт 5 UNO
  • Dev A2:"g / 0-255" ==> зеленый светодиод ==> контакт 6 UNO
  • Dev A3:"b / 0-255" ==> Синий светодиод ==> Контакт 9 UNO

В случае ползунков перед значением данных ШИМ (от 0 до 255) в Arduino отправляется символ, чтобы сообщить ему, что приближается команда «ползунок».

В видео ниже, демонстрация части программы выше (кнопки и слайдер):

Ниже полный код Arduino:

FA44NBUIL8LGGAY.ino

Шаг 5. Управляйте устройствами Интернета вещей с помощью голосовых команд

В настоящее время для управления устройствами IoT голос является трендом. Получить этот тип управления с помощью Arduino / HC-06 / Android чрезвычайно просто. Устройства Android уже имеют эту функцию "на заводе". В разработанном мной приложении была добавлена ​​кнопка, которая заставляет Android "прослушивать" команду и отправлять ее в текстовом формате . к Arduino. Код отвечает за "чтение" поступающей строки.

Я добавил несколько примеров в свой код. Когда Arduino получает команду «Подключить телевизор», например, загорается зеленый светодиод (соответствующий устройству 3) (вместо светодиода у вас может быть реле, которое будет подключать телевизор).

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

Здесь вы можете найти ссылку на файл .aia, который можно запустить непосредственно в MIT AppInventor2. На видео ниже небольшая демонстрация голосового управления:

Шаг 6. Заключение

Что ж, я считаю, что с помощью этого руководства вы сможете реализовать огромный потенциал управления «вещами» с помощью BT / Android / Arduino. Как всегда, я надеюсь, что этот проект поможет другим найти свой путь в захватывающем мире электроники. , робототехника и Интернет вещей! Чтобы узнать больше о проектах, посетите мой блог:MJRoBot.org

Салудо с юга мира!

Увидимся на моем следующем уроке!

Спасибо

Марсело

Код

  • Фрагмент кода №1
  • Фрагмент кода №2
  • Фрагмент кода №3
Фрагмент кода №1 Обычный текст
 #include  SoftwareSerial BT (10, 11); // RX, TXString command =""; // Сохраняет ответ устройства bluetoothvoid setup () {Serial.begin (9600); Serial.println («Введите AT-команды»); BT.begin (9600); // HC-06 Обычно скорость передачи по умолчанию} 
Фрагмент кода 2 Обычный текст
 void loop () {if (BT.available ()) // получение данных, если они доступны. {while (BT.available ()) // "продолжаем получать". {задержка (10); // Добавлена ​​задержка для стабилизации работы char c =BT.read (); // Выполнение команды последовательного чтения + =c; // Строим строку. } Serial.println (команда); команда =""; // Без повторов} if (Serial.available ()) {delay (10); BT.write (Serial.read ()); }} 
Фрагмент кода № 3 Обычный текст
 dev1ondev1offdev2ondev2offdev3ondev3offdev4ondev4off 

Производственный процесс

  1. Робот Raspberry Pi, управляемый через Bluetooth
  2. Программирование серии Atmel AT89 через Arduino
  3. Универсальный пульт дистанционного управления с использованием Arduino, 1Sheeld и Android
  4. Игрушка под управлением Android с использованием Raspberry Motor Shield
  5. Arduino с Bluetooth для управления светодиодом!
  6. Устройства с голосовым управлением Bluetooth с OK Google
  7. Arduino - отправка температуры в Интернет через последовательный
  8. Управление цепями с учетом движения через Intel Curie
  9. Мигающие светодиоды на Arduino из iOS и Android
  10. Arduino Uno + электрическое устройство (лампочка) + телефон Android