Как разработать систему домашней автоматизации с голосовой активацией?

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



Домашняя автоматизация с голосовым управлением

Как автоматизировать бытовую технику с помощью Arduino?

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



Шаг 1. Используемые компоненты (оборудование)

  • Arduino uno
  • Модуль Bluetooth HC-05
  • 2N2222 NPN транзистор
  • Модуль реле 12 В
  • Резистор 1 кОм
  • Адаптер 12 В переменного тока в постоянный
  • 1N4007 PN переходной диод
  • Перемычки

Шаг 2: Используемые компоненты (программное обеспечение)

  • Proteus 8 Professional (можно загрузить с Вот )

После загрузки Proteus 8 Professional спроектируйте схему на нем. Мы включили сюда моделирование программного обеспечения, чтобы новичкам было удобно спроектировать схему и выполнить соответствующие соединения на оборудовании.



Шаг 3: Изучение компонентов

Поскольку мы составили список компонентов, которые собираемся использовать в нашем проекте. Давайте сделаем шаг вперед и кратко рассмотрим, как работают эти компоненты.



  1. Arduino UNO: Arduino UNO - это плата микроконтроллера, которая состоит из микрочипа ATMega 328P и разработана Arduino.cc. Эта плата имеет набор цифровых и аналоговых контактов данных, которые могут быть подключены к другим платам расширения или схемам. Эта плата имеет 14 цифровых контактов, 6 аналоговых контактов и программируется с помощью Arduino IDE (интегрированной среды разработки) через USB-кабель типа B. Для питания требуется 5 В НА и Код C работать.

    Arduino UNO

  2. Беспроводной последовательный приемопередатчик Bluetooth HC-05 : Нам нужна беспроводная связь в этом проекте, поэтому мы будем использовать технологию Bluetooth, и для этого модуля, который будет использоваться, будет HC-05. Этот модуль имеет несколько программируемых скоростей передачи, но скорость передачи по умолчанию составляет 9600 бит / с. Его можно настроить как ведущий или как ведомый, тогда как другой модуль HC-06 может работать только в режиме ведомого. Этот модуль имеет четыре контакта. Один для VCC (5 В), а остальные три для GND, TX и RX. Пароль по умолчанию для этого модуля: 1234 или же 0000 . Если мы хотим обмениваться данными между двумя микроконтроллерами или с любым устройством с функцией Bluetooth, таким как телефон или ноутбук, HC-05 помогает нам в этом. Уже доступно несколько приложений для Android, что значительно упрощает этот процесс.

    Модуль Bluetooth HC-05

  3. Голосовое управление Bluetooth для Arduino : Это приложение разработано SimpleLabsIN для голосовых проектов Arduino. Это приложение для Android будет использовать функцию распознавания голоса телефона, преобразовывать голосовые команды в текст и передавать строку через Bluetooth. Приложение можно скачать с Вот

    Приложение BT Voice Control



  4. Модуль реле 12 В: Если кто-то хочет переключать высоковольтные нагрузки с микроконтроллера, эта плата реле 12 В может это сделать. Он содержит 8 реле на 12 В с номиналом 10 А / 250 В переменного тока (30 В постоянного тока / 10 А). Каждый релейный модуль включается / выключается оптоизолированным цифровым входом, который может быть подключен непосредственно к выходному контакту микроконтроллера. Для включения входов требуется только напряжение около 1,0 В, но он может работать с входным напряжением до 12 В. Это делает его идеальным для устройств с напряжением 5 В и 3,3 В. Вы можете приобрести релейный модуль в зависимости от количества устройств, которыми вы хотите управлять. Например, если вы хотите управлять 4 устройствами, вам следует купить 4 модуля реле.

    Модуль реле 12 В

Шаг 4: понимание схемотехники с принципиальной схемой

Во-первых, нам нужно подключить HC-05 к Arduino UNO. Поскольку Bluetooth использует протокол UART, нам нужно использовать контакты RX и TX Arduino. Мы будем использовать библиотеку «SoftwareSerial» для определения наших собственных выводов RX и TX (вывод 2 - это RX, а вывод 3 - это TX). Контакт RX модуля Bluetooth и контакт TX Arduino будут отключены. Во-вторых, подключим реле к Arduino. Мы использовали готовую плату реле с 4 каналами, поэтому нам нужно подключить входы отдельных реле к Arduino. Для подключения нагрузки к модулю реле см. Схему ниже:

Сборка схемы модуля реле

Для демонстрации к релейному модулю подключены четыре нагрузки, поэтому будьте особенно осторожны при использовании сети переменного тока с релейной платой. Просто для демонстрации мы переключили НА альтернативные нагрузки:

Принципиальная электрическая схема

Шаг 5: Принцип работы проекта

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

Теперь подключите телефон к модулю Bluetooth. Нажмите на опцию « Подключить робота ”И выберите соответствующее устройство Bluetooth. Если устройства не были сопряжены ранее, подключите их сейчас, введя PIN-код 0000 или же 1234.

Сопряжение смартфона

После успешного подключения устройства готовы к передаче данных. Для передачи данных нажмите значок микрофона в приложении и начните отдавать голосовые команды. Убедитесь, что на вашем смартфоне включена функция распознавания голоса (обычно это связано с приложением Google). Например, когда мы нажимаем на значок микрофона и говорим 'Включи свет', приложение распознает команду и передаст ее в модуль Bluetooth.

Распознавание голоса

Когда строка распознается приложением, оно отправляет строку как «включить свет #», а фактическое сообщение, полученное модулем Bluetooth, имеет формат этого типа ( '*Сообщение#' ). Причина добавления '*' и '#' в начале и конце строки состоит в том, чтобы идентифицировать начало и конец сообщения. Полученное сообщение сравнивается с некоторыми заранее заданными строками, и если сообщение совпадает с ними, происходит соответствующее действие, например «включение» и «выключение».

В этом проекте мы использовали следующие команды: «включить кондиционер», «выключить кондиционер», «включить свет», «выключить свет», «включить телевизор», «выключить телевизор», «включить вентилятор». »,« Включить все »и« выключить все ».

Шаг 6: начало работы с Arduino

Если вы раньше не знакомы с Arduino IDE, не волнуйтесь, потому что ниже вы можете увидеть четкие шаги записи кода на плату микроконтроллера с использованием Arduino IDE. Вы можете скачать последнюю версию Arduino IDE из Вот и выполните шаги, указанные ниже:

1). Когда плата Arduino подключена к вашему ПК, откройте «Панель управления» и нажмите «Оборудование и звук». Затем щелкните «Устройства и принтеры». Найдите имя порта, к которому подключена ваша плата Arduino. В моем случае это «COM14», но на вашем ПК он может быть другим.

Поиск порта

2). Теперь откройте IDE Arduino. В Tools установите для платы Arduino значение Arduino / Genuino UNO.

Доска настроек

3). В том же меню инструментов установите номер порта, который вы видели на панели управления.

Настройка порта

4). Чтобы использовать это приложение с голосовым управлением, нам нужна специальная библиотека, которая будет включена в Arduino IDE. Эта библиотека прикреплена по ссылке ниже вместе с кодом. Чтобы включить библиотеку, перейдите в Эскиз> Включить библиотеку> Добавить ZIP. Библиотека .

Включить библиотеку

5). Загрузите прилагаемый ниже код и скопируйте его в свою среду IDE. Чтобы загрузить код, нажмите кнопку загрузки.

Вы можете скачать код по нажав здесь.

Шаг 7: понимание кода

Кодекс не такой сложный, но все же некоторые его части кратко описаны ниже.

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

# включить const int rxPin = 2; // Инициализируем pisns для модуля bluetooth const int txPin = 3; SoftwareSerial mySerial (rxPin, txPin); int ac = 4; // Инициализировать контакты для бытовой техники int light = 5; int fan = 6; int tv = 7; Строковые данные;

2. установка void () это функция, в которой мы устанавливаем инициализированные выводы, которые будут использоваться как ВХОД и ВЫХОД. Здесь также инициализируется скорость передачи данных. Baud Rate - это скорость, с которой плата Arduino обменивается данными с подключенными компонентами. В нашей функции мы установили все контакты, подключенные к приборам, на НИЗКИЙ.

void setup () {Serial.begin (9600); mySerial.begin (9600); pinMode (ac, ВЫХОД); pinMode (свет, ВЫХОД); pinMode (вентилятор, ВЫХОД); pinMode (ТВ, ВЫХОД); digitalWrite (ac, LOW); digitalWrite (светлый, НИЗКИЙ); digitalWrite (вентилятор, НИЗКИЙ); digitalWrite (ТВ, НИЗКИЙ); }

3. пустой цикл () - это функция, которая многократно выполняется в цикле. Здесь созданы все условия для правильной работы системы. Следующее В то время как() Цикл используется для приема данных, которые последовательно поступают в микроконтроллер.

while (1) // Последовательное получение ввода {while (mySerial.available ()<=0); ch = mySerial.read(); if(ch=='#') break; data+=ch; }

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

if (data == '* включить AC') {digitalWrite (ac, HIGH); Serial.println ('ac on'); } else if (data == '* выключить AC') {digitalWrite (ac, LOW); Serial.println ('ac off'); } else if (data == '* включить свет') {digitalWrite (light, HIGH); Serial.println ('светится'); } else if (data == '* выключить свет') {digitalWrite (свет, LOW); Serial.println («свет выключен»); } else if (data == '* включить вентилятор') {digitalWrite (fan, HIGH); Serial.println («вентилятор включен»); } else if (data == '* выключить вентилятор') {digitalWrite (fan, LOW); Serial.println («вентилятор выключен»); } else if (data == '* включить телевизор') {digitalWrite (tv, HIGH); Serial.println ('телевизор включен'); } else if (data == '* включить телевизор') {digitalWrite (tv, LOW); Serial.println ('выключить телевизор'); } else if (data == '* включить все') {digitalWrite (ac, HIGH); digitalWrite (светлый, ВЫСОКИЙ); digitalWrite (вентилятор, ВЫСОКИЙ); digitalWrite (ТВ, ВЫСОКИЙ); Serial.println ('все включено'); } else if (data == '* выключить все') {digitalWrite (ac, LOW); digitalWrite (светлый, НИЗКИЙ); digitalWrite (вентилятор, НИЗКИЙ); digitalWrite (ТВ, НИЗКИЙ); Serial.println ('все выключено'); }}

Приложения

  1. Система домашней автоматизации с голосовой активацией поможет нам управлять различными нагрузками (электроприборами) с помощью простых голосовых команд.
  2. Люди с ограниченными возможностями могут получить большую пользу от этого проекта, так как если они не могут ходить, они могут дать голосовую команду и повернуть НА или же ВЫКЛ. прибор.
  3. Этот проект также можно расширить, добавив различные датчики (свет, дым и т. Д.).