Hoe spraakgestuurde huisautomatisering te ontwerpen?

Het idee van Domotica wordt steeds belangrijker omdat het helpt bij het verminderen van menselijke inspanning en fouten en daarmee de effectiviteit vergroot. Het maakt gebruik van een combinatie van apparatuur en programmeervoortgangen die controle over machines en andere elektronische gadgets in een huis mogelijk maken. Met behulp van Home Automation kunnen we onze elektrische apparaten op afstand bedienen en een groot voordeel is dat het stroomverbruik sterk wordt verminderd. Er zijn verschillende soorten huisautomatisering zoals Bluetooth-gestuurd, op afstand bestuurd en internetgestuurd, enz. En elk van hen heeft zijn voor- en nadelen. In dit project zullen we een spraakgestuurde huisautomatisering ontwerpen waarbij verschillende apparaten worden aangestuurd door de spraakopdracht te verzenden. Dit systeem is erg duur als het op de markt wordt gekocht, maar als we al deze apparaten erdoorheen integreren Arduino, wordt het heel gemakkelijk en goedkoop om alle elektrische apparaten in huis te bedienen.

Hoe huishoudelijke apparaten te automatiseren met Arduino?

Omdat we het basisidee hebben, gaan we nu verder met het verzamelen van de componenten, ze in elkaar zetten om een ​​circuit te maken en de code schrijven om je huishoudelijke apparaten te automatiseren.

Stap 1: gebruikte componenten (hardware)

Stap 2: Gebruikte componenten (software)

Na het downloaden van de Proteus 8 Professional, ontwerp je het circuit erop. We hebben hier softwaresimulaties opgenomen, zodat het voor beginners handig kan zijn om het circuit te ontwerpen en de juiste aansluitingen op de hardware te maken.

Stap 3: de componenten bestuderen

We hebben namelijk een lijst gemaakt met componenten die we in ons project gaan gebruiken. Laten we een stap verder gaan en een korte studie doornemen van hoe deze componenten werken.

  1. Arduino UNO: De Arduino UNO is een microcontroller-bord dat bestaat uit een microchip ATMega 328P en is ontwikkeld door Arduino.cc. Dit bord heeft een set digitale en analoge datapinnen die kunnen worden aangesloten op andere uitbreidingskaarten of circuits. Dit bord heeft 14 digitale pinnen, 6 analoge pinnen en is programmeerbaar met de Arduino IDE (Integrated Development Environment) via een type B USB-kabel. Het vereist 5V om van stroom te voorzien AAN en een C-codeopereren.
  2. HC-05 draadloze Bluetooth seriële zendontvanger: We hebben draadloze communicatie nodig in dit project, dus we zullen Bluetooth-technologie gebruiken en voor die module die zal worden gebruikt is HC-05. Deze module heeft verschillende programmeerbare baudrates, maar de standaard baudrate is 9600 bps. Het kan worden geconfigureerd als master of slave, terwijl een andere module HC-06 alleen in slave-modus kan werken. Deze module heeft vier pinnen. Een voor VCC (5V) en de overige drie voor GND, TX en RX. Het standaard wachtwoord van deze module is 1234 of 0000. Als we willen communiceren tussen twee microcontrollers of willen communiceren met een apparaat met Bluetooth-functionaliteit, zoals een telefoon of laptop, helpt HC-05 ons daarbij. Er zijn al verschillende Android-applicaties beschikbaar wat dit proces een stuk eenvoudiger maakt.

  3. Bluetooth Voice Control voor Arduino: Deze app is ontwikkeld door SimpleLabsIN voor op spraak gebaseerde Arduino-projecten. Deze Android-applicatie gebruikt de spraakherkenningsfunctie van de telefoon en converteert de spraakopdrachten naar tekst en zet de string over via Bluetooth. De applicatie kan vanaf hier worden gedownload
  4. 12 V-relaismodule: Als iemand hoogspanningsbelastingen van een microcontroller wil schakelen, kan dit 12V-relaisbord het. Het bevat 8 x 12V relais met een vermogen van 10A / 250V AC (DC 30V / 10A). Elke relaismodule wordt in- / uitgeschakeld door een optisch geïsoleerde digitale ingang die rechtstreeks op een microcontroller-uitgangspen kan worden aangesloten. Het vereist slechts een spanning van ongeveer 1,0 V om de ingangen in te schakelen, maar kan ingangsspanningen tot 12 V aan. Dit maakt hem ideaal voor zowel 5V- als 3,3V-apparaten. U kunt de relaismodule kopen op basis van het aantal apparaten dat u wilt bedienen. Als u bijvoorbeeld 4 apparaten wilt aansturen, moet u 4 relaismodules kopen.

Stap 4: Circuitontwerp begrijpen met schakelschema

Ten eerste moeten we HC-05 verbinden met Arduino UNO. Omdat Bluetooth het UART-protocol gebruikt, moeten we de RX- en TX-pinnen van de Arduino gebruiken. We zullen de "SoftwareSerial" -bibliotheek gebruiken om onze eigen RX- en TX-pinnen te definiëren (pin 2 is RX en pin 3 is TX). De RX-pin van de Bluetooth-module en de TX-pin van de Arduino worden losgekoppeld. Ten tweede verbinden we de relais met de Arduino. We hebben een kant-en-klaar relaisbord met 4 kanalen gebruikt, dus we moeten de ingangen van de afzonderlijke relais op de Arduino aansluiten. Raadpleeg het onderstaande schema voor het aansluiten van de belasting op de relaismodule:

Er zijn vier belastingen aangesloten op de relaismodule voor demonstratie en wees extra voorzichtig bij het gebruik van AC Mains met een relaiskaart. Ter demonstratie zijn we overgestapt AAN de alternatieve belastingen:

Stap 5: Werkingsprincipe van het project

In dit project worden spraakopdrachten gebruikt om verschillende apparaten te bedienen. Monteer de hardware volgens het bovenstaande schakelschema. Monteer alle componenten op het breadboard. Schakel na het maken van de nodige verbindingen de stroomtoevoer naar het circuit in en koppel de Bluetooth-telefoon van de telefoon aan de HC-05 Bluetooth-module. Installeer voor het koppelen de hierboven genoemde applicatie op uw smartphone.

Verbind nu de telefoon met de Bluetooth-module. Klik op de optie “Verbind Robot”En selecteer het juiste Bluetooth-apparaat. Als de apparaten niet eerder zijn gekoppeld, koppel ze dan nu door de pincode in te voeren 0000 of 1234.

Na een succesvolle verbinding zijn apparaten klaar om gegevens te verzenden. Druk voor het verzenden van gegevens op het microfoonpictogram op de app en begin met het geven van spraakopdrachten. Zorg ervoor dat de spraakherkenningsfunctie is ingeschakeld op uw smartphone (dit wordt meestal geassocieerd met de Google-app). Als we bijvoorbeeld op het microfoonpictogram drukken en zeggen "Doe het licht aan",de applicatie zal de opdracht herkennen en naar de Bluetooth-module sturen.

Wanneer de string wordt herkend door de applicatie, zal deze de string verzenden als 'zet licht # aan' en het daadwerkelijke bericht dat door de Bluetooth-module wordt ontvangen, heeft dit type indeling ("*Bericht#"). De reden voor het opvullen van de ‘*’ en ‘#’ aan het begin en het einde van de tekenreeks is om het begin en het einde van het bericht te identificeren. Het ontvangen bericht wordt vergeleken met een aantal vooraf gedefinieerde strings en als het bericht daarmee overeenkomt, gebeurt de bijbehorende actie zoals “aanzetten” en uitzetten.

In dit project hebben we de volgende commando's gebruikt: "zet AC aan", "zet AC uit", "zet licht aan", "zet licht uit", "zet TV aan", "zet TV uit", "zet ventilator aan ”,“ Alles inschakelen ”en“ alles uitschakelen ”.

Stap 6: Aan de slag met Arduino

Maak je geen zorgen als je nog niet bekend bent met Arduino IDE, want hieronder zie je duidelijke stappen voor het branden van code op het microcontrollerbord met Arduino IDE. U kunt de nieuwste versie van Arduino IDE hier downloaden en de onderstaande stappen volgen:

1). Wanneer het Arduino-bord is aangesloten op uw pc, opent u "Configuratiescherm" en klikt u op "Hardware en geluid". Klik vervolgens op "Apparaten en printers". Zoek de naam van de poort waarop uw Arduino-bord is aangesloten. In mijn geval is dit "COM14", maar het kan op uw pc anders zijn.

2). Open nu de Arduino IDE. Stel vanuit Tools het Arduino-bord in op Arduino / Genuino UNO.

3). Stel vanuit hetzelfde Tool-menu het poortnummer in dat u in het bedieningspaneel hebt gezien.

4). Om deze spraakgestuurde app te gebruiken, hebben we een speciale bibliotheek nodig die in Arduino IDE moet worden opgenomen. Deze bibliotheek is bijgevoegd in de onderstaande link, samen met de code. Om de bibliotheek op te nemen, ga naar Schets> Bibliotheek opnemen> ZIP toevoegen. Bibliotheek.

5). Download de onderstaande code en kopieer deze naar uw IDE. Om de code te uploaden, klikt u op de uploadknop.

U kunt de code downloaden door hier te klikken.

Stap 7: de code begrijpen

De code is niet zo ingewikkeld, maar toch worden enkele van de onderdelen hieronder kort beschreven.

1. In het begin is een bibliotheek inbegrepen om seriële communicatie op andere digitale pinnen van de Arduino mogelijk te maken, met behulp van software om de functionaliteit te repliceren. Twee pinnen zijn geïnitialiseerd om te worden gebruikt met de Bluetooth-module. Vier pinnen worden geïnitialiseerd om te worden gebruikt voor de huishoudelijke apparaten die op het systeem zijn aangesloten en een stringvariabele wordt geïnitialiseerd om de gegevens die via Bluetooth in serie komen op te slaan.

#inclusief   const int rxPin = 2; // Initialiseer pisns voor bluetooth module const int txPin = 3; SoftwareSerial mySerial (rxPin, txPin); int ac = 4; // Initialiseer pinnen voor huishoudelijke apparaten int light = 5; int fan = 6; int tv=7; String-gegevens;

2. leegte setup ()is een functie waarin we de geïnitialiseerde pinnen instellen om te gebruiken als INPUT en OUTPUT. De baudrate wordt hier ook geïnitialiseerd. Baudrate is de snelheid waarmee het Arduino-bord communiceert met de aangesloten componenten. In onze functie hebben we alle pinnen aangesloten op de apparaten ingesteld op LAAG.

leegte setup () {Serial.begin (9600); mySerial.begin (9600); pinMode (ac, OUTPUT); pinMode (licht, UITGANG); pinMode (ventilator, UITGANG); pinMode (tv, UITGANG); digitalWrite(ac, LAAG); digitalWrite (licht, LAAG); digitalWrite (fan, LOW); digitalWrite (tv, LOW); }

3. leegte lus ()is een functie die herhaaldelijk in een lus wordt uitgevoerd. Hier zijn alle voorwaarden ingesteld om het systeem goed te laten werken. Het volgende Terwijl() loop wordt gebruikt om gegevens te nemen die serieel naar de microcontroller komen.

 while(1) // Serieel invoer krijgen { while(mySerial.available()<=0); ch = mySerial.read (); if (ch == '#') breken; gegevens + = ch; }

Hieronder zijn alle voorwaarden ingesteld om alle aangesloten elektrische apparaten in te schakelen, zoals de gebruiker opdraagt. Deze voorwaarden zijn vrij eenvoudig en spreken voor zich.

 if (data == "* AC inschakelen") {digitalWrite (ac, HIGH); Serial.println ("ac on"); } else if (data == "* AC uitschakelen") {digitalWrite (ac, LOW); Serial.println ("ac uit"); } else if (data == "* turn on light") {digitalWrite (light, HIGH); Serial.println ("lampje aan"); } else if (data == "* turn off light") {digitalWrite (light, LOW); Serial.println ("licht uit"); } else if(data=="*ventilator aan") { digitalWrite(fan,HIGH); Serial.println ("fan on"); } else if (data == "* ventilator uitschakelen") {digitalWrite (fan, LOW); Serial.println ("fan uit"); } else if (data == "* zet tv aan") {digitalWrite (tv, HIGH); Serial.println ("tv aan"); } else if (data == "* zet tv aan") {digitalWrite (tv, LOW); Serial.println ("tv uit"); } else if (data == "* alles inschakelen") {digitalWrite (ac, HIGH); digitalWrite (licht, HOOG); digitalWrite (fan, HIGH); digitalWrite (tv, HIGH); Serial.println ("alles aan"); } else if (data == "* alles uitschakelen") {digitalWrite (ac, LOW); digitalWrite (licht, LAAG); digitalWrite (ventilator, LAAG); digitalWrite (tv, LOW); Serial.println ("alles uit"); }}

Toepassingen

  1. Het spraakgestuurde huisautomatiseringssysteem helpt ons verschillende belastingen (elektrische apparaten) te regelen met eenvoudige spraakopdrachten.
  2. Mensen met een handicap kunnen veel voordelen halen uit dit project, alsof ze niet kunnen rondlopen, ze een spraakopdracht kunnen geven en zich kunnen omdraaien AAN of UIT het apparaat.
  3. Dit project kan ook worden uitgebreid door verschillende sensoren toe te voegen (licht, rook, etc.).
Facebook Twitter Google Plus Pinterest