Tabla de contenido:

Interruptor controlado por voz con Alexa y Arduino: 10 pasos (con imágenes)
Interruptor controlado por voz con Alexa y Arduino: 10 pasos (con imágenes)

Video: Interruptor controlado por voz con Alexa y Arduino: 10 pasos (con imágenes)

Video: Interruptor controlado por voz con Alexa y Arduino: 10 pasos (con imágenes)
Video: control DOMOTICO por COMANDOS DE VOZ usando ARDUINO y APPINVENTOR POR BLUETOOTH | Arduino desde cero 2024, Noviembre
Anonim
Interruptor controlado por voz con Alexa y Arduino
Interruptor controlado por voz con Alexa y Arduino

El objetivo principal de este proyecto es utilizar un sensor de temperatura para controlar el interruptor (relé) para encender o apagar el dispositivo.

Lista de materiales

  1. Módulo de relé de 12V ==> $ 4.2
  2. Arduino uno ==> $ 8
  3. Sensor de temperatura DHT11 ==> $ 3
  4. Módulo ESP8266 ==> $ 4.74
  5. Optoacoplador N26 ==> $ 0.60
  6. Regulador de voltaje LM1117 ==> $ 0.60
  7. Protoboard ==> $ 2.2
  8. Cables de puente ==> $ 2.5
  9. Pulsador ==> $ 2.5

El costo total del proyecto es de aproximadamente $ 30 dólares. Este proyecto se divide en tres partes. Primero, usamos heroku para crear una aplicación. En segundo lugar, desarrollamos una habilidad de Amazon Alexa para implementar nuestro trabajo (parte más importante). En tercer lugar, configuramos nuestro hardware y lo programamos usando Arduino IDE.

Paso 1: Vincular Heroku con GitHub

Vinculando Heroku con GitHub
Vinculando Heroku con GitHub
Vinculando Heroku con GitHub
Vinculando Heroku con GitHub
Vinculando Heroku con GitHub
Vinculando Heroku con GitHub

Heroku es una plataforma en la nube como servicio (PaaS) que admite varios lenguajes de programación que se utiliza como modelo de implementación de aplicaciones web. Primero, vaya al sitio heroku, cree una nueva cuenta o inicie sesión allí. El enlace se da a continuación

Sitio web de Heroku

Comencemos con la creación de una nueva aplicación. Le he dado el nombre de mi aplicación "iottempswitch" cuando implementa la aplicación, se genera el enlace.

Una vez creada la aplicación, vaya a GitHub. GitHub /

Inicie sesión allí o regístrese si no tiene una cuenta. Una vez que haya iniciado sesión, cree un nuevo repositorio, dé el nombre que desee y luego presione crear repositorio. En la página siguiente, haga clic en README, en esta página proporcione la descripción que desea compartir con los demás. Después de eso, haga clic en confirmar nuevo archivo. A continuación, haga clic en el botón cargar.

Hay dos opciones: arrastra y suelta la carpeta o elige el archivo. Descargue los archivos requeridos desde abajo. Después de seleccionar los archivos, presione confirmar cambios. Abra la aplicación que creó en Heroku y luego vaya a la sección de implementación. Después de eso, haz clic en GitHub y dale el nombre del repositorio que creaste en el lado de GitHub. En mi caso es Smart-Relay. Copia eso y pégalo aquí. Una vez que se muestre su enlace, haga clic en conectar. A continuación, haga clic en implementar rama (manual). Después de la implementación, puede ver el enlace en el registro de compilación o puede ver el enlace en la configuración. Necesitamos este enlace más adelante cuando estemos desarrollando la habilidad de Amazon.

Paso 2: Amazon

Amazonas
Amazonas
Amazonas
Amazonas
Amazonas
Amazonas

Últimas imágenes de la habilidad de Alexa

En el sitio de desarrolladores de Amazon usamos la habilidad de Amazon para controlar el gatillo del interruptor configurando la temperatura y la humedad.

Vaya al sitio para desarrolladores de Amazon. El enlace se proporciona a continuación.

Sitio web para desarrolladores de Amazon

  • Vaya a la consola de desarrollador en la parte superior derecha como se muestra en la figura i4
  • Vaya a Alexa, luego seleccione Alexa Skill Kit y luego cree una nueva habilidad haciendo clic en Agregar nueva habilidad.

Cuando agregue una nueva habilidad, verá la página de información de habilidades.

1. Información de habilidades (como se muestra en la imagen i7)

tenemos que proporcionar el tipo de habilidad, idioma, nombre, nombre de invocación.

Tipo de habilidad ==> seleccionar personalizado

  • Nombre ==> seleccione cualquier nombre.
  • Nombre de invocación ==> que usas mientras te comunicas con Alexa. Por ejemplo; - Alexa, pide al sensor que encienda el interruptor o Alexa, pregunta a la luz aquí los nombres de invocación son sensor y luz.
  • Idioma ==> Inglés (India). Seleccione según su país

haga clic en guardar y luego en siguiente

2. Modelo de interacción

Aquí, usaremos el constructor de habilidades. Entonces, haga clic en Iniciar Skill Builder. Verá la página como se muestra en la imagen i8.

Primero creamos nuevas intenciones. Haga clic en Agregar (en el lado izquierdo) y dé el nombre que desee. Usé "smartswitch"

  • Dé el nombre del tipo de ranura "tipo_medida" y los valores de la ranura "temperatura" y "humedad" como se muestra en la imagen i9.

  • Después de eso, agregue el nombre del tipo de ranura "consulta" y los valores de la ranura son "qué" y "es" como se muestra en la imagen i10.
  • Después de eso, agregue el tipo de ranura "switchstate" y los valores de la ranura son "on" y "off" como se muestra en la imagen i11.
  • Agregue otro tipo de ranura "tempscale" y los valores de la ranura son "fahrenheit" y "celcuis" como se muestra en la imagen i12.
  • Después de eso, agregue un nuevo tipo de ranura aquí, usamos el tipo de ranura existente para eso tenemos que hacer clic en usar la ranura existente. En la ranura existente, busque amazon.number y seleccione esto y agréguelo. Después de agregarlo, lo verá en tipos de ranura como se muestra en la imagen i13.

Así que hemos terminado con los tipos de tragamonedas. El tipo de tragamonedas total que estamos usando es 5. Ahora, pase al siguiente paso. Haga clic en la intención que creamos, en mi caso es smartswitch. En el lado derecho verá la ranura de intención como se muestra en la imagen i14.

  • Cree una nueva ranura, asígnele el nombre "Switch_State" y mapee a "switchstate" usando el botón desplegable como se muestra en la imagen i15.
  • Cree una nueva ranura, asígnele el nombre "Sensor_Values" y mapee a "Measure_type" como se muestra en la imagen i16.
  • Cree una nueva ranura, asígnele el nombre "consulta" y asignela a "consulta" como se muestra en la imagen i17.
  • Después de eso, cree una nueva ranura "tmp_scale" y asignela a "tempscale" como se muestra en la imagen i18.
  • Cree una nueva ranura "Numbers" y asignela a "Amazon. Numbers" como se muestra en la imagen i19.

Ahora hemos terminado con las tragamonedas de intención. Estamos usando 5 ranuras de intención. Después de esto, pasamos a Expresiones de muestra como se muestra en la imagen i20.

Agregue estas expresiones de muestra.

establece el activador del interruptor en {Numbers} por ciento {tmp_scale}

{consulta} es el estado del cambio

Activador del interruptor {Switch_State}

establece el gatillo del interruptor en {Numbers} grado {tmp_scale}

girar el interruptor {Switch_State}

{query} cambiar {Switch_State}

{query} es el {Sensor_Values} actual

Después de esto, guarde el modelo y constrúyalo. Espere a que se construya el modelo después de eso, haga clic en configuración. Después de la construcción, verá el mensaje como se muestra en la imagen i21 e i22.

3. Configuración

Seleccione HTTPS y agregue el enlace que se generó al crear la aplicación heroku. En mi caso es https://iottempswitch.herokuapp.com/. Después de agregar el enlace, haga clic en siguiente como se muestra en la imagen i23.

4. Certificado SSL Seleccione la segunda opción y haga clic en siguiente como se muestra en la imagen i24.

hemos creado con éxito nuestra habilidad.

Paso 3: Arduino

Arduino
Arduino
Arduino
Arduino
Arduino
Arduino

Abra Arduino IDE, luego vaya a Archivo ==> Preferencias

En el Administrador de tableros adicionales, copie y pegue la URL y haga clic en Aceptar como se muestra en la imagen i26.

arduino.esp8266.com/versions/2.4.0/package_…

  • Abra Board Manager yendo a Tools ==> Board ==> Board Manager.
  • Abra Boards Manager y busque nodemcu como se muestra en la imagen i27.
  • Después de eso, descargue la biblioteca ESP8266WiFi. Abra el administrador de la biblioteca: Sketch ==> Incluir biblioteca ==> Administrar bibliotecas.
  • Busque la biblioteca ESP8266WiFi e instálela.
  • Seleccione placa ==> Módulo ESP8266 genérico.
  • Antes de cargar el código, necesitamos tres bibliotecas.

Bibliotecas requeridas

Mueva estas bibliotecas a la carpeta de bibliotecas de Arduino

Tienes que cambiar tres cosas en el código SSID, PWD y el enlace de tu aplicación heroku. Después de eso, sube el código. Para el módulo ESP, debe presionar el botón de flash mientras carga el código y luego presionar el botón de reinicio una vez y luego soltar el botón de flash. Después de cargar el código, abra la terminal. verá la salida.

Paso 4: Descripción del componente

Descripción de Componente
Descripción de Componente
Descripción de Componente
Descripción de Componente
Descripción de Componente
Descripción de Componente
Descripción de Componente
Descripción de Componente

1. ¿Qué es un relé?

El relé es un dispositivo electromagnético que se utiliza para aislar eléctricamente dos circuitos y conectarlos magnéticamente. Son dispositivos muy útiles y permiten que un circuito cambie a otro mientras están completamente separados. A menudo se utilizan para conectar un circuito electrónico (que funciona a bajo voltaje) a un circuito eléctrico que funciona a muy alto voltaje. Por ejemplo, un relé puede hacer que un circuito de batería de 5 V CC cambie un circuito de red de 230 V CA.

Cómo funciona

Un interruptor de relé se puede dividir en dos partes: entrada y salida. La sección de entrada tiene una bobina que genera un campo magnético cuando se le aplica un pequeño voltaje de un circuito electrónico. Este voltaje se llama voltaje de funcionamiento. Los relés de uso común están disponibles en diferentes configuraciones de voltajes operativos como 6V, 9V, 12V, 24V, etc. La sección de salida consta de contactores que se conectan o desconectan mecánicamente. En un relé básico hay tres contactores: normalmente abierto (NO), normalmente cerrado (NC) y común (COM). En estado sin entrada, el COM está conectado a NC. Cuando se aplica el voltaje de operación, la bobina del relé se energiza y el COM cambia el contacto a NO. Hay diferentes configuraciones de relé disponibles como SPST, SPDT, DPDT, etc., que tienen un número diferente de contactos conmutados. Utilizando la combinación adecuada de contactores, el circuito eléctrico se puede encender y apagar. Obtenga detalles internos sobre la estructura de un interruptor de relé.

El terminal COM es el terminal común. Si los terminales de la BOBINA se energizan con el voltaje nominal, los terminales COM y NO tienen continuidad. Si los terminales COIL no están energizados, entonces los terminales COM y NO tienen continuidad.

El terminal NC es el terminal normalmente cerrado. Es el terminal que se puede encender incluso si el relé no recibe voltaje suficiente o suficiente para funcionar.

El terminal NO es el terminal normalmente abierto. Es el terminal donde coloca la salida que desea cuando el relé recibe su voltaje nominal. Si no hay voltaje en los terminales de la BOBINA o voltaje insuficiente, la salida está abierta y no recibe voltaje. Cuando los terminales de la BOBINA reciben el voltaje nominal o un poco menos, el terminal NO recibe suficiente voltaje y puede encender el dispositivo en la salida.

2.sensor de temperatura DHT

DHT11 es un sensor de temperatura y humedad, que genera una salida digital calibrada. DHT11 puede interactuar con cualquier microcontrolador como Arduino, Raspberry Pi, etc. y obtener resultados instantáneos. DHT11 es un sensor de temperatura y humedad de bajo costo que proporciona alta confiabilidad y estabilidad a largo plazo.

3. Descripción completa de ESP8266

El módulo WiFi ESP8266 es un SOC autónomo con pila de protocolo TCP / IP integrado que puede dar acceso a cualquier microcontrolador a su red WiFi. El ESP8266 es capaz de albergar una aplicación, funciones de red desde otra aplicación. Cada módulo ESP8266 viene preprogramado con un comando AT.

El ESP8266 admite APSD para aplicaciones de VoIP e interfaces de coexistencia de Bluetooth, contiene una RF autocalibrada que le permite funcionar en todas las condiciones de funcionamiento y no requiere partes de RF externas.

Características

  • 802.11 b / g / n
  • Wi-Fi directo (P2P),
  • Pila de protocolos TCP / IP integrados en API blandas
  • Interruptor TR integrado, balun, LNA, amplificador de potencia y red correspondiente
  • PLL, reguladores, DCXO y unidades de administración de energía integrados
  • + 19.5dBm de potencia de salida en modo 802.11b
  • Apague la corriente de fuga de <10uA
  • 1 MB de memoria flash
  • La CPU integrada de 32 bits de baja potencia se puede utilizar como procesador de aplicaciones
  • SDIO 1.1 / 2.0, SPI, UART
  • STBC, 1 × 1 MIMO, 2 × 1 MIMOA-MPDU y A-MSDU agregación e intervalo de guarda de 0,4 ms
  • Despertar y transmitir paquetes en <2ms
  • Consumo de energía en espera de <1,0 mW (DTIM3)

Pin Descripción como se muestra en la imagen i34.

Para conectar el módulo ESP con Arduino UNO, necesitamos un regulador de voltaje Lm1117 3.3 o cualquier regulador porque Arduino no es capaz de proporcionar 3.3 v a ESP8266.

Nota: - Mientras carga el código, presione el botón de flash y luego presione el botón de reinicio una vez y luego suelte el botón de flash como se muestra en la imagen i29.

Para conectar el sensor y el relé DHT11 usamos dos pines GPIO del módulo ESP8266. Después de cargar el código, puede desconectar los pines RX, TX, GPIO0. He usado GPIO0 para sensor DHT11 y GPIO2 para relés. El sensor DHT11 funciona bien con ESP8266, pero para los relés necesitamos una cosa adicional, es decir, un optoaislador o un optoacoplador. Consulte la imagen i30, i31, i32 e i33.

Paso 5: Conexiones

ESP8266 ===> DHT11GPIO0 ===> Pin de salida

ESP8266 ===> RelayGPIO2 ===> Entrada

ARDUINO ===> ESP8266

Gnd ===> GndTX ===> TX

RX ===> RX

Botón de reinicio ===> RST

Botón de flash ===> GPIO0

Paso 6: Verificar todas las cosas

Comprobando todas las cosas
Comprobando todas las cosas
Comprobando todas las cosas
Comprobando todas las cosas
Comprobando todas las cosas
Comprobando todas las cosas
Comprobando todas las cosas
Comprobando todas las cosas

Hemos creado con éxito nuestra aplicación, habilidad y nuestro hardware está listo. Entonces, es hora de verificar.

Para eso, su ESP8266 está encendido porque nuestro servidor se ejecuta en ESP8266. Aquí no he conectado ningún sensor al ESP8266, solo estoy comprobando si funciona o no, pero puede conectar el sensor, el relé al ESP8266. Una vez que esté conectado a Heroku, verá conectado. Para realizar la prueba, vaya a la habilidad de Amazon que creó, luego haga clic en la página de prueba. Una vez que se verifique que funciona, conectaré mi sensor al ESP8266. Puede ver los resultados como se muestra en las imágenes i35, i36, 37, 38, 39, 40.

Si lo usa sin conectar ESP8266, obtiene este error como se muestra en la imagen i41.

Enunciado que puedes usar

establece el activador del interruptor en {Numbers} por ciento {tmp_scale}

ej.: - ajuste el gatillo del interruptor al 50 por ciento de humedad

{consulta} es el estado del cambio

ex- encendido / apagado es el estado del interruptor

Activador del interruptor {Switch_State}

ex-interruptor de encendido / apagado

establece el gatillo del interruptor en {Numbers} grado {tmp_scale}

ex - ajuste el gatillo del interruptor a 76 grados Fahrenheit

ex - ajuste el gatillo del interruptor a 24 grados centígrados

girar el interruptor {Switch_State}

ex - encender / apagar el interruptor

Consulte la imagen i41 a i46 para ver los resultados.

Mientras habla con AlexaAlexa, pídale a arduino que encienda / apague el gatillo del interruptor

Alexa, pídele a arduino que ajuste el gatillo del interruptor a 24 grados centígrados.

Alexa, pídale a arduino que configure el gatillo del interruptor al 50 por ciento de humedad

Alexa, pídele a arduino que encienda / apague el interruptor

Paso 7: Diagrama de VUI (interfaz de usuario de voz)

Diagrama de VUI (interfaz de usuario de voz)
Diagrama de VUI (interfaz de usuario de voz)

Paso 8: demostración

Image
Image

1. Configure el gatillo para temperatura y humedad.

2. Ajuste el gatillo a 20 grados centígrados.

3. Ajuste el gatillo al 80 por ciento de humedad.

Paso 9: Esquema

Recomendado: