Kako oblikovati glasovno aktivirano avtomatizacijo doma?

Zamisel o Avtomatizacija doma se uveljavlja, saj pomaga zmanjšati človeški napor in napake ter s tem povečati učinkovitost. Uporablja kombinacijo opreme in programskega napredka, ki omogoča nadzor nad stroji in drugimi elektronskimi pripomočki v domu. S pomočjo avtomatizacije domov lahko svoje električne aparate nadzorujemo na daljavo in velika prednost je, da se poraba energije v veliki meri zmanjša. Obstaja več vrst avtomatizacije doma, kot so Bluetooth, Daljinsko in Internet, itd. Vsaka od njih ima svoje prednosti in slabosti. V tem projektu bomo zasnovali glasovno nadzorovano avtomatizacijo doma, kjer bodo različne naprave nadzorovane s pošiljanjem glasovnega ukaza. Ta sistem je zelo drag, če ga kupimo na trgu, ko pa vse te naprave integriramo Arduino , postane zelo enostavno in poceni nadzor vseh gospodinjskih električnih aparatov.



Glasovno nadzorovana avtomatizacija doma

Kako avtomatizirati gospodinjske aparate z uporabo Arduina?

Ker imamo osnovno idejo, pojdimo zdaj k zbiranju komponent, njihovemu sestavljanju za izdelavo vezja in pisanju kode za avtomatizacijo vaših gospodinjskih aparatov.



1. korak: Uporabljene komponente (strojna oprema)

  • Arduino uno
  • Modul Bluetooth HC-05
  • 2N2222 NPN tranzistor
  • Relejni modul 12V
  • 1k-ohmski upor
  • 12V adapter za izmenični in enosmerni tok
  • 1N4007 PN spojna dioda
  • Jumper žice

2. korak: Uporabljene komponente (programska oprema)

  • Proteus 8 Professional (Lahko ga prenesete z Tukaj )

Po prenosu Proteus 8 Professional na njem oblikujte vezje. Sem smo vključili simulacije programske opreme, tako da je morda začetnikom primerno načrtovati vezje in vzpostaviti ustrezne povezave na strojni opremi.



3. korak: Preučevanje komponent

Ko smo sestavili seznam komponent, ki jih bomo uporabili v našem projektu. Pomaknimo se korak naprej in si oglejmo kratko študijo o delovanju teh komponent.



  1. Arduino UNO: Arduino UNO je mikrokrmilna plošča, ki jo sestavlja mikročip ATMega 328P in jo je razvil Arduino.cc. Ta plošča ima nabor digitalnih in analognih podatkovnih zatičev, ki jih je mogoče povezati z drugimi razširitvenimi ploščami ali vezji. Ta plošča ima 14 digitalnih zatičev, 6 analognih zatičev in jih je mogoče programirati z Arduino IDE (integrirano razvojno okolje) prek USB kabla tipa B. Za napajanje potrebuje 5V VKLOPLJENO in a Koda C upravljati.

    Arduino UNO

  2. HC-05 brezžični serijski oddajnik Bluetooth : V tem projektu potrebujemo brezžično komunikacijo, zato bomo uporabili tehnologijo Bluetooth, za modul, ki bo uporabljen, pa HC-05. Ta modul ima več nastavljivih hitrosti prenosa, vendar je privzeta hitrost prenosa 9600 bps. Lahko je konfiguriran kot glavni ali pomožni, medtem ko lahko drugi modul HC-06 deluje samo v pomožnem načinu. Ta modul ima štiri nožice. Ena za VCC (5V), preostale tri pa za GND, TX in RX. Privzeto geslo tega modula je 1234 ali 0000 . Če želimo komunicirati med dvema mikrokrmilnikoma ali komunicirati s katero koli napravo s funkcijo Bluetooth, kot je telefon ali prenosni računalnik, nam HC-05 pri tem pomaga. Na voljo je že več aplikacij za Android, kar olajša ta postopek.

    Modul Bluetooth HC-05

  3. Bluetooth Voice Control za Arduino : To aplikacijo je razvil SimpleLabsIN za glasovne projekte Arduino. Ta aplikacija za Android bo uporabljala funkcijo prepoznavanja glasu v telefonu, pretvorila bo glasovne ukaze v besedilo in niz prenesla prek Bluetootha. Aplikacijo lahko prenesete iz Tukaj

    BT Voice Control App



  4. Relejni modul 12 V: Če kdo želi preklopiti visokonapetostne obremenitve z mikrokrmilnika, lahko to naredi 12V relejna plošča. Vsebuje 8 x 12V releje, ocenjene na 10A / 250V AC (DC 30V / 10A). Vsak relejni modul se vklopi / izklopi z optično izoliranim digitalnim vhodom, ki ga je mogoče neposredno priključiti na izhodni zatič mikrokrmilnika. Za vklop vhodov potrebuje le napetost približno 1,0 V, vendar lahko obvlada vhodne napetosti do 12 V. Zaradi tega je idealen za naprave 5V in 3,3V. Relejni modul lahko kupite glede na število naprav, ki jih želite nadzorovati. Če želite na primer nadzorovati 4 naprave, kupite 4 relejni modul.

    Relejni modul 12V

4. korak: Razumevanje zasnove vezij z vezjem

Najprej moramo HC-05 povezati z Arduino UNO. Ker Bluetooth uporablja protokol UART, moramo uporabiti RX in TX nožice Arduino. Za definiranje lastnih zatičev RX in TX bomo uporabili knjižnico 'SoftwareSerial' (Pin 2 je RX in Pin 3 je TX). Priključek RX modula Bluetooth in TX zatič Arduino bosta prekinjena. Drugič, rele bomo povezali z Arduinom. Uporabili smo že izdelano relejno ploščo s 4 kanali, zato moramo vhode posameznih relejev priključiti na Arduino. Za priključitev obremenitve na relejni modul glejte spodnji diagram:

Sestavljanje vezja modula releja

Za prikaz so na relejni modul priključeni štirje bremeni in bodite previdni pri uporabi omrežja AC z relejno ploščo. Samo za demonstracijo smo zamenjali VKLOPLJENO nadomestne obremenitve:

Shema vezja

5. korak: Delovno načelo projekta

V tem projektu se glasovni ukazi uporabljajo za nadzor različnih naprav. Sestavite strojno opremo v skladu z zgoraj navedenim vezjem. Sestavite vse komponente na plošči. Po vzpostavitvi potrebnih povezav vklopite napajanje vezja in Bluetooth telefona povežite z modulom HC-05 Bluetooth. Pred seznanjanjem v pametni telefon namestite zgoraj omenjeno aplikacijo.

Zdaj povežite telefon z modulom Bluetooth. Kliknite možnost “ Poveži robota 'In izberite ustrezno napravo Bluetooth. Če naprave prej niso seznanjene, jih zdaj seznanite tako, da vnesete zatič 0000 ali 1234.

Seznanjanje pametnega telefona

Po uspešni povezavi so naprave pripravljene za prenos podatkov. Za prenos podatkov pritisnite ikono mikrofona v aplikaciji in začnite oddajati glasovne ukaze. Prepričajte se, da je v vašem pametnem telefonu omogočena funkcija prepoznavanja glasu (to je običajno povezano z aplikacijo Google). Na primer, ko pritisnemo ikono mikrofona in izgovorimo 'Prižgi luč', aplikacija bo prepoznala ukaz in ga prenesla v modul Bluetooth.

Glas prepoznan

Ko aplikacija prepozna niz, bo poslala niz kot »vklopi lučko #« in dejansko sporočilo, ki ga prejme modul Bluetooth, ima to vrsto oblike ( “* Sporočilo #” ). Razlog za dodajanje znakov '*' in '#' na prošnji in koncu niza je določitev začetka in konca sporočila. Prejeto sporočilo se primerja z nekaterimi vnaprej določenimi nizi in če se sporočilo z njimi ujema, se zgodi ustrezno dejanje, kot je »vklop« in izklop.

V tem projektu smo uporabili naslednje ukaze: “vklopi AC”, “izklopi AC”, “vklopi luč”, “ugasni luč”, “vklopi televizor”, “izklopi TV”, “vklopi ventilator «,» Vklopi vse «in» izklopi vse «.

6. korak: Uvod v Arduino

Če Arduino IDE prej niste poznali, ne skrbite, ker spodaj vidite jasne korake zapisovanja kode na plošči mikrokrmilnika z uporabo Arduino IDE. Najnovejšo različico Arduino IDE lahko prenesete s spletnega mesta tukaj in sledite spodnjim korakom:

1). Ko je plošča Arduino povezana z računalnikom, odprite »Nadzorna plošča« in kliknite »Strojna oprema in zvok«. Nato kliknite »Naprave in tiskalniki«. Poiščite ime vrat, na katera je priključena vaša plošča Arduino. V mojem primeru je 'COM14', vendar je v vašem računalniku morda drugačen.

Iskanje pristanišča

2). Zdaj odprite Arduino IDE. V orodju nastavite ploščo Arduino na Arduino / Genuino UNO.

Nastavitvena plošča

3). V istem meniju Orodja nastavite številko vrat, ki ste jo videli na nadzorni plošči.

Nastavitev vrat

4). Za uporabo te glasovno vodene aplikacije potrebujemo posebno knjižnico, ki bo vključena v Arduino IDE. Ta knjižnica je priložena spodnji povezavi skupaj s kodo. Če želite vključiti knjižnico, pojdite na Skica> Vključi knjižnico> Dodaj ZIP. Knjižnica .

Vključi knjižnico

5). Prenesite spodnjo kodo in jo kopirajte v svoj IDE. Če želite naložiti kodo, kliknite gumb za prenos.

Kodo lahko prenesete do kliknite tukaj.

7. korak: Razumevanje kode

Kodeks ni tako zapleten, vendar so nekateri njegovi deli na kratko opisani spodaj.

1. Na začetku je vključena knjižnica, ki omogoča serijsko komunikacijo na drugih digitalnih nožicah Arduina s pomočjo programske opreme za kopiranje funkcionalnosti. Dva zatiča sta inicializirana za uporabo z modulom Bluetooth. Inicializirajo se štirje zatiči, ki se uporabljajo za gospodinjske aparate, povezane s sistemom, in spremenljivka niza se inicializira za serijsko shranjevanje podatkov, ki prihajajo prek Bluetootha.

#include const int rxPin = 2; // Inicializacija pisnov za modul bluetooth const int txPin = 3; SoftwareSerial mySerial (rxPin, txPin); int ac = 4; // Inicializacija zatičev za gospodinjske aparate int light = 5; int ventilator = 6; int tv = 7; Nizov;

2. void setup () je funkcija, pri kateri smo inicializirane nožice nastavili za uporabo kot VHOD in IZHOD. Tu je tudi inicializirana hitrost prenosa. Hitrost prenosa je hitrost, s katero plošča Arduino komunicira s pritrjenimi komponentami. V naši funkciji smo nastavili vse nožice, ki so priključene na naprave NIZKO.

void setup () {Serial.begin (9600); mySerial.begin (9600); pinMode (izmenični tok, IZHOD); pinMode (svetloba, IZHOD); pinMode (ventilator, IZHOD); pinMode (tv, IZHOD); digitalWrite (ac, LOW); digitalWrite (svetlo, LOW); digitalWrite (ventilator, LOW); digitalWrite (tv, LOW); }

3. void loop () je funkcija, ki se večkrat izvaja v zanki. Tu so postavljeni vsi pogoji za pravilno delovanje sistema. Naslednji Medtem() zanka se uporablja za zajem podatkov, ki serijsko prihajajo v mikrokrmilnik.

while (1) // Pridobivanje serijskih vnosov {while (mySerial.available ()<=0); ch = mySerial.read(); if(ch=='#') break; data+=ch; }

Pod vsemi pogoji so nastavljeni vklopi vseh priključenih električnih naprav, kot ukaže uporabnik. Ti pogoji so precej preprosti in samoumevni.

if (data == '* vklopi AC') {digitalWrite (ac, HIGH); Serial.println ('ac on'); } sicer če (podatki == '* izklopi AC') {digitalWrite (ac, LOW); Serial.println ('ac off'); } sicer če (podatki == '* vklopi luč') {digitalWrite (luč, VISOKO); Serial.println ('lučka prižgana'); } else if (data == '* ugasni luč') {digitalWrite (light, LOW); Serial.println ('lučka ugasnila'); } sicer če (podatki == '* vklopi ventilator') {digitalWrite (ventilator, VISOKO); Serial.println ('ventilator vklopljen'); } sicer če (podatki == '* izklopi ventilator') {digitalWrite (ventilator, LOW); Serial.println ('ventilator izključen'); } sicer če (podatki == '* vklopi televizor') {digitalWrite (tv, HIGH); Serial.println ('tv on'); } sicer če (podatki == '* vklopi televizor') {digitalWrite (tv, LOW); Serial.println ('tv off'); } sicer če (podatki == '* vklopi vse') {digitalWrite (ac, HIGH); digitalWrite (svetlo, VISOKO); digitalWrite (ventilator, VISOKO); digitalWrite (tv, HIGH); Serial.println ('vse vklopljeno'); } sicer če (podatki == '* izklopi vse') {digitalWrite (ac, LOW); digitalWrite (svetlo, LOW); digitalWrite (ventilator, LOW); digitalWrite (tv, LOW); Serial.println ('vse izključeno'); }}

Aplikacije

  1. Sistem za avtomatizacijo domofona z glasom nam bo pomagal nadzorovati različne obremenitve (električne naprave) s preprostimi glasovnimi ukazi.
  2. Invalidi lahko s tem projektom izkoristijo veliko ugodnosti, kot da ne morejo hoditi, lahko dajo glasovni ukaz in se obrnejo VKLOPLJENO ali IZKLOPLJENO aparat.
  3. Ta projekt lahko razširite tudi z dodajanjem različnih senzorjev (svetlobe, dima itd.).