Sådan designer du stemmeaktiveret hjemmeautomation?
Ideen om Hjemmeautomatisering tager fremtrædende plads, da det hjælper med at mindske menneskelig anstrengelse og fejl og dermed udvide effektiviteten. Det bruger en kombination af udstyr og programmeringsfremskridt, der muliggør kontrol over maskiner og andre elektroniske gadgets inde i et hjem. Ved hjælp af Home Automation kan vi fjernstyre vores elektriske apparater, og en stor fordel er, at strømforbruget i høj grad reduceres. Der er flere typer hjemmeautomatisering som Bluetooth-styret, fjernstyret og internetstyret osv., Og hver af dem har deres fordele og ulemper. I dette projekt vil vi designe en stemmestyret hjemmeautomatisering, hvor forskellige apparater styres ved at sende stemmekommandoen. Dette system er meget dyrt, når det købes fra markedet, men når vi integrerer alle disse apparater igennem Arduino, bliver det meget let og billigt at kontrollere alle elektriske apparater til hjemmet.
Sådan automatiseres husholdningsapparater ved hjælp af Arduino?
Da vi har den grundlæggende idé, skal vi nu bevæge os mod at samle komponenterne, samle dem for at skabe et kredsløb og skrive koden for at automatisere dine husholdningsapparater.
Trin 1: Brugte komponenter (hardware)
Trin 2: Brugte komponenter (software)
Efter download af Proteus 8 Professional skal du designe kredsløbet på den. Vi har inkluderet softwaresimuleringer her, så det kan være praktisk for begyndere at designe kredsløbet og foretage passende forbindelser på hardwaren.
Trin 3: Studere komponenterne
Da vi har lavet en liste over komponenter, som vi skal bruge i vores projekt. Lad os gå et skridt videre og gennemgå en kort undersøgelse af, hvordan disse komponenter fungerer.
- Arduino UNO: Arduino UNO er et mikrocontrollerkort, der består af et mikrochip ATMega 328P og er udviklet af Arduino.cc. Dette kort har et sæt digitale og analoge datapinde, der kan interfaces med andre udvidelseskort eller kredsløb. Dette kort har 14 digitale stifter, 6 analoge stifter og programmerbare med Arduino IDE (integreret udviklingsmiljø) via et type B USB-kabel. Det kræver 5V til strøm PÅ og en C-kodeat operere.
- HC-05 trådløs Bluetooth seriel modtager: Vi har brug for trådløs kommunikation i dette projekt, så vi bruger Bluetooth-teknologi, og det modul, der skal bruges, er HC-05. Dette modul har flere programmerbare baudhastigheder, men standard baudhastigheden er 9600 bps. Det kan konfigureres som enten master eller slave, mens et andet modul HC-06 kun kan fungere i slave-tilstand. Dette modul har fire ben. Én til VCC (5V) og de resterende tre til GND, TX og RX. Standardadgangskoden til dette modul er 1234 eller 0000. Hvis vi vil kommunikere mellem to mikrokontroller eller kommunikere med en hvilken som helst enhed med Bluetooth-funktionalitet som en telefon eller bærbar computer, hjælper HC-05 os med at gøre det. Flere Android-applikationer er allerede tilgængelige, hvilket gør denne proces meget lettere.
- Bluetooth Voice Control til Arduino: Denne app er udviklet af SimpleLabsIN til stemmebaserede Arduino-projekter. Denne Android-applikation bruger telefonens stemmegenkendelsesfunktion og konverterer stemmekommandoer til tekst og overfører strengen via Bluetooth. Ansøgningen kan downloades herfra
- 12 V relæmodul: Hvis nogen vil skifte højspændingsbelastninger fra en mikrokontroller, kan dette 12V-relækort gøre det. Den indeholder 8 x 12V relæer klassificeret til 10A / 250V AC (DC 30V / 10A). Hvert relæmodul tændes / slukkes af en opto-isoleret digital indgang, der kan tilsluttes direkte til en mikrocontrollerudgangsstift. Det kræver kun en spænding på ca. 1,0V for at tænde indgangene, men kan håndtere indgangsspændinger op til 12V. Dette gør den ideel til både 5V og 3.3V enheder. Du kan købe relæmodulet efter dit antal apparater, du vil kontrollere. For eksempel, hvis du vil styre 4 apparater, skal du købe 4 relæmodul.
Trin 4: Forstå kredsløbsdesign med kredsløbsdiagram
For det første skal vi forbinde HC-05 med Arduino UNO. Da Bluetooth bruger UART-protokollen, er vi nødt til at bruge RX- og TX-benene på Arduino. Vi bruger biblioteket “SoftwareSerial” til at definere vores egne RX- og TX-ben (Pin 2 er RX og Pin 3 er TX). RX-stiften på Bluetooth-modulet og TX-stiften på Arduino frakobles. For det andet vil vi forbinde relæerne til Arduino. Vi har brugt et færdigt relækort med 4 kanaler, så vi er nødt til at forbinde indgangene fra de enkelte relæer til Arduino. For tilslutning af belastning til relæmodulet henvises til nedenstående diagram:
Fire belastninger er forbundet til relæmodulet til demonstration og vær ekstra forsigtig, når du bruger vekselstrøm med et relækort. Bare til demonstration er vi skiftet PÅ de alternative belastninger:
Trin 5: Projektets arbejdsprincip
I dette projekt bruges stemmekommandoer til at styre forskellige apparater. Saml hardwaren i henhold til kredsløbsdiagrammet ovenfor. Saml alle komponenterne på brødbrættet. Når du har foretaget de nødvendige tilslutninger, skal du tænde for strømforsyningen til kredsløbet og parre telefonens Bluetooth med HC-05 Bluetooth-modulet. Inden du parrer, skal du installere den ovennævnte applikation på din smartphone.
Tilslut nu telefonen til Bluetooth-modulet. Klik på indstillingen “Tilslut robot”Og vælg den relevante Bluetooth-enhed. Hvis enhederne ikke er parret tidligere, skal du parre dem nu ved at indtaste stiften 0000 eller 1234.
Efter en vellykket forbindelse er enheder klar til at overføre data. For at overføre data skal du trykke på mikrofonikonet i appen og begynde at give stemmekommandoer. Sørg for, at stemmegenkendelsesfunktionen er aktiveret på din smartphone (dette er normalt knyttet til Google-appen). For eksempel når vi trykker på mikrofonikonet og siger "Tænd lyset",applikationen genkender kommandoen og overfører den til Bluetooth-modulet.
Når strengen genkendes af applikationen, sender den strengen som “tænd lys #”, og den aktuelle meddelelse modtaget af Bluetooth-modulet har denne type format ("*Besked#"). Årsagen til at polstring af '*' og '#' ved tiggeriet og slutningen af strengen er at identificere starten og slutningen af meddelelsen. Den modtagne besked sammenlignes med nogle foruddefinerede strenge, og hvis meddelelsen matcher dem, sker den tilsvarende handling som "tænding" og slukning.
I dette projekt har vi brugt følgende kommandoer: “tænd for vekselstrøm”, “sluk for vekselstrøm”, “tænd lys”, “sluk for lys”, “tænd for tv”, “sluk for tv”, “tænd for blæser "," Slå alle til "og" slå alle til ".
Trin 6: Kom godt i gang med Arduino
Hvis du ikke er bekendt med Arduino IDE før, skal du ikke bekymre dig, for nedenfor kan du se klare trin til at brænde kode på mikrocontrolerkortet ved hjælp af Arduino IDE. Du kan downloade den nyeste version af Arduino IDE herfra og følge nedenstående trin:
1). Når Arduino-kortet er tilsluttet din pc, skal du åbne "Kontrolpanel" og klikke på "Hardware og lyd". Klik derefter på "Enheder og printere". Find navnet på den port, som dit Arduino-kort er tilsluttet. I mit tilfælde er det "COM14", men det kan være anderledes på din pc.
2). Åbn nu Arduino IDE. Fra værktøjer skal du indstille Arduino-kortet til Arduino / Genuino UNO.
3). Fra den samme værktøjsmenu skal du indstille det portnummer, du så i kontrolpanelet.
4). For at bruge denne stemmestyrede app har vi brug for et specielt bibliotek, der skal inkluderes i Arduino IDE. Dette bibliotek er vedhæftet i nedenstående link sammen med koden. Gå til for at inkludere biblioteket Skitse> Inkluder bibliotek> Tilføj ZIP. Bibliotek.
5). Download nedenstående kode og kopier den til din IDE. For at uploade koden skal du klikke på upload-knappen.
Du kan downloade koden ved at klikke her.
Trin 7: Forstå koden
Koden er ikke så kompleks, men stadig er nogle af dens dele beskrevet kort nedenfor.
1. I starten er der inkluderet et bibliotek, der tillader seriel kommunikation på andre digitale stifter i Arduino ved hjælp af software til at replikere funktionaliteten. To ben er initialiseret til brug sammen med Bluetooth-modulet. Fire stifter initialiseres til brug til husholdningsapparater, der er tilsluttet systemet, og en strengvariabel initialiseres til lagring af data, der kommer via Bluetooth serielt.
#omfatteconst int rxPin = 2; // Initialiser pisns til bluetooth-modul const int txPin = 3; SoftwareSerial mySerial (rxPin, txPin); int ac = 4; // Initialiser pins til husholdningsapparater int light = 5; int fan = 6; int tv = 7; Strengdata;
2. ugyldig opsætning ()er en funktion, hvor vi indstiller de initialiserede ben, der skal bruges som INPUT og OUTPUT. Baudrate initialiseres også her. Baudrate er den hastighed, hvormed Arduino-kortet kommunikerer med de tilsluttede komponenter. I vores funktion har vi indstillet alle de ben, der er tilsluttet apparaterne, til LAV.
ugyldig opsætning () {Serial.begin (9600); mySerial.begin (9600); pinMode (ac, OUTPUT); pinMode (lys, OUTPUT); pinMode (ventilator, OUTPUT); pinMode (tv, OUTPUT); digitalWrite (ac, LOW); digitalWrite (lys, LAV); digitalWrite (ventilator, LAV); digitalWrite (tv, LAV); }
3. ugyldig sløjfe ()er en funktion, der kører gentagne gange i en løkke. Her er alle betingelser indstillet til at få systemet til at fungere korrekt. Det følgende Mens() loop bruges til at tage data, der kommer serielt til mikrokontrolleren.
while (1) // Få input serielt {while (mySerial.available () <= 0); ch = mySerial.read (); hvis (ch == '#') pause; data + = ch; }
Nedenfor er alle betingelser indstillet til at tænde for alle tilsluttede elektriske apparater, som brugeren befaler. Disse forhold er ret enkle og selvforklarende.
hvis (data == "* tænd for AC") {digitalWrite (ac, HIGH); Serial.println ("ac on"); } ellers hvis (data == "* sluk for AC") {digitalWrite (ac, LOW); Serial.println ("ac off"); } ellers hvis (data == "* tænder lys") {digitalWrite (lys, HØJ); Serial.println ("lys tændt"); } ellers hvis (data == "* slukker for lys") {digitalWrite (lys, LAV); Serial.println ("lys slukket"); } ellers hvis (data == "* tænd ventilator") {digitalWrite (ventilator, HIGH); Serial.println ("ventilator tændt"); } ellers hvis (data == "* sluk for blæser") {digitalWrite (blæser, LAV); Serial.println ("blæser fra"); } ellers hvis (data == "* tænd tv") {digitalWrite (tv, HIGH); Serial.println ("tv på"); } ellers hvis (data == "* tænd TV") {digitalWrite (tv, LOW); Serial.println ("tv slukket"); } ellers hvis (data == "* slå alle til") {digitalWrite (ac, HIGH); digitalWrite (lys, HØJ); digitalWrite (fan, HIGH); digitalWrite (tv, HIGH); Serial.println ("alt til"); } ellers hvis (data == "* slå alle fra") {digitalWrite (ac, LOW); digitalWrite (lys, LAV); digitalWrite (ventilator, LAV); digitalWrite (tv, LAV); Serial.println ("alt fra"); }}
Ansøgninger
- Det stemmeaktiverede hjemmeautomatiseringssystem hjælper os med at kontrollere forskellige belastninger (elektriske apparater) med enkle stemmekommandoer.
- Mennesker, der er handicappede, kan få mange fordele ved dette projekt, som om de ikke er i stand til at gå rundt, kan de give en stemmekommando og dreje PÅ eller AF apparatet.
- Dette projekt kan også udvides ved at tilføje forskellige sensorer (lys, røg osv.).