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

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

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

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

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

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

Шаг 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. HC-05 Беспроводной последовательный приемопередатчик Bluetooth: В этом проекте нам нужна беспроводная связь, поэтому мы будем использовать технологию 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. Если устройства не были сопряжены ранее, выполните сопряжение их сейчас, введя пин 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 последовательно.

#include 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 setup () — это функция, в которой мы устанавливаем инициализированные контакты, которые будут использоваться как INPUT и OUTPUT. Здесь также инициализируется скорость передачи данных. Baud Rate — это скорость, с которой плата Arduino обменивается данными с подключенными компонентами. В нашей функции мы установили все контакты, подключенные к приборам, на НИЗКИЙ.

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

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

while (1) // Последовательное получение ввода {while (mySerial.available () <= 0); ch = mySerial.read (); if (ch == "https://appuals.com/how-to-design-voice-activated-home-automation/#") перерыв; data + = ch; }

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

if (data == «* включить AC») {digitalWrite (ac, HIGH); Serial.println («ac on»); } else if (data == «* выключить AC») {digitalWrite (ac, LOW); Serial.println («выключен»); } else if (data == «* включить свет») {digitalWrite (light, HIGH); Serial.println («свет включен»); } else if (data == «* выключить свет») {digitalWrite (light, 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. Этот проект также можно расширить, добавив различные датчики (свет, дым и т. Д.).

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *