Kuidas kujundada häälega aktiveeritav koduautomaatika?

Idee Koduautomaatika tõstab silmapaistvust, kuna see aitab vähendada inimeste pingutusi ja vigu ning seeläbi laiendada tõhusust. See kasutab kombineeritud seadmeid ja programmeerimise edusamme, mis võimaldavad juhtida kodus olevaid masinaid ja muid elektroonilisi vidinaid. Koduautomaatika abil saame oma elektriseadmeid kaugjuhtida ja suur eelis on see, et elektritarbimine väheneb suurel määral. Koduautomaatikat on mitut tüüpi, näiteks Bluetoothi, kaugjuhtimise ja Interneti juhtimise funktsioone jne. Neil kõigil on oma eelised ja puudused. Selles projektis kujundame hääljuhtimisega koduautomaatika, kus erinevaid seadmeid juhitakse häälkäskluse saatmisega. Turult ostes on see süsteem väga kallis, kuid kui integreerime kõik need seadmed läbi Arduino , muutub kõigi koduste elektriseadmete juhtimine väga lihtsaks ja odavaks.



Hääljuhitav koduautomaatika

Kuidas automatiseerida kodumasinaid Arduino abil?

Kuna meil on põhiidee, liigume nüüd komponentide kogumise, nende kokkupaneku jaoks vooluringi koostamiseks ja kodutehnika automatiseerimiseks koodi kirjutamise poole.



1. samm: kasutatud komponendid (riistvara)

  • Arduino uno
  • HC-05 Bluetoothi ​​moodul
  • 2N2222 NPN transistor
  • 12V relee moodul
  • 1k-oomi takisti
  • 12 V vahelduvvoolu adapter
  • 1N4007 PN ühendusdiood
  • Hüppaja juhtmed

2. samm: kasutatud komponendid (tarkvara)

  • Proteus 8 Professional (saab alla laadida saidilt Siin )

Pärast Proteus 8 Professionali allalaadimist kujundage sellele vooluring. Oleme siia lisanud tarkvarasimulatsioonid, et algajatel oleks mugav vooluringi kujundada ja riistvaral asjakohaseid ühendusi luua.



3. samm: komponentide uurimine

Kuna oleme koostanud loetelu komponentidest, mida kavatseme oma projektis kasutada. Liigume sammu edasi ja uurime lühidalt, kuidas need komponendid töötavad.



  1. Arduino UNO: Arduino UNO on mikrokontrolleriplaat, mis koosneb mikrokiibist ATMega 328P ja mille on välja töötanud Arduino.cc. Sellel plaadil on digitaalsete ja analoogandmete tihvtide komplekt, mida saab liidestada teiste laiendusplaatide või -ahelatega. Sellel plaadil on 14 digitaalset tihvti, 6 analoognõela ja see on programmeeritav Arduino IDE (integreeritud arenduskeskkond) kaudu B-tüüpi USB-kaabli kaudu. Selle toitmiseks on vaja 5V PEAL ja a C kood tegutsema.

    Arduino UNO

  2. Juhtmevaba Bluetooth-seeriatransiiver HC-05 : Selles projektis vajame traadita sidet, seega kasutame Bluetooth-tehnoloogiat ja selle mooduli jaoks, mida kasutatakse, on HC-05. Sellel moodulil on mitu programmeeritavat baudikiirust, kuid vaikimisi on kiirus 9600 bps. Seda saab konfigureerida kas põhi- või alluvaks, samas kui teine ​​moodul HC-06 saab töötada ainult alamrežiimis. Sellel moodulil on neli tihvti. Üks VCC (5V) ja ülejäänud kolm GND, TX ja RX jaoks. Selle mooduli vaikeparool on 1234 või 0000 . Kui tahame suhelda kahe mikrokontrolleri vahel või suhelda mis tahes Bluetooth-funktsiooniga seadmega, näiteks telefon või sülearvuti HC-05, aitab see meil seda teha. Juba on saadaval mitu android-rakendust, mis muudab selle protsessi palju lihtsamaks.

    HC-05 Bluetoothi ​​moodul

  3. Arduino Bluetooth-hääljuhtimine : Selle rakenduse on välja töötanud SimpleLabsIN häälpõhiste Arduino projektide jaoks. See Androidi rakendus kasutab telefoni hääletuvastuse funktsiooni ja teisendab häälkäsklused tekstiks ja kannab stringi üle Bluetoothi ​​kaudu. Rakenduse saab alla laadida aadressilt Siin

    BT hääljuhtimisrakendus



  4. 12 V relee moodul: Kui keegi soovib mikrokontrollerist kõrgepinge koormusi ümber lülitada, saab see 12 V releeplaat hakkama. See sisaldab 8 x 12V releed, mille võimsus on 10A / 250V AC (DC 30V / 10A). Iga relee moodul lülitatakse sisse / välja optoisolatsiooniga digitaalse sisendi abil, mille saab ühendada otse mikrokontrolleri väljundnõelaga. Sisendite sisselülitamiseks on vaja ainult umbes 1,0 V pinget, kuid see suudab toime tulla kuni 12 V sisendpingega. See muudab selle ideaalseks nii 5V kui ka 3.3V seadmete jaoks. Relee mooduli saate osta vastavalt seadmete arvule, mida soovite juhtida. Näiteks kui soovite juhtida 4 seadet, peaksite ostma 4 relee moodulit.

    12V relee moodul

4. samm: vooluahela kujunduse mõistmine vooluahelaga

Esiteks peame ühendama HC-05 Arduino UNO-ga. Kuna Bluetooth kasutab UART-protokolli, peame kasutama Arduino RX- ja TX-kontakte. Oma RX- ja TX-tihvtide määratlemiseks kasutame teeki “SoftwareSerial” (Pin 2 on RX ja Pin 3 TX). Bluetooth-mooduli RX-nööpnõel ja Arduino TX-nupp ühendatakse lahti. Teiseks ühendame releed Arduinoga. Oleme kasutanud 4-kanaliga eelvalmistatud releeplaati, seega peame ühendama üksikute releede sisendid Arduinoga. Koormuse ühendamiseks releemooduliga vaadake järgmist skeemi:

Relee mooduli vooluahela kokkupanek

Releemooduliga on demonstreerimiseks ühendatud neli koormust ja olge eriti ettevaatlik, kui kasutate vahelduvvooluvõrku releeplaadiga. Lihtsalt demonstratsiooniks oleme vahetanud PEAL alternatiivsed koormused:

Vooluringi skeem

5. samm: projekti tööpõhimõte

Selles projektis kasutatakse häälkäsklusi erinevate seadmete juhtimiseks. Pange riistvara kokku vastavalt ülaltoodud skeemile. Pange kõik paneelil olevad komponendid kokku. Pärast vajalike ühenduste tegemist lülitage vooluallikas sisse ja siduge telefoni Bluetooth Bluetooth-mooduliga HC-05. Enne sidumist installige ülalnimetatud rakendus nutitelefoni.

Nüüd ühendage telefon Bluetooth-mooduliga. Klõpsake valikul „ Ühendage robot ”Ja valige sobiv Bluetooth-seade. Kui seadmeid pole varem paaristatud, siduge need nüüd, sisestades tihvti 0000 või 1234.

Nutitelefoni sidumine

Pärast edukat ühendust on seadmed andmete edastamiseks valmis. Andmete edastamiseks vajutage rakenduse mikrofoniikooni ja alustage häälkäskluste andmist. Veenduge, et teie nutitelefonis oleks lubatud hääletuvastuse funktsioon (see on tavaliselt seotud Google'i rakendusega). Näiteks kui me vajutame mikrofoni ikooni ja ütleme 'Pane tuli põlema', rakendus tunneb käsu ära ja kannab selle üle Bluetooth-moodulisse.

Hääl tunnustatud

Kui rakendus on stringi ära tundnud, saadab see stringi kui “lülita tuli sisse #” ja Bluetooth-mooduli tegelikul sõnumil on seda tüüpi vorming ( “* Sõnumi nr” ). Stringi alguses ja lõpus olevate tähtede * * ja # täitmise põhjuseks on sõnumi alguse ja lõpu tuvastamine. Vastuvõetud sõnumit võrreldakse mõne eelnevalt määratletud stringiga ja kui sõnum nendega sobib, juhtub vastav toiming nagu „sisse lülitamine“ ja välja lülitamine.

Selles projektis oleme kasutanud järgmisi käsklusi: „lülitage AC sisse”, „lülitage AC välja”, „lülitage valgus sisse”, „lülitage valgus välja”, „lülitage teler sisse”, „lülitage teler välja”, “lülitage ventilaator sisse ”,“ Lülita kõik sisse ”ja“ lülita kõik välja ”.

6. samm: Arduinoga alustamine

Kui te pole Arduino IDE-ga varem tuttav, ärge muretsege, sest allpool näete Arduino IDE abil mikrokontrolleri plaadil koodi kirjutamise selgeid samme. Arduino IDE uusima versiooni saate alla laadida siit siin ja järgige allpool nimetatud samme:

1). Kui Arduino tahvel on arvutiga ühendatud, avage juhtpaneel ja klõpsake nuppu „Riistvara ja heli”. Seejärel klõpsake nuppu „Seadmed ja printerid”. Leidke selle sadama nimi, millega teie Arduino tahvel on ühendatud. Minu puhul on see COM14, kuid see võib teie arvutis olla erinev.

Sadama leidmine

2). Nüüd avage Arduino IDE. Tööriistadest seadke Arduino tahvel olekuks Arduino / Genuino UNO.

Laua määramine

3). Valige samas menüüs Tööriist pordi number, mida nägite juhtpaneelil.

Pordi seadistamine

4). Selle hääljuhtimisega rakenduse kasutamiseks peame Arduino IDE-sse lisama spetsiaalse teegi. See teek on lisatud koodiga allolevale lingile. Raamatukogu kaasamiseks minge aadressile Visand> Kaasa teek> Lisa ZIP. Raamatukogu .

Kaasa teek

5). Laadige alla allolev kood ja kopeerige see oma IDE-sse. Koodi üleslaadimiseks klõpsake üleslaadimise nuppu.

Koodi saate alla laadida klõpsates siin.

7. samm: koodi mõistmine

Koodeks ei ole nii keeruline, kuid siiski kirjeldatakse mõnda selle osa lühidalt allpool.

1. Kõigepealt lisatakse raamatukogu, mis võimaldab järjestikku suhelda teistel Arduino digitaalsel tihvtil, kasutades tarkvara funktsionaalsuse kopeerimiseks. Initsialiseeritakse Bluetooth-mooduliga kasutamiseks kaks tihvti. Süsteemiga ühendatud kodumasinate jaoks lähtestatakse neli tihvti ja initsialiseeritakse stringimuutuja, et Bluetoothi ​​kaudu tulevaid andmeid järjestikku salvestada.

# kaasata const int rxPin = 2; // Inicialise pisnid bluetooth mooduli const int txPin = 3; SoftwareSerial mySerial (rxPin, txPin); int ac = 4; // Initsialiseerige kodumasinate tihvtid int light = 5; int ventilaator = 6; int tv = 7; Stringandmed;

2. kehtetu seadistamine () on funktsioon, milles määrame initsialiseeritud tihvtid kasutamiseks sisendina ja väljundina. Siin initsialiseeritakse ka ülekandekiirus. Baudi kiirus on kiirus, mille abil Arduino plaat suhtleb lisatud komponentidega. Oma funktsioonis oleme seadistanud kõik seadmetega ühendatud tihvtid MADAL.

void setup () {Serial.begin (9600); mySerial.begin (9600); pinMode (ac, OUTPUT); pinMode (kerge, OUTPUT); pinMode (ventilaator, OUTPUT); pinMode (tv, VÄLJUND); digitalWrite (vahelduvvool, LOW); digitalWrite (kerge, LOW); digitalWrite (ventilaator, LOW); digitalWrite (tv, LOW); }

3. void loop () on funktsioon, mis töötab korduvalt silmusena. Siin on kõik tingimused süsteemi nõuetekohaseks toimimiseks seatud. Järgnev Kuigi () loopi kasutatakse järjestikku mikrokontrollerisse saabuvate andmete viimiseks.

while (1) // Sisendi järjestikune hankimine {while (mySerial.available ()<=0); ch = mySerial.read(); if(ch=='#') break; data+=ch; }

Kõigi lisatud elektriseadmete sisselülitamiseks seatakse allpool kõik tingimused, nagu kasutaja käsib. Need tingimused on üsna lihtsad ja iseenesestmõistetavad.

if (data == '* lülitage AC sisse') {digitalWrite (ac, HIGH); Serial.println ('ac on'); } else if (data == '* lülita AC välja') {digitalWrite (ac, LOW); Serial.println ('vahelduvvoolu väljalülitamine'); } else if (data == '* lülitage tuli sisse') {digitalWrite (light, HIGH); Serial.println ('tuli põleb'); } else if (data == '* lülitage tuli välja') {digitalWrite (light, LOW); Serial.println ('tuli kustub'); } else if (data == '* ventilaatori sisselülitamine') {digitalWrite (ventilaator, HIGH); Serial.println ('fänn sisse'); } else if (data == '* ventilaatori väljalülitamine') {digitalWrite (ventilaator, LOW); Serial.println ('ventilaator välja'); } else if (data == '* lülita teler sisse') {digitalWrite (tv, HIGH); Serial.println ('TV sisse'); } else if (data == '* lülita teler sisse') {digitalWrite (tv, LOW); Serial.println ('teler välja'); } else if (data == '* lülita kõik sisse') {digitalWrite (ac, HIGH); digitalWrite (kerge, HIGH); digitalWrite (ventilaator, HIGH); digitalWrite (tv, HIGH); Serial.println ('kõik sees'); } else if (data == '* lülita kõik välja') {digitalWrite (ac, LOW); digitalWrite (kerge, LOW); digitalWrite (ventilaator, LOW); digitalWrite (tv, LOW); Serial.println ('kõik välja'); }}

Rakendused

  1. Häälega aktiveeritav koduautomaatika süsteem aitab meil erinevaid koormusi (elektriseadmeid) juhtida lihtsate häälkäsklustega.
  2. Puudega inimesed saavad sellest projektist palju kasu, sest kui nad ei suuda ringi käia, saavad nad anda häälkäskluse ja pöörduda PEAL või VÄLJAS seade.
  3. Seda projekti saab laiendada ka erinevate andurite (valgus, suits jne) lisamisega.