Hur man utformar röstaktiverad hemautomation?

Idéen av Hemautomation tar upp 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 Arduino blir det väldigt enkelt och billigt att styra alla elektriska apparater i hemmet.



Röststyrd hemautomation

Hur automatiserar du hushållsapparater med Arduino?

Eftersom vi har grundidén, låt oss 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)

  • Arduino uno
  • HC-05 Bluetooth-modul
  • 2N2222 NPN-transistor
  • 12V relämodul
  • 1k-ohm motstånd
  • 12V AC till DC-adapter
  • 1N4007 PN-kopplingsdiod
  • Bygeltrådar

Steg 2: Komponenter som används (programvara)

  • Proteus 8 Professional (kan laddas ner från Här )

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.



  1. Arduino UNO: Arduino UNO är ett mikrokontrollkort 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 typ B USB-kabel. Det kräver 5V för att driva och a C-kod att driva.

    Arduino UNO

  2. 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. Denna modul har flera programmerbara baudhastigheter men standard baudhastigheten är 9600 bps. Den kan konfigureras som antingen 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.

    HC-05 Bluetooth-modul

  3. 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 från Här

    BT Voice Control App



  4. 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 med 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.

    12V relä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 till de enskilda reläerna till Arduino. För anslutning av last till relämodulen, se diagrammet nedan:

Montering av relämodulens krets

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 de alternativa lasterna:

Kretsschema

Steg 5: Arbetsprincip för projektet

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 nödvändiga anslutningar, slå på strömförsörjningen till kretsen och para ihop telefonens Bluetooth med HC-05 Bluetooth-modulen. Innan du parar ihop installerar du appen som nämns 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.

Para ihop smartphone

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.

Röstigenkänd

När strängen känns igen av applikationen kommer den att skicka strängen som 'slå på ljus #' och det faktiska meddelandet som tas emot 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 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”, “slå 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 från här 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.

Hitta port

2). Öppna nu Arduino IDE. Från Verktyg ställer du Arduino-kortet till Arduino / Genuino UNO.

Inställningsbräda

3). Från samma verktygsmeny ställer du in portnumret som du såg på kontrollpanelen.

Ställ in port

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 .

Inkludera 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 är initialiserade 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.

#include const 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, OUTPUT); 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(); if(ch=='#') break; 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.

om (data == '* slå på AC') {digitalWrite (ac, HIGH); Serial.println ('ac on'); } annat om (data == '* stäng av AC') {digitalWrite (ac, LOW); Serial.println ('ac off'); } annat om (data == '* slår på 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 ('fan on'); } annat om (data == '* stäng av fläkt') {digitalWrite (fläkt, LÅG); Serial.println ('fan off'); } 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å allt') {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 allt') {digitalWrite (ac, LOW); digitalWrite (ljus, LÅG); digitalWrite (fläkt, LOW); digitalWrite (tv, LOW); Serial.println ('allt av'); }}

Applikationer

  1. Det röstaktiverade hemautomationssystemet hjälper oss att styra olika belastningar (elektriska apparater) med enkla röstkommandon.
  2. 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 eller AV apparaten.
  3. Detta projekt kan också utökas genom att lägga till olika sensorer (ljus, rök, etc.).