Kako dizajnirati glasovno aktiviranu kućnu automatizaciju?

Ideja o Kućna automatizacija poprima važnost jer pomaže u smanjenju ljudskog napora i pogrešaka, a time i u povećanju učinkovitosti. Koristi kombinaciju opreme i napretka u programiranju koji omogućuju kontrolu nad strojevima i drugim elektroničkim uređajima unutar kuće. Uz pomoć automatizacije kuće možemo daljinski upravljati električnim uređajima, a velika je prednost što se potrošnja energije u velikoj mjeri smanjuje. Postoji nekoliko vrsta automatizacije kuće, poput Bluetooth kontrolirane, daljinske i internetske, itd., A svaka od njih ima svoje prednosti i nedostatke. U ovom ćemo projektu dizajnirati glasovno kontroliranu kućnu automatizaciju gdje će se različitim uređajima upravljati slanjem glasovne naredbe. Ovaj je sustav vrlo skup kad se kupuje s tržišta, ali kada sve ove uređaje integriramo Arduino , postaje vrlo jednostavno i jeftino kontrolirati sve kućanske električne uređaje.



Glasovno upravljana automatizacija kuće

Kako automatizirati kućanske uređaje pomoću Arduina?

Kako imamo osnovnu ideju, krenimo sada prema prikupljanju komponenata, njihovom sastavljanju da napravimo sklop i pisanju koda za automatizaciju vaših kućanskih aparata.



Korak 1: Korištene komponente (hardver)

  • Arduino uno
  • HC-05 Bluetooth modul
  • 2N2222 NPN tranzistor
  • Modul releja 12V
  • Otpornik od 1 k-ohma
  • 12V adapter za izmjenični i istosmjerni tok
  • 1N4007 PN-spojna dioda
  • Jumper žice

Korak 2: Korištene komponente (softver)

  • Proteus 8 Professional (Može se preuzeti s Windows Vista Ovdje )

Nakon preuzimanja Proteus 8 Professional, dizajnirajte sklop na njemu. Ovdje smo uključili softverske simulacije kako bi početnicima bilo prikladno dizajnirati sklop i uspostaviti odgovarajuće veze na hardveru.



Korak 3: Proučavanje komponenata

Kako smo napravili popis komponenata koje ćemo koristiti u našem projektu. Pomaknimo se korak naprijed i prođite kroz kratku studiju kako ove komponente rade.



  1. Arduino UNO: Arduino UNO je ploča mikrokontrolera koja se sastoji od mikročipa ATMega 328P i koju je razvio Arduino.cc. Ova ploča ima skup digitalnih i analognih podatkovnih pinova koji se mogu povezati s drugim pločama za proširenje ili sklopovima. Ova ploča ima 14 digitalnih pinova, 6 analognih pinova i programabilnih s Arduino IDE (integriranim razvojnim okruženjem) putem USB kabela tipa B. Za napajanje je potrebno 5V NA i a C kod operirati.

    Arduino UNO

  2. HC-05 bežični Bluetooth serijski primopredajnik : U ovom nam je projektu potrebna bežična komunikacija, pa ćemo koristiti Bluetooth tehnologiju, a za taj će se modul koristiti HC-05. Ovaj modul ima nekoliko programabilnih brzina prijenosa, ali zadana brzina prijenosa je 9600 bps. Može se konfigurirati kao master ili slave, dok drugi modul HC-06 može raditi samo u slave modu. Ovaj modul ima četiri pina. Jedan za VCC (5V), a preostala tri za GND, TX i RX. Zadana lozinka ovog modula je 1234 ili 0000 . Ako želimo komunicirati između dva mikrokontrolera ili komunicirati s bilo kojim uređajem s Bluetooth funkcijom poput telefona ili prijenosnog računala HC-05 u tome nam pomaže. Već je dostupno nekoliko android aplikacija što ovaj postupak uvelike olakšava.

    HC-05 Bluetooth modul

  3. Bluetooth glasovna kontrola za Arduino : Ovu je aplikaciju razvio SimpleLabsIN za glasovne Arduino projekte. Ova aplikacija za Android upotrebljavat će značajku prepoznavanja glasa telefona i pretvorit će glasovne naredbe u tekst i prenijeti niz putem Bluetootha. Aplikaciju možete preuzeti s Ovdje

    BT aplikacija za upravljanje glasom



  4. Modul releja od 12 V: Ako netko želi prebaciti visokonaponska opterećenja s mikrokontrolera, ova 12V relejna ploča to može učiniti. Sadrži 8 x 12V releja nazivne vrijednosti 10A / 250V AC (DC 30V / 10A). Svaki relejni modul uključuje se / isključuje optički izoliranim digitalnim ulazom koji se može izravno povezati s izlaznim pinom mikrokontrolera. Za uključivanje ulaza potreban je samo napon od približno 1,0 V, ali može podnijeti ulazne napone do 12 V. To ga čini idealnim i za 5V i za 3.3V uređaje. Modul releja možete kupiti prema svom broju uređaja kojima želite upravljati. Na primjer, ako želite kontrolirati 4 uređaja, trebali biste kupiti 4 relejni modul.

    Modul releja 12V

Korak 4: Razumijevanje dizajna sklopa s dijagramom sklopa

Prvo, moramo povezati HC-05 s Arduino UNO. Budući da Bluetooth koristi UART protokol, moramo koristiti RX i TX pinove Arduina. Koristit ćemo knjižnicu 'SoftwareSerial' za definiranje vlastitih RX i TX pinova (Pin 2 je RX, a Pin 3 je TX). RX pin Bluetooth modula i TX pin Arduina bit će odspojeni. Drugo, releje ćemo spojiti na Arduino. Koristili smo gotovu relejnu ploču s 4 kanala, tako da moramo povezati ulaze pojedinih releja na Arduino. Za spajanje opterećenja na relejni modul pogledajte donji dijagram:

Sastavljanje kruga modula releja

Četiri opterećenja su povezana s modulom releja radi demonstracije i budite posebno oprezni dok koristite AC mrežu s relejnom pločom. Samo za demonstraciju, promijenili smo se NA naizmjenična opterećenja:

Kružni dijagram

Korak 5: Načelo rada projekta

U ovom se projektu glasovne naredbe koriste za upravljanje različitim uređajima. Sastavite hardver prema gore navedenom shematskom spoju. Sastavite sve komponente na ploči s pločama. Nakon što napravite potrebne veze, uključite napajanje kruga i uparite Bluetooth telefona s Bluetooth modulom HC-05. Prije uparivanja instalirajte gore spomenutu aplikaciju na svoj pametni telefon.

Sada spojite telefon s Bluetooth modulom. Kliknite opciju “ Poveži robota ”I odaberite odgovarajući Bluetooth uređaj. Ako uređaji nisu ranije upareni, uparite ih sada unošenjem PIN-a 0000 ili 1234.

Uparivanje pametnog telefona

Nakon uspješne veze uređaji su spremni za prijenos podataka. Za prijenos podataka pritisnite ikonu mikrofona u aplikaciji i počnite davati glasovne naredbe. Provjerite je li značajka prepoznavanja glasa omogućena na vašem pametnom telefonu (to je obično povezano s aplikacijom Google). Na primjer, kada pritisnemo ikonu mikrofona i izgovorimo 'Upaliti svjetlo', aplikacija će prepoznati naredbu i prenijeti je na Bluetooth modul.

Glas prepoznat

Kada aplikacija prepozna niz, ona će poslati niz kao 'upaliti svjetlo #', a stvarna poruka koju primi Bluetooth modul ima ovaj tip formata ( '*Poruka#' ). Razlog dodavanja znaka '*' i '#' na početku i na kraju niza jest identificiranje početka i kraja poruke. Primljena poruka uspoređuje se s nekim unaprijed definiranim nizovima i ako se poruka podudara s njima, dogodi se odgovarajuća radnja poput 'uključivanja' i isključivanja.

U ovom projektu koristili smo sljedeće naredbe: “uključi AC”, “isključi AC”, “upali svjetlo”, “isključi svjetlo”, “uključi TV”, “isključi TV”, “uključi ventilator ”,„ Uključi sve ”i„ isključi sve ”.

Korak 6: Početak rada s Arduinom

Ako prije niste bili upoznati s Arduino IDE-om, ne brinite jer u nastavku možete vidjeti jasne korake sagorijevanja koda na ploči mikrokontrolera pomoću Arduino IDE-a. Najnoviju verziju Arduino IDE-a možete preuzeti sa stranice ovdje i slijedite dolje navedene korake:

1). Kad je ploča Arduino spojena na vaše računalo, otvorite 'Upravljačka ploča' i kliknite 'Hardver i zvuk'. Zatim kliknite 'Uređaji i pisači'. Pronađite naziv priključka na koji je spojena vaša Arduino ploča. U mom slučaju to je 'COM14', ali na vašem se računalu može razlikovati.

Pronalaženje luke

2). Sada otvorite Arduino IDE. Iz alata postavite ploču Arduino na Arduino / Genuino UNO.

Odbor za postavljanje

3). Iz istog izbornika Alat postavite broj porta koji ste vidjeli na upravljačkoj ploči.

Postavka porta

4). Da bismo koristili ovu aplikaciju kojom upravlja glas, potrebna nam je posebna biblioteka koja će biti uključena u Arduino IDE. Ova je knjižnica u prilogu donjeg linka, zajedno s kodom. Da biste uključili knjižnicu, idite na Skica> Uključi biblioteku> Dodaj ZIP. Knjižnica .

Uključi biblioteku

5). Preuzmite dolje priloženi kôd i kopirajte ga u svoj IDE. Da biste prenijeli kôd, kliknite gumb za prijenos.

Kôd možete preuzeti do klikom ovdje.

Korak 7: Razumijevanje koda

Kodeks nije tako složen, ali ipak, neki od njegovih dijelova ukratko su opisani u nastavku.

1. U početku je uključena knjižnica koja omogućuje serijsku komunikaciju na drugim digitalnim pinovima Arduina, koristeći softver za kopiranje funkcionalnosti. Dva pina su inicijalizirana za upotrebu s Bluetooth modulom. Četiri pina su inicijalizirana da se koriste za kućanske uređaje povezane na sustav, a varijabla niza se inicijalizira za serijsko pohranjivanje podataka koji dolaze putem Bluetootha.

#include const int rxPin = 2; // Inicijaliziraj pisnove za bluetooth modul const int txPin = 3; SoftwareSerial mySerial (rxPin, txPin); int ac = 4; // Inicijalizirajte igle za kućanske aparate int light = 5; int ventilator = 6; int tv = 7; Podaci niza;

2. void postavljanje () je funkcija u kojoj smo postavili inicijalizirane pinove da se koriste kao INPUT i OUTPUT. Brzina prijenosa je ovdje također inicijalizirana. Brzina prijenosa je brzina kojom Arduino ploča komunicira s priključenim komponentama. U našoj funkciji postavili smo sve igle povezane na uređaje NISKO.

void setup () {Serial.begin (9600); mySerial.begin (9600); pinMode (izmjenični, IZLAZ); pinMode (svjetlo, IZLAZ); pinMode (ventilator, IZLAZ); pinMode (tv, IZLAZ); digitalWrite (izmjenično, NISKO); digitalWrite (svjetlo, NISKO); digitalWrite (ventilator, LOW); digitalWrite (tv, LOW); }

3. petlja void () je funkcija koja se ponavlja u petlji. Ovdje su postavljeni svi uvjeti kako bi sustav ispravno radio. Sljedeće Dok() petlja se koristi za uzimanje podataka koji serijski dolaze na mikrokontroler.

while (1) // Dobivanje unosa serijski {while (mySerial.available ()<=0); ch = mySerial.read(); if(ch=='#') break; data+=ch; }

Ispod su postavljeni svi uvjeti za uključivanje svih priključenih električnih uređaja, kako to naredi korisnik. Ovi su uvjeti prilično jednostavni i samorazumljivi.

if (data == '* uključi AC') {digitalWrite (ac, HIGH); Serial.println ('ac on'); } inače if (podaci == '* isključiti izmjenični napon') {digitalWrite (ac, LOW); Serial.println ('isključivanje izmjeničnog napona'); } inače ako (podaci == '* uključi svjetlo') {digitalWrite (svjetlo, VISOKO); Serial.println ('svjetlo upaljeno'); } inače if (podaci == '* isključiti svjetlo') {digitalWrite (svjetlo, LOW); Serial.println ('svjetlo isključeno'); } inače ako (podaci == '* uključi ventilator') {digitalWrite (ventilator, VISOK); Serial.println ('ventilator uključen'); } inače ako (podaci == '* isključiti ventilator') {digitalWrite (ventilator, LOW); Serial.println ('ventilator isključen'); } inače ako (podaci == '* uključi televizor') {digitalWrite (tv, HIGH); Serial.println ('uključeno tv'); } inače ako (podaci == '* uključi televizor') {digitalWrite (tv, LOW); Serial.println ('isključeno tv'); } else if (podaci == '* uključiti sve') {digitalWrite (ac, HIGH); digitalWrite (svjetlo, VISOKO); digitalWrite (ventilator, VISOK); digitalWrite (tv, VISOKO); Serial.println ('sve uključeno'); } inače if (podaci == '* isključiti sve') {digitalWrite (ac, LOW); digitalWrite (svjetlo, NISKO); digitalWrite (ventilator, LOW); digitalWrite (tv, LOW); Serial.println ('sve isključeno'); }}

Prijave

  1. Glasovno aktivirani sustav kućne automatizacije pomoći će nam kontrolirati različita opterećenja (električne uređaje) jednostavnim glasovnim naredbama.
  2. Osobe s invaliditetom mogu dobiti puno koristi od ovog projekta, kao da nisu u mogućnosti hodati, mogu dati glasovnu naredbu i okrenuti se NA ili ISKLJUČENO aparat.
  3. Ovaj se projekt također može proširiti dodavanjem različitih senzora (svjetlost, dim itd.).