Hur man utformar röstaktiverad hemautomation?
Idéen av Hemautomation ökar framträdande eftersom det hjälper till att minska mänsklig ansträngning och misstag och därmed öka effektiviteten. Den använder en kombination av utrustning och programmeringsframsteg som möjliggör kontroll över maskiner och andra elektroniska prylar i ett hem. Med hjälp av hemautomation kan vi fjärrstyra våra elektriska apparater och en stor fördel är att strömförbrukningen minskas till stor del. Det finns flera typer av hemautomation som Bluetooth-kontrollerad, fjärrstyrd och internetstyrd etc, och var och en av dem har sina fördelar och nackdelar. I detta projekt kommer vi att utforma en röststyrd hemautomation där olika apparater styrs genom att skicka röstkommandot. Detta system är mycket dyrt när det köps från marknaden men när vi integrerar alla dessa apparater genom Arduinoblir det väldigt enkelt och billigt att styra alla elektriska hushållsapparater.
Hur automatiserar du hushållsapparater med Arduino?
Eftersom vi har grundidén ska vi nu gå mot att samla in komponenterna, montera dem för att skapa en krets och skriva koden för att automatisera dina hushållsapparater.
Steg 1: Komponenter som används (hårdvara)
Steg 2: Komponenter som används (programvara)
Efter att ha laddat ner Proteus 8 Professional, design kretsen på den. Vi har inkluderat mjukvarusimuleringar här så att det kan vara bekvämt för nybörjare att utforma kretsen och göra lämpliga anslutningar på hårdvaran.
Steg 3: Studera komponenterna
Eftersom vi har gjort en lista över komponenter som vi ska använda i vårt projekt. Låt oss gå ett steg framåt och gå igenom en kort studie av hur dessa komponenter fungerar.
- Arduino UNO: Arduino UNO är ett mikrokontrollerkort som består av ett mikrochip ATMega 328P och är utvecklat av Arduino.cc. Detta kort har en uppsättning digitala och analoga datapinnar som kan anslutas till andra expansionskort eller kretsar. Detta kort har 14 digitala stift, 6 analoga stift och programmerbara med Arduino IDE (Integrated Development Environment) via en USB-kabel av typ B. Det kräver 5V för att driva PÅ och en C-kodatt driva.
- HC-05 trådlös Bluetooth-seriemottagare: Vi behöver trådlös kommunikation i det här projektet, så vi kommer att använda Bluetooth-teknik och för den modulen som ska användas är HC-05. Den här modulen har flera programmerbara baudhastigheter men standard baudhastigheten är 9600 bps. Den kan konfigureras antingen som master eller slav, medan en annan modul HC-06 endast kan fungera i slavläge. Denna modul har fyra stift. En för VCC (5V) och de återstående tre för GND, TX och RX. Standardlösenordet för denna modul är 1234 eller 0000. Om vi vill kommunicera mellan två mikrokontroller eller kommunicera med någon enhet med Bluetooth-funktionalitet som en telefon eller bärbar dator hjälper HC-05 oss att göra det. Flera Android-applikationer är redan tillgängliga vilket gör processen mycket enklare.
- Bluetooth Voice Control för Arduino: Den här appen är utvecklad av SimpleLabsIN för röstbaserade Arduino-projekt. Denna Android-applikation använder telefonens röstigenkänningsfunktion och konverterar röstkommandona till text och överför strängen via Bluetooth. Applikationen kan laddas ner härifrån
- 12 V relämodul: Om någon vill växla högspänningsbelastningar från en mikrokontroller kan detta 12V-reläkort göra det. Den innehåller 8 x 12V reläer med 10A / 250V AC (DC 30V / 10A). Varje relämodul slås på / av av en opto-isolerad digital ingång som kan anslutas direkt till en mikroprocessorutgång. Det kräver bara en spänning på ca 1.0V för att slå på ingångarna men kan hantera ingångsspänningar upp till 12V. Detta gör den idealisk för både 5V- och 3.3V-enheter. Du kan köpa relämodulen enligt ditt antal apparater du vill styra. Om du till exempel vill styra 4 apparater ska du köpa 4 Relay-modul.
Steg 4: Förstå kretsdesign med kretsschema
För det första måste vi ansluta HC-05 med Arduino UNO. Eftersom Bluetooth använder UART-protokollet måste vi använda RX- och TX-stiften på Arduino. Vi kommer att använda biblioteket “SoftwareSerial” för att definiera våra egna RX- och TX-stift (stift 2 är RX och stift 3 är TX). RX-stiftet på Bluetooth-modulen och TX-stiftet på Arduino kommer att kopplas bort. För det andra ansluter vi reläerna till Arduino. Vi har använt ett färdigt reläkort med 4 kanaler, så vi måste ansluta ingångarna för de enskilda reläerna till Arduino. För anslutning av last till relämodulen, se diagrammet nedan:
Fyra laster är anslutna till relämodulen för demonstration och var extra försiktig när du använder AC-nät med ett reläkort. Bara för demonstration har vi bytt PÅ de alternativa lasterna:
Steg 5: Projektets arbetsprincip
I detta projekt används röstkommandon för att styra olika apparater. Montera hårdvaran enligt kretsschemat ovan. Montera alla komponenter på panelen. När du har gjort de nödvändiga anslutningarna, slå på strömförsörjningen till kretsen och para telefonens Bluetooth till HC-05 Bluetooth-modulen. Innan du parar ihop installerar du applikationen ovan på din smartphone.
Anslut nu telefonen till Bluetooth-modulen. Klicka på alternativet “Anslut robot”Och välj lämplig Bluetooth-enhet. Om enheterna inte har parats ihop tidigare parar du dem nu genom att ange nålen 0000 eller 1234.
Efter en lyckad anslutning är enheterna redo att överföra data. För överföring av data, tryck på mikrofonikonen i appen och börja ge röstkommandon. Se till att röstigenkänningsfunktionen är aktiverad på din smartphone (detta är vanligtvis associerat med Google-appen). Till exempel när vi trycker på mikrofonikonen och säger "Tänd ljuset",applikationen känner igen kommandot och överför det till Bluetooth-modulen.
När strängen känns igen av applikationen kommer den att skicka strängen som "slå på ljus #" och det faktiska meddelandet som mottas av Bluetooth-modulen har denna typ av format ("*Meddelande#"). Anledningen till att stoppa '*' och '#' i tiggeriet och slutet på strängen är att identifiera början och slutet på meddelandet. Det mottagna meddelandet jämförs med några fördefinierade strängar och om meddelandet matchar dem sker motsvarande åtgärd som att "slå på" och att stänga av.
I detta projekt har vi använt följande kommandon: “slå på växelström”, “stäng av växelström”, “slå på ljus”, “slå av ljus”, “slå på TV”, “stäng av TV”, “slå på fläkt ”,” Slå på alla ”och“ stäng av alla ”.
Steg 6: Komma igång med Arduino
Om du inte känner till Arduino IDE tidigare, oroa dig inte, för nedan kan du se tydliga steg för att bränna kod på mikrokontrollkortet med Arduino IDE. Du kan ladda ner den senaste versionen av Arduino IDE härifrån och följ stegen nedan:
1). När Arduino-kortet är anslutet till din dator öppnar du "Kontrollpanelen" och klickar på "Hårdvara och ljud". Klicka sedan på "Enheter och skrivare". Hitta namnet på den port som Arduino-kortet är anslutet till. I mitt fall är det “COM14” men det kan vara annorlunda på din dator.
2). Öppna nu Arduino IDE. Från Verktyg ställer du Arduino-kortet till Arduino / Genuino UNO.
3). Från samma verktygsmeny ställer du in portnumret som du såg på kontrollpanelen.
4). För att använda den här röststyrda appen behöver vi ett speciellt bibliotek som ska ingå i Arduino IDE. Detta bibliotek bifogas i länken nedan tillsammans med koden. För att inkludera biblioteket, gå till Skiss> Inkludera bibliotek> Lägg till ZIP. Bibliotek.
5). Ladda ner koden som bifogas nedan och kopiera den till din IDE. Klicka på uppladdningsknappen för att ladda upp koden.
Du kan ladda ner koden genom att klicka här.
Steg 7: Förstå koden
Koden är inte så komplex men ändå, några av dess delar beskrivs kort nedan.
1. I början ingår ett bibliotek för att tillåta seriell kommunikation på andra digitala stift i Arduino, med hjälp av programvara för att replikera funktionaliteten. Två stift är initialiserade för att användas med Bluetooth-modulen. Fyra stift initialiseras för att användas för hushållsapparater som är anslutna till systemet och en strängvariabel initieras för att lagra data som kommer via Bluetooth seriellt.
#omfattaconst int rxPin = 2; // Initiera pisns för Bluetooth-modul const int txPin = 3; SoftwareSerial mySerial (rxPin, txPin); int ac = 4; // Initiera stift för hushållsapparater int light = 5; int fläkt = 6; int tv = 7; Strängdata;
2. ogiltig installation ()är en funktion där vi ställer in de initialiserade stiften som ska användas som INPUT och OUTPUT. Baud Rate initialiseras också här. Baud Rate är den hastighet med vilken Arduino-kortet kommunicerar med de anslutna komponenterna. I vår funktion har vi ställt in alla stift som är anslutna till apparaterna till LÅG.
ogiltig installation () {Serial.begin (9600); mySerial.begin (9600); pinMode (ac, OUTPUT); pinMode (ljus, UTGÅNG); pinMode (fläkt, OUTPUT); pinMode (tv, OUTPUT); digitalWrite (ac, LOW); digitalWrite (ljus, LÅG); digitalWrite (fläkt, LOW); digitalWrite (tv, LOW); }
3. ogiltig slinga ()är en funktion som körs upprepade gånger i en slinga. Här är alla villkor inställda för att systemet ska fungera ordentligt. Det följande Medan() loop används för att ta data som kommer seriellt till mikrokontrollern.
while (1) // Få input seriellt {while (mySerial.available () <= 0); ch = mySerial.read (); om (ch == '#') bryta; data + = ch; }
Nedan är alla villkor inställda på att sätta på alla anslutna elektriska apparater, som användaren befaller. Dessa villkor är ganska enkla och självförklarande.
if (data == "* slå på AC") {digitalWrite (ac, HIGH); Serial.println ("ac on"); } annat om (data == "* stäng av AC") {digitalWrite (ac, LOW); Serial.println ("ac av"); } annat om (data == "* tänd ljus") {digitalWrite (ljus, HÖG); Serial.println ("ljus på"); } annat om (data == "* stäng av ljus") {digitalWrite (ljus, LÅG); Serial.println ("light off"); } annat om (data == "* slå på fläkt") {digitalWrite (fläkt, HÖG); Serial.println ("fläkt på"); } annat om (data == "* stäng av fläkt") {digitalWrite (fläkt, LÅG); Serial.println ("fläkt av"); } annat om (data == "* slå på TV") {digitalWrite (tv, HÖG); Serial.println ("tv på"); } annat om (data == "* slå på TV") {digitalWrite (tv, LOW); Serial.println ("tv av"); } annat om (data == "* slå på alla") {digitalWrite (ac, HIGH); digitalWrite (ljus, HÖG); digitalWrite (fläkt, HÖG); digitalWrite (tv, HÖG); Serial.println ("allt på"); } annat om (data == "* stäng av alla") {digitalWrite (ac, LOW); digitalWrite (ljus, LÅG); digitalWrite (fläkt, LOW); digitalWrite (tv, LOW); Serial.println ("allt avstängt"); }}
Applikationer
- Det röstaktiverade hemautomationssystemet hjälper oss att styra olika belastningar (elektriska apparater) med enkla röstkommandon.
- Människor som är funktionshindrade kan få många fördelar med detta projekt som om de inte kan gå runt kan de ge ett röstkommando och vända PÅ eller AV apparaten.
- Detta projekt kan också utökas genom att lägga till olika sensorer (ljus, rök, etc.).