Tabla de contenido:
- Paso 1: Recopilación de materiales
- Paso 2: Programación de Arduino y ESP8266
- Paso 3: Configurar Thingspeak.com
- Paso 4: el programa
- Paso 5: Configuración de Linkit Smart 7688 Duo y Webcam
- Paso 6: Configurar PushingBox
- Paso 7: Creando la habilidad de Alexa usando Backendless
- Paso 8: Configuración de Alexa Skill en Amazon Developer Console:
- Paso 9: ¡Configuración final y acabado
Video: Monitoreo de hogares inteligentes con Alexa y Arduino: 9 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
En el mundo actual, las personas pasan más tiempo en el lugar de trabajo que en sus hogares. Por lo tanto, existe la necesidad de un sistema de monitoreo del hogar donde las personas puedan conocer las condiciones de la casa mientras están en el trabajo. Sería aún mejor si uno pudiera simplemente preguntarle a "alguien" acerca de su casa durante las horas de trabajo. Esto se puede lograr utilizando Amazon Alexa como asistente que puede brindar al usuario la información necesaria sobre su hogar.
No Only Work Place, los usuarios pueden conocer el estado de la casa en cualquier lugar del mundo siempre que tengan una conexión a Internet y Amazon Alexa.
Las siguientes funciones se implementan en este proyecto:
1) Controla los dispositivos domésticos como el ventilador y la luz.
2) Indica el estado de los dispositivos.
3) Indica las condiciones climáticas de la casa (temperatura y humedad).
4) Envía la instantánea del interior de la casa al usuario a través de Gmail cuando sea necesario.
5) Envía notificación en caso de:
* Intruso (también envía foto)
* Fuego
* Invitado (también envía foto)
Paso 1: Recopilación de materiales
Materiales necesarios
Arduino Uno
Módulo Wifi ESP8266
Linkit Smart 7688 Duo
DHT11
Relés
Sensor de obstáculos IR
Cámara web
Amazon Echo Dot
Protoboard y cables de puente
Software y servicios en línea:
Thingspeak.com
IDE de Arduino
Conjunto de habilidades de Amazon Alexa
Amazon Alexa Echosim.io (para probar la habilidad)
Backendless
PushingBox
Paso 2: Programación de Arduino y ESP8266
Descargue el IDE de Arduino desde el sitio web oficial:
Abra Arduino IDE y vaya a archivo-> preferencias-> en el tipo de URL del administrador de placa adicional:
Vaya a herramientas -> tableros -> Board Manager e instale el paquete esp8266 encontrado por fin.
Para programar arduino, simplemente conecte el cable USB del arduino a la computadora y seleccione Arduino / Genuino UNO en herramientas-> placas. También asegúrese de seleccionar los puertos COM con derechos en Herramientas (el número de puerto COM se puede encontrar en el Administrador de dispositivos). Escriba el programa requerido, compílelo y haga clic en cargar si no hay errores.
Para programar ESP8266, realice la conexión como se muestra en el diagrama. conecte el usb de arduino a la computadora. En herramientas-> tablero-> seleccione Generic ESP8266 y también seleccione el puerto COM derecho. Escriba el programa requerido, compílelo y haga clic en cargar si no hay errores. Asegúrese de conectar Arduino RST a GND (arduino actúa como un programador para ESP8266).
En este proyecto, primero se programa el ESP8266 y luego se eliminan las conexiones del circuito. Luego, el circuito se vuelve a conectar como se muestra en la figura denominada "Conexiones del circuito". Y luego se programa el arduino.
Paso 3: Configurar Thingspeak.com
Cree una cuenta en thingspeak.com.
Hacemos uso de canales en thingspeak para almacenar la información de control del dispositivo y enrutarla a arduino / alexa. también almacenamos los valores de temperatura y humedad en los canales. Es como un lugar de almacenamiento de información.
Inicie sesión en thingspeak, vaya a canales mis canales y cree un nuevo canal. Da nombre y descripción a tus canales. En nuestro proyecto necesitamos 8 canales (puede hacer el trabajo usando menos canales pero será un poco complicado durante la programación). Además, thingspeak tiene una limitación de tiempo al actualizar un canal. Debe haber un intervalo de 10 a 15 segundos entre las actualizaciones sucesivas de un canal en particular.
A continuación se dan ocho canales con sus valores y significado.
nombre del canal (valor1-significado, valor2-significado, etc.):
1) Control de dispositivo (0 -luz encendida, 1- luz apagada, 2- ventilador encendido, 3- ventilador apagado)
2) estado de la luz (0- luz apagada, 1- luz encendida)
3) estado del ventilador (0- ventilador apagado, 1 ventilador encendido)
4) humedad (valor de la humedad)
5) temperatura (valor de la temperatura)
6) notificación de intrusos (1- alerta de intrusos)
7) notificación de incendio (1- alerta de incendio)
8) notificación de invitado (1 alerta de invitado)
cuando hace clic en cualquier canal, puede ver su ID de canal y escribir claves API en la pestaña de claves API. Se requiere la identificación del canal para obtener la información / valor en el canal. Y se requiere una clave de escritura para almacenar un valor en el canal.
La solicitud http para actualizar un canal es:
api.thingspeak.com/update?api_key=&field1=
se reemplaza por las teclas de escritura correspondientes del canal y puede ser (0/1 en caso de control del dispositivo o valores de temperatura / humedad)
La solicitud http para leer el valor de un canal es:
api.thingspeak.com/channels//field/field1/last.html
se reemplaza por el ID de canal particular del canal del que queremos leer.
Paso 4: el programa
El programa se divide en 3 partes:
A) Programa para Arduino: el programa para arduino es muy sencillo. Recibe los datos del ESP8266 en serie y, en función de los datos recibidos, se controlan los dispositivos. Más información sobre el programa se encuentra en los comentarios del propio programa.
B) Programa para ESP8266: el programa para ESP8266 implica 3 cosas
1) actualización de la temperatura y la humedad mediante la solicitud
client.print (String ("GET") + "/ update? key = & field1 =" + humedad + "HTTP / 1.1 / r / n" + "Host:" + host + "\ r / n" + "Conexión: cerrar / r / n / r / n "); // actualizar la humedad
client.print (String ("GET") + "/ update? key = & field1 =" + temperature + "HTTP / 1.1 / r / n" + "Host:" + host + "\ r / n" + "Conexión: cerrar / r / n / r / n "); // actualizar la temperatura
se reemplaza por la clave de escritura correspondiente que se encuentra en el canal de lenguaje de las cosas para la humedad y la temperatura, respectivamente. y el anfitrión es api.thingspeak.com.
descargue la biblioteca dht desde:
2) leer de los canales correspondientes de thingspeak y controlar el dispositivo en función de los valores obtenidos: client.print (String ("GET") + "/channels//field/field1/last.html HTTP / 1.1 / r / n" + " Anfitrión: "+ anfitrión +" / r / n "+" Conexión: cerrar / r / n / r / n ");
donde se reemplaza por la identificación del canal correspondiente que se encuentra en thingspeak.
3) Envío de alerta en caso de alta temperatura mediante caja de empuje
String host1 = "api.pushingbox.com";
client.print (String ("GET") + "/ pushbox? devid = HTTP / 1.1 / r / n" + "Host:" + host1 + "\ r / n" + "Conexión: close / r / n / r \norte");
donde se reemplaza por la identificación de su dispositivo en Pushbox.
Paso 5: Configuración de Linkit Smart 7688 Duo y Webcam
En este proyecto, la cámara web y el linkit smart 7688 duo se utilizan para capturar la foto requerida y enviársela al usuario. También puede usar el módulo de cámara arduino e interconectarlo con arduino o usar cualquier cámara IP.
Mantenga presionado el botón wifi en el linkit smart 7688 durante 20 segundos para restablecer la placa. Luego, después de restablecer la configuración de wifi, podrá ver el nombre de su punto de acceso en las conexiones de red inalámbrica. Ahora conecta la computadora a esa red. después de conectarlo, abra el navegador y escriba 192.168.100.1 en la barra de direcciones. Podrás ver su portal. establezca una contraseña para iniciar sesión en su portal.
Después de iniciar sesión, vaya a la pestaña de red y seleccione Modo de estación (lo necesitamos (linkit smart 7688 duo) para acceder a Internet) y conéctelo a su red Wifi y presione Configurar y reiniciar.
Una vez que la placa se reinició, se le asignará una dirección IP local. Averigüe la dirección utilizando cualquier herramienta de IP o el portal de su enrutador. En mi caso fue 192.168.1.4. Ahora ingrese la dirección IP local en la barra de direcciones del navegador. asegúrese de que la computadora esté conectada a la misma red que el linkit smart. Se le pedirá que inicie sesión nuevamente.
Para habilitar la transmisión desde la cámara web, debe habilitar el transmisor-j.webp
Después de iniciar sesión, vaya a la pestaña de servicio y marque habilitar el transmisor-j.webp
Después de la configuración, puede conectar su cámara web al host usb linkit smart 7688 duo a través de un cable OTG. Ahora, para ver la transmisión, abra el navegador y escriba: en la barra de direcciones. en mi caso es 192.168.1.4:4400
para tomar la instantánea, escriba el comando:? action = snapshot
Ahora, esta imagen está disponible localmente, pero debemos hacerla disponible para el servicio de caja de empuje. Para lograr esto, necesitamos hacer un reenvío de puertos. El reenvío de puertos se puede realizar en el portal del enrutador. La identificación del proceso es diferente para diferentes enrutadores. Solo busque en Google para saber cómo reenviar el puerto para un enrutador específico. Por lo general, está disponible bajo el servicio NAT. Después de que el uso de reenvío de puertos, puede acceder a este puerto (es decir, 4440) desde su IP externa. La IP externa se puede encontrar vinculando "cuál es mi IP" en Google.
Necesitas poner esta dirección
es decir, https://::? action = snapshot
en pushbox (que se explica en el siguiente paso) para que pushbox pueda acceder a esta imagen y adjuntarla al correo y enviársela cuando sea necesario.
También puede almacenar la imagen en una tarjeta SD, ya que Linkit smart 7688 duo también viene con una ranura para tarjeta SD para almacenar información. Puede encontrar más información sobre esto en:
docs.labs.mediatek.com/resource/linkit-sm…
Paso 6: Configurar PushingBox
pushbox se utiliza para enviar notificaciones sobre diferentes alertas en el proyecto a gmail.
iniciar sesión en pushbox usando la cuenta de google:
ir a mis servicios agregar servicio. Hay muchos servicios para elegir, como Gmail, Twitter, notificaciones push para Android, etc.
seleccione Gmail (ya que necesitamos enviar una foto como archivo adjunto) y complete la configuración de nombre de Gmail apropiada y la identificación de Gmail del usuario al que se debe enviar la alerta.
ve a mis escenarios y crea un nuevo escenario. dar nombre al escenario (ej.: ALERTA) agregar el servicio creado previamente.
escriba el asunto y el cuerpo adecuados del correo e ingrese la URL para tomar la captura de pantalla de la cámara web para adjuntar la foto. Cree diferentes escenarios para diferentes alertas.api para ejecutar un escenario de cuadro de empuje es:
Paso 7: Creando la habilidad de Alexa usando Backendless
backendless se utiliza para crear la habilidad alexa. Es una programación simple de arrastrar y soltar que se utiliza para crear la habilidad de alexa (o cualquier programa) a la que se puede acceder mediante una API sin backendless.
crea una cuenta en backendless:
- Inicie sesión en su cuenta en una cuenta backendless. haga clic en Crear aplicación y asigne un nombre a su aplicación
- Haga clic en el ícono de Business Logic ubicado en la barra de íconos a la izquierda. Verá la pantalla SERVICIOS API.
- Haga clic en el icono "+" para crear un nuevo servicio. Asegúrese de seleccionar SIN CÓDIGO en la ventana emergente "Nuevo servicio". Ingrese "AlexaService" para el nombre del servicio. Haga clic en el botón GUARDAR:
- Backendless crea el servicio API y le pedirá que cree un método para el servicio. Este será el método que procesará las solicitudes de Alexa. Ingrese "handleRequest" para el nombre del método. Asegúrese de seleccionar POST para la operación REST, y declare un argumento con el nombre de "req" y escriba "Cualquier objeto" como se muestra:
- Backendless crea un marcador de posición para la lógica sin código del método. Haga clic en el botón EDITAR para comenzar a cambiar al Diseñador de lógica sin código. En el bloque de marcador de posición de función creado, haga clic en el área que dice "hacer algo" y cámbielo a "sendAlexaResponse". Esta función se usa para hacer que alexa diga algo que se puede pasar como argumento. Haga clic en el botón GUARDAR para guardar la función.
- Haga clic en el icono de engranaje ubicado en el bloque morado junto a la palabra "Función". Agregue dos argumentos arrastrando los bloques de entrada como se muestra en la imagen a continuación. Asigne los nombres de los argumentos como "whatToSay" y "waitForResponse". Observe que a medida que agrega argumentos, el área de Bloques de contexto se completa automáticamente con los bloques que representan los valores de los argumentos.
- Modifique la lógica de la función para que se vea como en la imagen. Para los bloques "Crear objetos", use el icono de engranaje para cambiar el nombre de las propiedades del objeto. No olvide guardar su trabajo haciendo clic en el botón GUARDAR.
- Ahora que la función personalizada está construida, vuelva al método handleRequest del servicio AlexaService. Haga clic en la categoría Funciones personalizadas en la barra de herramientas de la izquierda y arrastre el bloque sendAlexaResponse para conectarse con el conector de retorno de su método de servicio
- Los pasos anteriores también se pueden encontrar en su sitio web:
- Haga clic en el nodo "Agregar nuevo" en Funciones en la sección NAVEGADOR. En el bloque de marcador de posición de función creado, haga clic en el área que dice "hacer algo" y cámbielo a "getIntentName" modifique los bloques para que la función se vea como la imagen mostrada. obtendrá el nombre de la intención basado en expresiones de muestra. Regrese a los servicios api-> manejar la solicitud en la sección del navegador. Las variables y la lógica se crean a partir de la sección del sistema. Cree las siguientes variables que se muestran en las imágenes.
- a continuación, almacenamos el nombre de la intención para solicitar la variable. Y luego compare con las intenciones. por ejemplo, si la solicitud es "introducción", la variable de respuesta se establece en "¡hola! Puedo controlar ……." y esta respuesta la lee en voz alta por fin alexa. modificar el bloque como se muestra.
- si la solicitud es la intención LightsOn, actualizamos el canal de thingspeak a '0' usando http get request y, al mismo tiempo, actualizamos el estado del dispositivo (1/0 dependiendo de On / Off). Lo mismo se repite para LightsOff, FanOn y FanOff.
- Para el clima, leemos del canal de temperatura y humedad y almacenamos el resultado en la variable de respuesta. Como el canal solo da valores, agregamos textos para que la respuesta sea significativa.
- para una instantánea de la sala de estar, ejecutamos el escenario Pushbox
- para el estado del dispositivo, leemos información del canal de estado de thingspeak:
- para notificaciones y alertas que leemos de los canales de alerta (fuego, intruso e invitado):
- en función de los valores que obtenemos del campo de notificación, los mensajes de alerta correspondientes se almacenan en la variable respond0. si no hay ninguna notificación, no se almacena ningún mensaje de notificación.
- una vez que se lee la notificación, el '0' se actualiza en los canales de notificación para que alexa no vuelva a leer la misma notificación. Luego, por fin, según la solicitud, se lee en voz alta la variable respond0 / respond.
Paso 8: Configuración de Alexa Skill en Amazon Developer Console:
vaya a la consola de desarrollador de Amazon e inicie sesión con la cuenta de Amazon.
vaya a la consola del desarrollador y haga clic en la pestaña ALEXA. Haga clic en el kit de habilidades de alexa para comenzar.
crear un tipo de habilidad personalizado, dar un nombre y un nombre de invocación a la habilidad. Las intenciones respectivas y expresiones de muestra se dan en el código.
en la pestaña de configuración, seleccione HTTPS como tipo de punto final del servicio, complete la URL predeterminada con la URL de la API desde backendless. Seleccione la segunda opción en Certificado para el punto final predeterminado en el certificado SSL. También puede probar la habilidad usando el simulador de prueba.
Una vez finalizada la prueba, puede publicar la habilidad con la información de publicación requerida.
Paso 9: ¡Configuración final y acabado
Realice la conexión del circuito como se muestra.
A veces, el ESP8266 no funcionará correctamente debido a una corriente insuficiente. Por lo tanto, aunque no se menciona en el circuito, se recomienda alimentar el ESP8266 desde una fuente separada de 3.3v. Si está utilizando un banco de energía, asegúrese de reducir el voltaje de 5v a 3.3v usando un regulador de voltaje de 3.3v. Cargue el programa en ESP8266 y arduino. He mostrado la conexión a la bombilla, lo mismo se puede extender al ventilador o cualquier dispositivo. Finalmente, use amazon echo o echosim.io para probar su habilidad.
Debes activar la habilidad usando el nombre de invocación (como es mi caso - "myhome"). A veces, no funcionará si se usa sin un nombre de invocación, como lo he mostrado un par de veces en mi video
¡Espero que hayas disfrutado el tutorial!
¡Gracias!
Recomendado:
¿Cómo hacer bricolaje con persianas enrollables inteligentes con interruptores inteligentes SONOFF ?: 14 pasos
¿Cómo hacer bricolaje con persianas enrollables inteligentes con interruptores inteligentes SONOFF ?: Utilice el modo de enclavamiento en los interruptores inteligentes SONOFF para convertir sus persianas / persianas enrollables ordinarias en inteligentes. y bajarlo por la noche? De todos modos, soy
ForgetMeNot - Plataforma de notificación de hogares inteligentes: 14 pasos (con imágenes)
ForgetMeNot - Plataforma de notificación de hogares inteligentes: como estudiantes universitarios ocupados, corriendo entre clases, trabajos y obligaciones familiares, tendemos a olvidar las pequeñas cosas. Un cumpleaños va y viene sin que nos demos cuenta, una fecha límite importante se pierde por puro olvido y, a veces, simplemente
Persianas inteligentes controladas por Alexa integradas: 8 pasos (con imágenes)
Persianas inteligentes controladas por Alexa integradas: hay muchos proyectos de persianas inteligentes e Instructables actualmente disponibles en línea. Sin embargo, quería poner mi propio toque en los proyectos actuales con el objetivo de tener todo lo interno en la persiana, incluidos todos los circuitos. Esto significaría
Manteniendo a tu bebé fresco este verano - ¡Controlando a los fanáticos tontos con cosas inteligentes !: 6 pasos (con imágenes)
Manteniendo a tu bebé fresco este verano - ¡Controlando a los fanáticos tontos con cosas inteligentes !: ¡Hace dos semanas, al momento de escribir esto, me convertí en papá de un bebé increíble! Con el cambio de estaciones, los días cada vez más largos y las temperaturas cada vez más cálidas, pensé que sería bueno tener algún tipo de monitor en el n
Enchufes inteligentes remotos controlados por Amazon Alexa de 433 MHz con ESP8266: 4 pasos
Enchufes inteligentes remotos controlados por Amazon Alexa de 433 mHz con ESP8266: En este instructivo, le mostraré cómo hacer que su Amazon Echo controle los tomacorrientes controlados a distancia de 433mHz con la ayuda del ESP8266.Lo que necesita: tomacorrientes controlados a distancia de 433mHz con interruptores DIP ESP8266 (el más fácil camino es el Jabalí NodeMCU