Com dissenyar la domòtica activada per veu?

La idea de Domòtica agafa protagonisme ja que ajuda a disminuir l’esforç i els errors humans i, per tant, ampliar l’eficàcia. Utilitza una combinació d'equips i avenços de programació que permeten controlar màquines i altres aparells electrònics dins d'una llar. Amb l’ajuda de la domòtica, podem controlar els nostres electrodomèstics de forma remota i un gran avantatge és que el consum d’energia es redueix en gran mesura. Hi ha diversos tipus d’automatització domèstica, com ara el controlat per Bluetooth, el control remot i el controlat per Internet, etc., i cadascun d’ells presenta els seus avantatges i desavantatges. En aquest projecte, dissenyarem una domòtica controlada per veu on es controlaran diferents aparells enviant l’ordre de veu. Aquest sistema és molt car quan es compra al mercat, però quan integrem tots aquests aparells Arduino , es fa molt fàcil i econòmic controlar tots els electrodomèstics.



Domòtica controlada per veu

Com automatitzar electrodomèstics mitjançant Arduino?

Com que tenim la idea bàsica, ara anem a reunir els components, muntar-los per fer un circuit i escriure el codi per automatitzar els electrodomèstics.



Pas 1: components utilitzats (maquinari)

  • Arduino Un
  • Mòdul Bluetooth HC-05
  • 2N2222 Transistor NPN
  • Mòdul de relé de 12V
  • Resistència d'1k-ohm
  • Adaptador de 12V CA a CC
  • 1N4007 díode de connexió PN
  • Jumper Wires

Pas 2: components utilitzats (programari)

  • Proteus 8 Professional (es pot descarregar des de Aquí )

Després de descarregar el Proteus 8 Professional, dissenyeu-ne el circuit. Aquí hem inclòs simulacions de programari per tal que sigui convenient per als principiants dissenyar el circuit i fer les connexions adequades al maquinari.



Pas 3: estudiar els components

Com hem fet una llista de components que utilitzarem en el nostre projecte. Fem un pas endavant i fem un breu estudi de com funcionen aquests components.



  1. Arduino UN: L'Arduino UNO és una placa de microcontrolador que consta d'un microxip ATMega 328P i està desenvolupada per Arduino.cc. Aquesta placa té un conjunt de pins de dades digitals i analògics que es poden connectar amb altres plaques o circuits d’expansió. Aquesta placa té 14 pins digitals, 6 pins analògics i es pot programar amb l’Arduino IDE (entorn de desenvolupament integrat) mitjançant un cable USB tipus B. Requereix 5V per alimentar-se ACTIVAT i a Codi C operar.

    Arduino UN

  2. Transceptor de sèrie Bluetooth sense fils HC-05 : Necessitem comunicació sense fils en aquest projecte, de manera que utilitzarem la tecnologia Bluetooth i per a aquest mòdul que s'utilitzarà és HC-05. Aquest mòdul té diverses velocitats de transmissió programables, però la velocitat de transmissió per defecte és de 9600 bps. Es pot configurar com a mestre o esclau, mentre que un altre mòdul HC-06 només pot funcionar en mode esclau. Aquest mòdul té quatre pins. Un per a VCC (5V) i els tres restants per a GND, TX i RX. La contrasenya per defecte d'aquest mòdul és 1234 o bé 0000 . Si volem comunicar-nos entre dos microcontroladors o comunicar-nos amb qualsevol dispositiu amb funcionalitat Bluetooth com un telèfon o un portàtil HC-05 ens ajuda a fer-ho. Ja hi ha disponibles diverses aplicacions per a Android, cosa que facilita molt aquest procés.

    Mòdul Bluetooth HC-05

  3. Control de veu Bluetooth per Arduino : Aquesta aplicació està desenvolupada per SimpleLabsIN per a projectes Arduino basats en la veu. Aquesta aplicació per a Android farà servir la funció de reconeixement de veu del telèfon i convertirà les ordres de veu en text i transferirà la cadena mitjançant Bluetooth. L'aplicació es pot descarregar des de Aquí

    Aplicació de control de veu BT



  4. Mòdul de relé de 12 V: Si algú vol canviar càrregues d'alta tensió d'un microcontrolador, aquesta placa de relé de 12V ho pot fer. Conté 8 relés de 12V de 10A / 250V CA (DC 30V / 10A). Cada mòdul de relé s’encén / apaga mitjançant una entrada digital aïllada opto que es pot connectar directament a un pin de sortida de microcontrolador. Només requereix una tensió d'aproximadament 1,0 V per activar les entrades, però pot controlar tensions d'entrada de fins a 12 V. Això el fa ideal tant per a dispositius de 5V com de 3,3V. Podeu comprar el mòdul de relé segons el nombre d’aparells que vulgueu controlar. Per exemple, si voleu controlar 4 electrodomèstics, heu de comprar un mòdul de 4 relés.

    Mòdul de relé de 12V

Pas 4: entendre el disseny de circuits amb el diagrama de circuits

En primer lloc, hem de connectar HC-05 amb Arduino UNO. Com que Bluetooth utilitza el protocol UART, hem d’utilitzar els pins RX i TX de l’Arduino. Utilitzarem la biblioteca 'SoftwareSerial' per definir els nostres propis pins RX i TX (el pin 2 és RX i el pin 3 és TX). Es desconnectaran el pin RX del mòdul Bluetooth i el pin TX de l'Arduino. En segon lloc, connectarem els relés a l’Arduino. Hem utilitzat una placa de relés preparada amb 4 canals, de manera que hem de connectar les entrades dels relés individuals a l'Arduino. Per connectar la càrrega al mòdul de relé, consulteu el diagrama següent:

Muntatge del circuit del mòdul de relé

Quatre càrregues estan connectades al mòdul de relés per demostrar-les i tingueu molta precaució mentre utilitzeu la xarxa de CA amb una placa de relés. Només per demostrar, hem canviat ACTIVAT les càrregues alternatives:

Esquema de connexions

Pas 5: Principi de treball del projecte

En aquest projecte, s’utilitzen ordres de veu per controlar diferents aparells. Munteu el maquinari segons el diagrama de circuits que es mostra anteriorment. Muntar tots els components de la taula de treball. Després de realitzar les connexions necessàries, engegueu la font d’alimentació del circuit i vinculeu el Bluetooth del telèfon amb el mòdul Bluetooth HC-05. Abans d’aparellar, instal·leu l’aplicació esmentada anteriorment al telèfon intel·ligent.

Ara, connecteu el telèfon amb el mòdul Bluetooth. Feu clic a l'opció ' Connecta el robot ”I seleccioneu el dispositiu Bluetooth adequat. Si els dispositius no s’han emparellat abans, emparelleu-los ara introduint el pin 0000 o bé 1234.

Emparellament de telèfons intel·ligents

Després d’una connexió exitosa, els dispositius estan preparats per transmetre dades. Per transmetre dades, premeu la icona del micròfon a l'aplicació i comenceu a donar ordres de veu. Assegureu-vos que la funció de reconeixement de veu estigui activada al telèfon intel·ligent (normalment s’associa amb l’aplicació Google). Per exemple, quan premem la icona del micròfon i diem 'Encendre la llum', l'aplicació reconeixerà l'ordre i el transferirà al mòdul Bluetooth.

Veu reconeguda

Quan l'aplicació reconegui la cadena, l'enviarà com a 'encén la llum #' i el missatge real rebut pel mòdul Bluetooth té aquest tipus de format ( '* Missatge núm.' ). La raó per omplir el '*' i el '#' a la petició i al final de la cadena és identificar l'inici i el final del missatge. El missatge rebut es compara amb algunes cadenes predefinides i si el missatge coincideix amb elles, es produeix l'acció corresponent com 'activar' i apagar.

En aquest projecte hem utilitzat les ordres següents: “encendre la CA”, “apagar la CA”, “encendre la llum”, “apagar la llum”, “encendre la TV”, “apagar la TV”, “encendre el ventilador” ',' Activa tots 'i' apaga tots '.

Pas 6: Introducció a Arduino

Si abans no esteu familiaritzat amb Arduino IDE, no us preocupeu, perquè a continuació podeu veure els passos clars de gravació de codi a la placa del microcontrolador mitjançant Arduino IDE. Podeu descarregar la versió més recent d'Arduino IDE des de aquí i seguiu els passos esmentats a continuació:

1). Quan la placa Arduino estigui connectada al vostre PC, obriu el 'Tauler de control' i feu clic a 'Maquinari i so'. A continuació, feu clic a 'Dispositius i impressores'. Cerqueu el nom del port al qual està connectada la vostra placa Arduino. En el meu cas, és 'COM14', però pot ser diferent al vostre PC.

Buscant Port

2). Ara obriu l'IDE Arduino. A Eines, configureu la placa Arduino a Arduino / Genuí UN.

Taula de configuració

3). Al mateix menú d'eines, definiu el número de port que heu vist al tauler de control.

Configuració del port

4). Per utilitzar aquesta aplicació controlada per veu, necessitem una biblioteca especial per incloure-la a Arduino IDE. Aquesta biblioteca s’adjunta a l’enllaç següent, juntament amb el codi. Per incloure la biblioteca, aneu a Esbós> Inclou biblioteca> Afegeix ZIP. Biblioteca .

Inclou la biblioteca

5). Baixeu-vos el codi adjunt a continuació i copieu-lo al vostre IDE. Per carregar el codi, feu clic al botó de càrrega.

Podeu descarregar el codi per fent clic aquí.

Pas 7: entendre el codi

El Codi no és tan complex però, tot i així, algunes de les seves parts es descriuen breument a continuació.

1. Al començament, s'inclou una biblioteca que permet la comunicació en sèrie en altres pins digitals de l'Arduino, mitjançant un programari per replicar la funcionalitat. S’inicialitzen dos pins per utilitzar-los amb el mòdul Bluetooth. S’inicialitzen quatre pins perquè s’utilitzin per als electrodomèstics connectats al sistema i s’inicialitza una variable de cadena per emmagatzemar les dades que arriben a través del Bluetooth en sèrie.

#include const int rxPin = 2; // Inicialitzar pisns per al mòdul bluetooth const int txPin = 3; SoftwareSerial mySerial (rxPin, txPin); int ac = 4; // Inicialitzar els pins per a electrodomèstics int light = 5; int fan = 6; int tv = 7; Dades de cadenes;

2. configuració nul·la () és una funció en la qual configurem els pins inicialitzats per utilitzar-los com INPUT i OUTPUT. La velocitat en Baud també s’inicialitza aquí. Baud Rate és la velocitat amb què la placa Arduino es comunica amb els components connectats. A la nostra funció, hem definit tots els pins connectats als aparells BAIX.

configuració nul·la () {Serial.begin (9600); mySerial.begin (9600); pinMode (CA, SORTIDA); pinMode (llum, SORTIDA); pinMode (ventilador, SORTIDA); pinMode (tv, OUTPUT); digitalWrite (ac, BAIX); digitalWrite (lleuger, BAIX); digitalWrite (ventilador, BAIX); digitalWrite (tv, BAIX); }

3. bucle buit () és una funció que s'executa repetidament en un bucle. Aquí s’estableixen totes les condicions perquè el sistema funcioni correctament. El següent Mentre() loop s’utilitza per agafar dades que arriben en sèrie al microcontrolador.

while (1) // Obtenció de dades en sèrie {while (mySerial.available ()<=0); ch = mySerial.read(); if(ch=='#') break; data+=ch; }

A sota es configuren totes les condicions per engegar tots els aparells elèctrics connectats, tal com mana l’usuari. Aquestes condicions són força senzilles i s’expliquen per si mateixes.

if (data == '* activa AC') {digitalWrite (ac, HIGH); Serial.println ('ac on'); } else if (data == '* apaga AC') {digitalWrite (ac, LOW); Serial.println ('ac off'); } else if (data == '* encén el llum') {digitalWrite (clar, ALT); Serial.println ('llum encesa'); } else if (dades == '* apaga la llum') {digitalWrite (llum, BAIX); Serial.println ('llum apagada'); } else if (dades == '* activa el ventilador') {digitalWrite (ventilador, ALT); Serial.println ('fan activat'); } else if (dades == '* apaga el ventilador') {digitalWrite (ventilador, BAIX); Serial.println ('ventilador apagat'); } else if (dades == '* activa el televisor') {digitalWrite (tv, HIGH); Serial.println ('TV activat'); } else if (dades == '* activa el televisor') {digitalWrite (tv, LOW); Serial.println ('tv off'); } else if (dades == '* activa tots') {digitalWrite (ac, HIGH); digitalWrite (lleuger, ALT); digitalWrite (ventilador, ALT); digitalWrite (tv, HIGH); Serial.println ('tot activat'); } else if (dades == '* apaga-ho tot') {digitalWrite (ac, LOW); digitalWrite (lleuger, BAIX); digitalWrite (ventilador, BAIX); digitalWrite (tv, BAIX); Serial.println ('tot apagat'); }}

Aplicacions

  1. El sistema domòtic activat per veu ens ajudarà a controlar diferents càrregues (aparells elèctrics) amb ordres de veu senzilles.
  2. Les persones amb discapacitat poden obtenir molts avantatges d’aquest projecte, ja que si no poden caminar poden donar una ordre de veu i girar ACTIVAT o bé DESACTIVAT l'aparell.
  3. Aquest projecte també es pot ampliar afegint diferents sensors (llum, fum, etc.).