Kaip sukurti balso įjungiamą namų automatiką?

Idėja Namų automatika didina žinomumą, nes tai padeda sumažinti žmogaus pastangas ir klaidas, taigi ir padidinti efektyvumą. Jis naudoja įrangos ir programavimo patobulinimų derinį, leidžiantį valdyti mašinas ir kitas elektronines įtaisus namuose. Namų automatikos pagalba mes galime nuotoliniu būdu valdyti savo elektros prietaisus, o didelis privalumas yra tai, kad labai sumažėja energijos suvartojimas. Yra keletas namų automatikos rūšių, tokių kaip „Bluetooth“ valdoma, nuotolinio valdymo ir interneto valdoma ir tt, ir kiekviena iš jų turi savo privalumų ir trūkumų. Šiame projekte suprojektuosime namų valdymą balsu valdomą valdymą, kur siunčiant balso komandą bus valdomi įvairūs prietaisai. Ši sistema yra labai brangi, kai perkama iš rinkos, tačiau kai mes integruojame visus šiuos prietaisus Arduino , tampa labai lengva ir nebrangu valdyti visus namų elektros prietaisus.



Balsu valdoma namų automatika

Kaip automatizuoti buitinę techniką naudojant „Arduino“?

Turėdami pagrindinę idėją, dabar eikime link komponentų surinkimo, surinkimo, kad būtų sukurta grandinė, ir parašydami kodą, kad automatizuotumėte savo buitinę techniką.



1 veiksmas: naudojami komponentai (techninė įranga)

  • „Arduino uno“
  • HC-05 „Bluetooth“ modulis
  • 2N2222 NPN tranzistorius
  • 12 V relės modulis
  • 1k omų rezistorius
  • 12 V kintamosios srovės adapteris
  • 1N4007 PN jungties diodas
  • Šuolių laidai

2 žingsnis: naudojami komponentai (programinė įranga)

  • Proteus 8 Professional (galima atsisiųsti iš Čia )

Atsisiuntę „Proteus 8 Professional“, suprojektuokite jame grandinę. Čia įtraukėme programinės įrangos modeliavimą, kad pradedantiesiems būtų patogu suprojektuoti grandinę ir tinkamai prijungti aparatinę įrangą.



3 žingsnis: komponentų studijavimas

Sudarę komponentų, kuriuos naudosime savo projekte, sąrašą. Pažvelkime žingsniu į priekį ir atlikime trumpą šių komponentų veikimo tyrimą.



  1. „Arduino UNO“: „Arduino UNO“ yra mikrovaldiklio plokštė, kurią sudaro mikroschema „ATMega 328P“ ir kurią sukūrė „Arduino.cc“. Ši plokštė turi skaitmeninių ir analoginių duomenų kaiščių rinkinį, kurį galima susieti su kitomis išplėtimo plokštėmis ar grandinėmis. Ši plokštė turi 14 skaitmeninių kaiščių, 6 analoginius kaiščius ir programuojama naudojant „Arduino IDE“ (integruotą kūrimo aplinką) per B tipo USB laidą. Tam reikia 5 V maitinimo ĮJUNGTA ir a C kodas valdyti.

    „Arduino UNO“

  2. HC-05 belaidis „Bluetooth“ nuoseklusis siųstuvas-imtuvas : Šiame projekte mums reikalingas belaidis ryšys, todėl naudosime „Bluetooth“ technologiją ir tas modulis, kuris bus naudojamas, yra HC-05. Šis modulis turi keletą programuojamų duomenų perdavimo greičių, tačiau numatytasis perdavimo greitis yra 9600 bps. Jį galima sukonfigūruoti kaip pagrindinį arba pavaldųjį, o kitas modulis HC-06 gali veikti tik vergo režimu. Šis modulis turi keturis kaiščius. Vienas skirtas VCC (5V), o likusieji trys - GND, TX ir RX. Numatytasis šio modulio slaptažodis yra 1234 m arba 0000 . Jei norime bendrauti tarp dviejų mikrovaldiklių arba bendrauti su bet kokiu „Bluetooth“ funkciją turinčiu įrenginiu, pavyzdžiui, telefonu ar nešiojamuoju kompiuteriu HC-05, tai mums padeda. Jau yra keletas „Android“ programų, kurios labai palengvina šį procesą.

    HC-05 „Bluetooth“ modulis

  3. „Bluetooth“ valdymas balsu, skirtas „Arduino“ : Šią programą „SimpleLabsIN“ sukūrė balsu pagrįstiems „Arduino“ projektams. Ši „Android“ programa naudos telefono balso atpažinimo funkciją ir konvertuos balso komandas į tekstą ir perduos eilutę per „Bluetooth“. Programą galima atsisiųsti iš Čia

    „BT“ valdymo balsu programa



  4. 12 V relės modulis: Jei kas nors nori perjungti aukštos įtampos apkrovas iš mikrovaldiklio, tai gali padaryti ši 12 V relinė plokštė. Jame yra 8 x 12V relės, kurių galia yra 10A / 250V AC (DC 30V / 10A). Kiekvienas relės modulis įjungiamas / išjungiamas izoliuota skaitmenine įvestimi, kurią galima tiesiogiai prijungti prie mikrovaldiklio išvesties kaiščio. Norint įjungti įėjimus, reikia tik maždaug 1,0 V įtampos, tačiau galima valdyti iki 12 V įtampą. Tai idealiai tinka tiek 5, tiek 3,3 V įtaisams. Relės modulį galite įsigyti pagal savo norimų valdyti prietaisų skaičių. Pavyzdžiui, jei norite valdyti 4 prietaisus, turėtumėte įsigyti 4 relės modulį.

    12 V relės modulis

4 žingsnis: Supraskite grandinės dizainą naudodami grandinės schemą

Pirma, mes turime prijungti HC-05 su „Arduino UNO“. Kadangi „Bluetooth“ naudoja UART protokolą, turime naudoti „Arduino“ RX ir TX kaiščius. Mes naudosime „SoftwareSerial“ biblioteką, norėdami apibrėžti savo RX ir TX kaiščius (2 kaištis yra RX, o 3 kaištis yra TX). „Bluetooth“ modulio RX kaištis ir „Arduino“ TX kaištis bus atjungti. Antra, sujungsime reles su „Arduino“. Mes naudojome paruoštą relinę plokštę su 4 kanalais, todėl turime prijungti atskirų relių įėjimus prie „Arduino“. Norėdami prijungti apkrovą prie relės modulio, žiūrėkite toliau pateiktą diagramą:

Relės modulio grandinės surinkimas

Keturios apkrovos yra prijungtos prie relės modulio demonstravimui ir būkite ypač atsargūs naudodami kintamosios srovės tinklą su relės plokšte. Tiesiog demonstravimui mes persijungėme ĮJUNGTA pakaitinės apkrovos:

Grandinės schema

5 žingsnis: Projekto darbo principas

Šiame projekte balso komandos naudojamos skirtingiems prietaisams valdyti. Surinkite aparatūrą pagal pirmiau pateiktą grandinės schemą. Sumontuokite visus komponentus ant duonos lentos. Atlikę būtinus ryšius, įjunkite grandinės maitinimo šaltinį ir suporuokite telefono „Bluetooth“ su „HC-05 Bluetooth“ moduliu. Prieš suporuodami, išmaniajame telefone įdiekite aukščiau nurodytą programą.

Dabar prijunkite telefoną prie „Bluetooth“ modulio. Spustelėkite parinktį „ Prijunkite robotą “Ir pasirinkite atitinkamą„ Bluetooth “įrenginį. Jei įrenginiai nesusieti anksčiau, suporuokite juos dabar įvesdami PIN kodą 0000 arba 1234 m.

Išmaniojo telefono poravimas

Po sėkmingo ryšio įrenginiai yra pasirengę perduoti duomenis. Norėdami perduoti duomenis, paspauskite mikrofono piktogramą programoje ir pradėkite duoti balso komandas. Įsitikinkite, kad išmaniajame telefone yra įjungta balso atpažinimo funkcija (tai paprastai siejama su „Google“ programa). Pavyzdžiui, kai paspaudžiame mikrofono piktogramą ir sakome 'Išjunk šviesą', programa atpažins komandą ir perkels ją į „Bluetooth“ modulį.

Atpažintas balsu

Kai programa atpažįsta eilutę, ji išsiųs eilutę kaip „įjungti šviesą #“, o tikrasis „Bluetooth“ modulio gautas pranešimas turi tokio tipo formatą ( „* Pranešimo Nr.“ ). Priežastis „*“ ir „#“ užpildyti eilutės pradžioje ir pabaigoje yra nustatyti pranešimo pradžią ir pabaigą. Gautas pranešimas lyginamas su kai kuriomis iš anksto nustatytomis eilutėmis ir jei pranešimas sutampa su jomis, įvyksta atitinkamas veiksmas, pvz., „Įjungimas“ ir „išjungimas“.

Šiame projekte mes naudojome šias komandas: „įjungti kintamą srovę“, „išjungti kintamą srovę“, „įjungti šviesą“, „išjungti šviesą“, „įjungti televizorių“, „išjungti televizorių“, „įjungti ventiliatorių“ “,„ Įjungti visus “ir„ išjungti visus “.

6 žingsnis: darbo pradžia naudojant „Arduino“

Jei anksčiau nesate susipažinę su „Arduino IDE“, nesijaudinkite, nes žemiau galite pamatyti aiškius kodo įrašymo mikrovaldiklio valdyboje veiksmus, naudodami „Arduino IDE“. Naujausią „Arduino IDE“ versiją galite atsisiųsti iš čia ir atlikite toliau nurodytus veiksmus:

1). Kai „Arduino“ plokštė prijungta prie jūsų kompiuterio, atidarykite „Control panel“ ir spustelėkite „Hardware and Sound“. Tada spustelėkite „Įrenginiai ir spausdintuvai“. Raskite prievado, prie kurio prijungta jūsų „Arduino“ plokštė, pavadinimą. Mano atveju tai yra „COM14“, bet jūsų kompiuteryje jis gali skirtis.

Rasti uostą

2). Dabar atidarykite „Arduino IDE“. Iš įrankių nustatykite „Arduino“ lentą į „Arduino“ / „Genuino UNO“.

Nustatymo lenta

3). Tame pačiame meniu Įrankis nustatykite prievado numerį, kurį matėte valdymo skydelyje.

Uosto nustatymas

4). Norėdami naudoti šią balsu valdomą programą, turime įtraukti specialią biblioteką į „Arduino IDE“. Ši biblioteka pridėta žemiau esančioje nuorodoje kartu su kodu. Norėdami įtraukti biblioteką, eikite į Eskizas> Įtraukti biblioteką> Pridėti ZIP. Biblioteka .

Įtraukti biblioteką

5). Atsisiųskite žemiau pridėtą kodą ir nukopijuokite jį į savo IDE. Norėdami įkelti kodą, spustelėkite mygtuką įkelti.

Galite atsisiųsti kodą iki paspaudę čia.

7 veiksmas: supraskite kodą

Kodas nėra toks sudėtingas, tačiau kai kurios jo dalys yra trumpai aprašytos žemiau.

1. Pradžioje yra įtraukta biblioteka, leidžianti nuosekliai bendrauti kitais skaitmeniniais „Arduino“ kaiščiais, naudojant programinę įrangą funkcijoms pakartoti. Inicializuoti du kaiščiai, kurie bus naudojami su „Bluetooth“ moduliu. Keturi kaiščiai yra inicializuoti, kad būtų naudojami prie sistemos prijungti buitiniai prietaisai, o eilutės kintamasis yra inicializuojamas, norint nuosekliai saugoti duomenis, gaunamus per „Bluetooth“.

#include const int rxPin = 2; // Inicijuoti „bluetooth“ modulio „pis int“ t int txPin = 3; „SoftwareSerial“ „mySerial“ (rxPin, txPin); int ac = 4; // Inicializuoti buitinės technikos kaiščius int light = 5; int ventiliatorius = 6; int tv = 7; Styginių duomenys;

2. negaliojanti sąranka () yra funkcija, kurioje mes nustatome inicializuotus kaiščius, kurie bus naudojami kaip INPUT ir OUTPUT. Taip pat čia inicijuojamas perdavimo greitis. „Baud Rate“ yra greitis, kuriuo „Arduino“ plokštė bendrauja su prijungtais komponentais. Vykdydami savo funkciją, nustatėme visus kaiščius, prijungtus prie prietaisų MAŽAI.

negaliojanti sąranka () {Serial.begin (9600); „mySerial.begin“ (9600); pinMode (kintamasis, OUTPUT); pinMode (šviesa, OUTPUT); pinMode (ventiliatorius, OUTPUT); pinMode (tv, OUTPUT); „digitalWrite“ (kintamasis, mažas); digitalWrite (lengvas, LOW); digitalWrite (ventiliatorius, LOW); „digitalWrite“ (tv, LOW); }

3. tuščia kilpa () yra funkcija, kuri kartojasi cikle. Čia nustatomos visos sąlygos, kad sistema veiktų tinkamai. Sekantis Nors () ciklas naudojamas duomenims, kurie nuosekliai ateina į mikrovaldiklį, paimti.

while (1) // Gaunama nuosekliai įvestis {while (mySerial.available ()<=0); ch = mySerial.read(); if(ch=='#') break; data+=ch; }

Nustatytos žemiau visų sąlygų, kaip įjungti visus pritvirtintus elektros prietaisus, kaip liepia vartotojas. Šios sąlygos yra gana paprastos ir savaime suprantamos.

if (duomenys == '* įjungti kintamą srovę') {digitalWrite (ac, HIGH); Serial.println („ac on“); } else if (duomenys == '* išjungti AC') {digitalWrite (ac, LOW); Serial.println („AC off“); } else if (duomenys == '* įjungti šviesą') {digitalWrite (light, HIGH); Serial.println ('šviesa įjungta'); } else if (data == '* išjungti šviesą') {digitalWrite (light, LOW); Serial.println („šviesa išjungta“); } else if (duomenys == '* įjungti ventiliatorių') {digitalWrite (ventiliatorius, AUKŠTAS); Serial.println („ventiliatorius įjungtas“); } else if (duomenys == '* išjunkite ventiliatorių') {digitalWrite (ventiliatorius, LOW); Serial.println („ventiliatorius išjungtas“); } else if (duomenys == '* įjungti TV') {digitalWrite (tv, HIGH); Serial.println ('TV on'); } else if (duomenys == '* įjungti TV') {digitalWrite (tv, LOW); Serial.println („televizorius išjungtas“); } else if (duomenys == '* įjungti visus') {digitalWrite (ac, HIGH); „digitalWrite“ (šviesa, AUKŠTAS); „digitalWrite“ (ventiliatorius, AUKŠTAS); „digitalWrite“ (televizija, AUKŠTAS); Serial.println ('viskas įjungta'); } else if (duomenys == '* išjungti visus') {digitalWrite (ac, LOW); digitalWrite (lengvas, LOW); digitalWrite (ventiliatorius, LOW); „digitalWrite“ (tv, LOW); Serial.println ('viskas išjungta'); }}

Programos

  1. Balsu įjungiama namų automatikos sistema padės mums valdyti įvairias apkrovas (elektros prietaisus) paprastomis balso komandomis.
  2. Neįgalūs žmonės gali gauti daug naudos iš šio projekto, tarsi negalėdami vaikščioti galėtų duoti balso komandą ir pasukti ĮJUNGTA arba IŠJUNGTA prietaisą.
  3. Šis projektas taip pat gali būti išplėstas, pridedant skirtingus jutiklius (šviesą, dūmus ir kt.).