На первый взгляд, управление светодиодом с помощью голоса может показаться достаточно трудной задачей, но с помощью такой платформы как Arduino в этом нет ничего сложного. Все, что нам нужно будет сделать – это соединить плату Arduino по последовательному каналу связи с Bluetooth модулем HC-06 и с помощью смартфона передавать голосовые команды на Bluetooth модуль HC-06. Для приема голосовых команд мы будем использовать приложение на android “Arduino Bluetooth Voice Controller”, которое можно будет скачать по ниже приведенной ссылке.
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- Bluetooth модуль HC-06 (купить на AliExpress).
- Красный и зеленый светодиоды (купить на AliExpress).
- Резистор 220 Ом (2 шт.) (купить на AliExpress).
- Arduino Bluetooth Voice Controller (можно скачать с play store по этой ссылке или непосредственно скачать прямо из смартфона по названию приложения).
- Макетная плата.
- Соединительные провода.
Реклама: ООО «АЛИБАБА.КОМ (РУ)» ИНН: 7703380158
Bluetooth модуль HC-06
Данный модуль может функционировать в двух режимах: режим команд и режим данных. В режиме команд мы можем настраивать различные свойства Bluetooth соединения: имя, пароль, скорость передачи и т.д. Режим данных позволяет осуществлять обмен данными между модулем и микроконтроллером (в нашем случае платой Arduino). Мы в данном проекте будем использовать только режим данных, свойства Bluetooth соединения будем использовать те, которые установлены в модуле по умолчанию. Имя устройства может быть HC-05 или HC-06 (в использованном нами модуле), пароль может быть 0000 или 1234, по умолчанию скорость передачи обычно выставлена 9600 бод/с.
Модуль работает от питающего напряжения 5V, а его сигнальные контакты работают с напряжением 3.3V. В модуле присутствует встроенный регулятор напряжения, поэтому нам не стоит беспокоиться о преобразовании этих напряжений. В режиме данных мы из 6 контактов модуля будем использовать только 4. Назначение контактов Bluetooth модуля HC-06 приведено в следующей таблице.
№ по порядку | Назначение контакта |
1 | Vcc |
2 | Vcc |
3 | Tx |
4 | Rx |
5 | State |
6 | EN (Enable) |
На нашем сайте вы также можете следующие проекты с использованием Bluetooth модуля:
- управляемая по Bluetooth машина на Arduino;
- цифровой кодовый замок на Arduino управляемый со смартфона;
- автоматизация дома на Arduino под управлением смартфона;
- спидометр с использованием Arduino и приложения на Android;
- пульт управления кондиционером на основе Arduino и смартфона.
Схема проекта
Схема голосового управления светодиодом с помощью Arduino и Bluetooth представлена на следующем рисунке. Перед загрузкой программы в плату Arduino отсоедините контакты Rx и Tx, а после загрузки программы снова их подсоедините.
Объяснение программы для Arduino
Полный код программы приведен в конце статьи, здесь же мы рассмотрим его наиболее важные фрагменты.
Сначала в программе необходимо определить контакты Arduino, на которых мы будем использовать последовательную связь (Rx и Tx).
1 2 |
int TxD = 11; int RxD = 10; |
Затем установим 2-й и 3-й контакты платы Arduino (к ним подключены светодиоды) в режим вывода данных.
1 2 |
pinMode(2, OUTPUT); pinMode(3, OUTPUT); |
Далее, в функции loop плата Arduino будет непрерывно проверять поступление данных от Bluetooth модуля (который, в свою очередь управляется с помощью голосовых команд) и в соответствии с ними управлять включением/выключением светодиодов. Все принимаемые команды мы будем сохранять в переменной “Value”.
Если значение этой переменной равно «all LED turn on», то мы будем включать оба светодиода. Аналогично этому при поступлении других голосовых команд мы будем соответствующим образом включать и выключать светодиоды в нашей схеме. Более подробно все эти процессы показаны на видео, приведенном в конце статьи.
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 |
if (bluetooth.available()) { value = bluetooth.readString(); if (value == "all LED turn on"){ digitalWrite(2, HIGH); digitalWrite(3, HIGH); } if (value == "all LED turn off"){ digitalWrite(2, LOW); digitalWrite(3, LOW); } if (value == "turn on Red LED"){ digitalWrite(2, HIGH); } if (value == "turn on green LED"){ digitalWrite(3, HIGH); } if (value == "turn off red LED"){ digitalWrite(2, LOW); } if (value == "turn off green LED"){ digitalWrite(3, LOW); } } |
Работа проекта
Шаг 1. Соберите схему, приведенную на рисунке выше. Перед загрузкой кода программы в плату Arduino отсоедините контакты Rx и Tx. После загрузки программы снова их подсоедините.
Шаг 2. Скачайте по приведенной в начале статье ссылки приложение для смартфона под названием “Arduino Bluetooth Voice Controller”. Либо вы непосредственно можете скачать его со своего смартфона по его названию.
Шаг 3. Запустите скачанное приложение, у вас на смартфоне появится его экран, показанный на приведенном ниже рисунке. Кликните на “connect to Bluetooth device” (соединиться с Bluetooth устройством), выберите после этого свой Bluetooth модуль и затем проверьте подсоединился ли он к приложению или нет. Затем кликните на иконку микрофона и после этого вы можете передавать голосовые команды Bluetooth модулю HC-06.
Примечание: когда вы будете подключаться к Bluetooth модулю HC-06 в первый вам необходимо будет ввести пароль для подключения к модулю – используйте в качестве пароля 0000 или 1234.
Шаг 4. Передавая голосовые команды Bluetooth модулю HC-06, который затем транслирует их по последовательному порту связи плате Arduino, которая выполняет принятую команду по включению/выключению светодиодов. Список реализованных в программе команд и действия, которые при их поступлении следует выполнить, представлен в следующей таблице.
№ п/п | Команда | Действие |
1 | all LED turn on | включить оба светодиода |
2 | all LED turn off | выключить оба светодиода |
3 | turn on Red LED | включить красный светодиод |
4 | turn on green LED | включить зеленый светодиод |
5 | turn off red LED | выключить красный светодиод |
6 | turn off green LED | выключить зеленый светодиод |
Аналогичным образом, изменяя код программы, вы можете добавить в этот проект любые другие команды и, соответственно, добавить в схему любые другие устройства (электрическая лампочка, телевизор, кондиционер и т.д.), которыми вы хотите управлять с помощью голоса.
Примечание: статья переведена с иностранного сайта и насколько корректно представленное приложение “Arduino Bluetooth Voice Controller” и программа для 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 |
#include <SoftwareSerial.h> // библиотека последовательной связи, необходима для того чтобы задействовать последовательную связь на любых двух цифровых контактах Arduino String value; int TxD = 11; int RxD = 10; int servoposition; SoftwareSerial bluetooth(TxD, RxD); void setup() { pinMode(2, OUTPUT); pinMode(3, OUTPUT); Serial.begin(9600); // инициализируем последовательную связь со скоростью 9600 бод/с bluetooth.begin(9600); } void loop() { Serial.println(value); if (bluetooth.available()) { value = bluetooth.readString(); if (value == "all LED turn on"){ digitalWrite(2, HIGH); digitalWrite(3, HIGH); } if (value == "all LED turn off"){ digitalWrite(2, LOW); digitalWrite(3, LOW); } if (value == "turn on Red LED"){ digitalWrite(2, HIGH); } if (value == "turn on green LED"){ digitalWrite(3, HIGH); } if (value == "turn off red LED"){ digitalWrite(2, LOW); } if (value == "turn off green LED"){ digitalWrite(3, LOW); } } } |
7 ответов к “Голосовое управление светодиодом с помощью Arduino и Bluetooth”
Здравствуйте, не работает сборка, посылаю команды в приложение а пишет что не команды не распознаны, можете пожалуйста посоветовать какое-нибудь приложение?
Добрый день, можете попробовать приложение AMR_Voice, пример его использования можно посмотреть в этой статье — instructables.com/Arduino-Voice-recognition-Via-Bluetooth-HC-05/
Здравствуйте, не работает приложение для подключения голоса и с айфона и с андройда
Как Загрузить приложение?
Добрый вечер. Можно поискать через простой поиска гугла или зайти на playstore с помощью vpn.
а как лампочкe и реле можно добавить код?
зачем вы создали переменную servoposition, если потом не использовали ее?
Опечатка, случайно из другого проекта перекочевала, в котором использовалось управление серводвигателем