Как да проектираме гласова активирана домашна автоматизация?

Идеята за Автоматизация на дома набира известност, тъй като помага за намаляване на човешкото усилие и грешки и следователно за разширяване на ефективността. Той използва комбинация от оборудване и напредък в програмирането, които позволяват контрол върху машини и други електронни устройства в дома. С помощта на домашната автоматизация можем да управляваме нашите електрически уреди от разстояние и голямо предимство е, че консумацията на енергия е намалена до голяма степен. Има няколко типа домашна автоматизация, като Bluetooth Controlled, Remote Controlled и Internet Controlled etc и всеки от тях има своите предимства и недостатъци. В този проект ще проектираме гласова контролирана домашна автоматизация, където различни уреди ще бъдат управлявани чрез изпращане на гласова команда. Тази система е много скъпа, когато се купува от пазара, но когато интегрираме всички тези уреди чрез Arduino , става много лесно и евтино да управлявате всички домакински електрически уреди.



Гласово контролирана домашна автоматизация

Как да автоматизирам домакински уреди с помощта на Arduino?

Тъй като имаме основната идея, сега нека да преминем към събиране на компонентите, сглобяването им, за да се направи схема и писане на кода за автоматизиране на домашните уреди.



Стъпка 1: Използвани компоненти (хардуер)

  • Arduino uno
  • Bluetooth модул HC-05
  • 2N2222 NPN транзистор
  • 12V релеен модул
  • 1k-омов резистор
  • 12V AC към DC адаптер
  • 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. Необходимо е 5V за захранване НА и а C код да оперира.

    Arduino UNO

  2. HC-05 безжичен Bluetooth сериен трансивър : В този проект се нуждаем от безжична комуникация, така че ще използваме технологията Bluetooth и за този модул, който ще се използва, е HC-05. Този модул има няколко програмируеми скорости на предаване, но скоростта на предаване по подразбиране е 9600 bps. Той може да бъде конфигуриран като главен или подчинен, докато друг модул HC-06 може да работи само в подчинен режим. Този модул има четири щифта. Един за VCC (5V), а останалите три за GND, TX и RX. Паролата по подразбиране за този модул е 1234 или 0000 . Ако искаме да комуникираме между два микроконтролера или да комуникираме с всяко устройство с Bluetooth функционалност като Телефон или Лаптоп HC-05 ни помага да направим това. Вече са налични няколко приложения за Android, което прави този процес много по-лесен.

    Bluetooth модул HC-05

  3. Bluetooth гласов контрол за Arduino : Това приложение е разработено от SimpleLabsIN за гласови базирани проекти на Arduino. Това приложение за Android ще използва функцията за гласово разпознаване на телефона и ще преобразува гласовите команди в текст и ще прехвърля низа чрез Bluetooth. Приложението може да бъде изтеглено от Тук

    Приложение за гласов контрол BT



  4. 12 V релеен модул: Ако някой иска да превключи натоварванията с високо напрежение от микроконтролер, тази 12V релейна платка може да го направи. Съдържа 8 x 12V релета с номинална мощност 10A / 250V AC (DC 30V / 10A). Всеки релеен модул се включва / изключва от оптоизолиран цифров вход, който може да бъде свързан директно към изходния щифт на микроконтролера. Необходимо е само напрежение от приблизително 1.0V за включване на входовете, но може да се справи с входни напрежения до 12V. Това го прави идеален както за 5V, така и за 3.3V устройства. Можете да закупите релейния модул според броя на уредите, които искате да контролирате. Например, ако искате да управлявате 4 уреда, трябва да закупите 4 реле модул.

    12V релеен модул

Стъпка 4: Разбиране на верижния дизайн с електрическа схема

Първо, трябва да свържем HC-05 с Arduino UNO. Тъй като Bluetooth използва протокола UART, трябва да използваме RX и TX щифтовете на Arduino. Ще използваме библиотеката “SoftwareSerial”, за да дефинираме собствените си RX и TX щифтове (Pin 2 е RX и Pin 3 е TX). RX щифтът на Bluetooth модула и TX щифтът на Arduino ще бъдат прекъснати. На второ място, ще свържем релетата с Arduino. Използвали сме готово релейно табло с 4 канала, така че трябва да свържем входовете на отделните релета към Arduino. За свързване на товара към релейния модул вижте схемата по-долу:

Сглобяване на веригата на релейния модул

Четири товара са свързани към релейния модул за демонстрация и бъдете особено внимателни, докато използвате AC мрежа с релейна платка. Само за демонстрация сме сменили НА редуващите товари:

Електрическа схема

Стъпка 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. От Инструменти задайте дъската 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 вентилатор = 6; int tv = 7; String данни;

2. настройка за празнота () е функция, при която задаваме инициализираните щифтове да се използват като INPUT и OUTPUT. Скоростта на предаване също се инициализира тук. Скорост на предаване е скоростта, с която платката Arduino комуникира с прикрепените компоненти. В нашата функция сме настроили всички щифтове, свързани към уредите НИСКО.

void setup () {Serial.begin (9600); mySerial.begin (9600); pinMode (променлив ток, ИЗХОД); pinMode (светлина, ИЗХОД); pinMode (вентилатор, ИЗХОД); pinMode (tv, OUTPUT); digitalWrite (ac, LOW); digitalWrite (светлина, НИСКА); digitalWrite (вентилатор, LOW); digitalWrite (tv, LOW); }

3. цикъл void () е функция, която се изпълнява многократно в цикъл. Тук са зададени всички условия, за да накара системата да работи правилно. Следното Докато() цикъл се използва за вземане на данни, които идват последователно към микроконтролера.

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

Под всички условия са зададени всички включени електрически уреди, както потребителят командва. Тези условия са доста прости и обясняващи се сами по себе си.

if (data == '* включете AC') {digitalWrite (ac, HIGH); Serial.println ('ac on'); } иначе ако (data == '* изключи променлив ток') {digitalWrite (ac, LOW); Serial.println ('променлив ток'); } иначе ако (данни == '* включване на светлината') {digitalWrite (светлина, ВИСОКО); Serial.println („светлина включена“); } иначе ако (данни == '* изключване на светлината') {digitalWrite (светлина, НИСКА); Serial.println ('светлината е изключена'); } иначе ако (данни == '* включване на вентилатора') {digitalWrite (вентилатор, HIGH); Serial.println ('включен вентилатор'); } иначе ако (данни == '* изключване на вентилатора') {digitalWrite (вентилатор, НИСКО); Serial.println ('вентилаторът е изключен'); } иначе ако (данни == '* включване на телевизора') {digitalWrite (tv, HIGH); Serial.println („телевизия включена“); } иначе ако (данни == '* включване на телевизора') {digitalWrite (tv, LOW); Serial.println ('tv off'); } иначе ако (данни == '* включване на всички') {digitalWrite (ac, HIGH); digitalWrite (светлина, ВИСОКО); digitalWrite (вентилатор, HIGH); digitalWrite (tv, HIGH); Serial.println („всичко включено“); } иначе ако (data == '* изключи всички') {digitalWrite (ac, LOW); digitalWrite (светлина, НИСКА); digitalWrite (вентилатор, LOW); digitalWrite (tv, LOW); Serial.println ('всички изключени'); }}

Приложения

  1. Гласово активираната система за домашна автоматизация ще ни помогне да контролираме различни товари (електрически уреди) с прости гласови команди.
  2. Хората с увреждания могат да получат много предимства от този проект, сякаш не могат да се разхождат, могат да дадат гласова команда и да се обърнат НА или ИЗКЛЮЧЕНО уреда.
  3. Този проект може да бъде разширен и чрез добавяне на различни сензори (светлина, дим и др.).