Tabla de contenido:

IDC2018IOT Dime cuándo apagar el aire acondicionado: 7 pasos
IDC2018IOT Dime cuándo apagar el aire acondicionado: 7 pasos

Video: IDC2018IOT Dime cuándo apagar el aire acondicionado: 7 pasos

Video: IDC2018IOT Dime cuándo apagar el aire acondicionado: 7 pasos
Video: IoT arquitectura simplificada de Cisco 2024, Mes de julio
Anonim
Image
Image

Muchos de nosotros, especialmente en verano, usamos el aire acondicionado casi sin parar, cuando en realidad en ciertos momentos del día podemos simplemente abrir una ventana y disfrutar de una agradable brisa. Además, personalmente notamos que a veces incluso nos olvidamos de apagar el aire acondicionado al salir de la habitación, desperdiciando energía y dinero.

La solución que construiremos comparará la temperatura interior con la exterior, y cuando estén lo suficientemente cerca, nos notificará a través de Facebook Messanger que es hora de abrir una ventana y darle al aire acondicionado un poco de descanso.

Además, crearemos otro mecanismo para notificarnos cuando olvidamos el aire acondicionado y salimos de la habitación.

Paso 1: Un poco más de detalles

Recopilamos datos de 4 sensores diferentes:

  • Dos sensores DHT recogen la temperatura dentro y fuera de la casa.
  • Un sensor PIR detecta movimiento en la habitación.
  • Se utiliza un micrófono Electret para detectar el viento que sale de la ventilación de CA, una forma simple y confiable de determinar si la CA está encendida.

Los datos provenientes de los sensores se procesarán y enviarán al Blynk donde se mostrarán en una interfaz que crearemos. Además, activaremos eventos IFTTT para notificar al usuario cuándo puede abrir una ventana en lugar del aire acondicionado, y cuándo olvidó el aire acondicionado y salió de la habitación durante un período de tiempo predefinido.

La interfaz de Blynk también nos dará una forma de cambiar la configuración relevante de acuerdo con las preferencias del usuario, como veremos con más detalle más adelante.

Partes requeridas:

  1. Módulo WiFi - ESP8266
  2. Sensor PIR.
  3. Sensores de temperatura DHT11 / DHT22 x2.
  4. Resistencias de 10k / 4.7k (DHT11 - 4.7k, DHT22 - 10k, PIR - 10k).
  5. Micrófono electret.
  6. Saltadores.
  7. Cables largos (el cable telefónico hará un gran trabajo).

El código completo del proyecto se adjunta al final con comentarios a lo largo del código.

Lógicamente, tiene algunas capas diferentes de funcionalidad:

  • Los datos de los sensores se leen en intervalos de 3 segundos, ya que muestran ser más precisos y no hay necesidad de más.
  • Una parte del código es realizar un seguimiento del estado de CA mediante los valores que provienen del micrófono electret que se coloca sobre la apertura de la CA.
  • Otra parte es realizar un seguimiento de la lectura proveniente de los sensores de temperatura, y la diferencia entre el uso definido como aceptable para apagar el aire acondicionado y abrir una ventana en su lugar. Buscamos el momento en que las temperaturas se acerquen lo suficiente.
  • Una tercera parte es realizar un seguimiento del movimiento en la habitación. Si no detecta ningún movimiento importante (la forma de marcar mayor se explicará pronto) durante un período de tiempo definido por el usuario, y el estado de CA está ENCENDIDO, se enviará una notificación al usuario.
  • Las notificaciones se manejan mediante la activación de webhooks IFTTT que envían mensajes predefinidos al usuario a través de Facebook Messenger.
  • La última parte que vale la pena señalar es la parte que maneja la interfaz de Blynk, tanto obteniendo los cambios que hace el usuario en las variables como por el otro lado, enviando datos a la interfaz de Blynk para que los vea el usuario.

Paso 2: muchos más detalles: sensores

En muchos más detalles: sensores
En muchos más detalles: sensores
En muchos más detalles: sensores
En muchos más detalles: sensores

Empecemos.

Primero, debemos asegurarnos de que nuestros dos sensores DHT lean la misma temperatura cuando se colocan en el mismo lugar. Para eso, hicimos un simple boceto adjunto al final de esta sección (CompareSensors.ino). Conecta ambos sensores y asegúrate de cambiar el tipo de sensores DHT en el boceto de acuerdo con los que tienes (el predeterminado es uno DHT11 y otro DHT22, para que puedas ver cómo se tratan ambos en el código). Abra el monitor en serie y déjelos funcionar por un tiempo, especialmente si usa sensores DHT11, ya que tienden a tardar más en ajustarse a los cambios de temperatura.

Note la diferencia entre los sensores e insértela más adelante en el código principal en la variable "offset".

Colocación de sensores:

Se debe colocar un sensor DHT en la pared exterior de la casa, así que conéctelo a algunos cables largos, lo suficientemente largos para alcanzar su ESP8266 dentro de la habitación, y colóquelo afuera (se puede hacer fácilmente a través de la ventana). El otro sensor DHT debe colocarse en la placa de pruebas, dentro de la habitación en la que usamos el aire acondicionado.

El micrófono electret también debe conectarse a cables lo suficientemente largos y colocarse en un lugar donde el viento que sale de la CA lo golpee.

Por último, el sensor PIR debe colocarse en una ubicación orientada hacia el centro de la habitación para que capture todos los movimientos de la habitación. Tenga en cuenta que el sensor tiene dos pequeñas perillas, una que controla el retardo (cuánto tiempo se mantiene ALTA la señal ALTA de detección de un movimiento) y la otra controla la sensibilidad (ver imagen).

Es posible que deba jugar con él hasta que obtenga una lectura con la que esté satisfecho. Para nosotros, el mejor resultado fue el retraso completamente a la izquierda (valor más bajo) y la sensibilidad a la derecha en el medio. El código proporciona impresiones en serie que incluyen lecturas de todos los sensores que facilitarán la depuración de tales problemas.

Conectando los sensores:

Los números de pin que usamos son los siguientes (y se pueden cambiar en el código principal):

Sensor DHT exterior - D2.

Sensor DHT interior - D3.

Electret - A0 (pin analógico).

PIR - D5.

Los esquemas para conectar cada uno de ellos se pueden encontrar fácilmente usando la búsqueda de imágenes de Google con algo como "Esquema Arduino de resistencia PIR" (no querríamos copiarlos aquí y cruzar las líneas de derechos de autor:)).

También adjuntamos una imagen de nuestra placa de pruebas, probablemente sea difícil seguir realmente las conexiones, pero puede dar una buena sensación.

Como probablemente sepa, las cosas rara vez funcionan la primera vez que las conectamos. Es por eso que creamos una función que imprime las lecturas de los sensores de una manera fácil de leer, para que pueda depurar su camino para que funcionen. Si no desea que el código intente conectarse a Blynk durante la depuración, simplemente comente "Blynk.begin (auth, ssid, pass);" desde la parte de configuración del código, ejecútelo y abra el monitor serial para ver las impresiones. También adjuntamos una foto de las impresiones.

Paso 3: En muchos más detalles - Secuencia IFTTT

En muchos más detalles: secuencia IFTTT
En muchos más detalles: secuencia IFTTT

Por eso queremos ser notificados en dos escenarios:

1. La temperatura exterior es lo suficientemente cercana a la que tenemos dentro con el aire acondicionado funcionando.

2. Hemos salido de la habitación durante un período de tiempo prolongado y el aire acondicionado sigue funcionando.

IFTTT nos permite conectar muchos servicios diferentes que normalmente no interactúan, de una forma muy sencilla. En nuestro caso, nos permite enviar notificaciones de forma muy sencilla a través de muchos servicios. Elegimos Facebook Messanger, pero después de que funcione con Facebook Messanger, podrá cambiarlo fácilmente a cualquier otro servicio de su elección.

El proceso:

En el sitio web de IFTTT, haga clic en su nombre de usuario (esquina superior derecha) y luego en "New Applet", elija "Webhooks" como disparador (el "esto") y elija "Recibir una solicitud web". Establezca un nombre de evento (por ejemplo, sala_vacia).

Para el servicio activado, la acción (el "eso"), elija Facebook Messenger> Enviar mensaje y escriba el mensaje que desea recibir cuando ocurra este evento (por ejemplo, "Hola, parece que olvidó el AC en:).

Mientras estamos aquí, también debe encontrar su clave secreta que deberá insertar en el lugar apropiado del código.

Para encontrar su clave secreta vaya a https://ifttt.com/services/maker_webhooks/settings Allí encontrará una URL con su clave en el siguiente formato:

Paso 4: en muchos más detalles - Blynk

Image
Image
En muchos más detalles - Blynk
En muchos más detalles - Blynk
En muchos más detalles - Blynk
En muchos más detalles - Blynk

También queremos una interfaz que tenga las siguientes características:

1. Posibilidad de establecer cuánto tiempo debe estar vacía la habitación con el aire acondicionado en funcionamiento antes de recibir una notificación.

2. Posibilidad de elegir qué tan cerca debe estar la temperatura exterior de la interior.

3. Una pantalla para las lecturas de los sensores de temperatura.

4. Un led que nos indica el estado del AC (encendido / apagado).

5. Y lo más importante, una pantalla para mostrar cuánto $$$ y energía ahorramos.

Cómo crear la interfaz de Blynk:

Si aún no tiene la aplicación Blynk, descárguela en su teléfono. Cuando abra la aplicación y cree un nuevo proyecto, asegúrese de elegir el dispositivo apropiado (por ejemplo, ESP8266).

Recibirás un correo electrónico con un token de autenticación, que insertarás en el código en el lugar correspondiente (también puedes reenviarlo a ti mismo desde la configuración más adelante si lo pierdes).

Para colocar nuevos widgets en su pantalla, haga clic en el signo + en la parte superior. Elija los widgets y luego haga clic en un widget para ingresar su configuración. Hemos agregado imágenes de la configuración de todos los widgets que usamos, para su referencia.

Una vez que haya terminado con la aplicación, y cuando finalmente desee utilizarla, simplemente haga clic en el icono "reproducir" en la esquina superior derecha para ejecutar la aplicación Blynk. También podrá ver cuándo se conecta su ESP8266.

Nota: el botón "actualizar" se utiliza para obtener la temperatura y el estado del aire acondicionado para que lo veamos en la aplicación. No es necesario al cambiar configuraciones (como la diferencia de temperatura), ya que se presionan automáticamente.

Paso 5: el código

Hicimos un gran esfuerzo para documentar cada parte del código de una manera que hiciera que su comprensión fuera lo más fácil posible.

Las partes del código que debes cambiar antes de usarlo (como la clave de autenticación de Blynk, tu SSID y contraseña wifi, etc.) van seguidas del comentario // * cambiar * para que puedas buscarlas fácilmente.

Deberá tener las bibliotecas utilizadas en el código, puede instalarlas a través del IDE de Arduino haciendo clic en Sketch> Incluir bibliotecas> Administrar bibliotecas. Allí puede buscar el nombre de la biblioteca e instalarlo. Además, asegúrese de colocar el archivo generic8266_ifttt.h en la misma ubicación que ACsaver.ino.

Una parte del código que explicaremos aquí, ya que no queríamos saturar el código, es cómo decidimos cuándo cambiar el estado del aire acondicionado de encendido a apagado, y el estado de la habitación de vacío a no vacío.

Leemos de los sensores cada 3 segundos, pero como los sensores no son 100% precisos, no queremos que una sola lectura cambie el estado que creemos que está en la habitación ahora. Para resolver esto, lo que hace el código es que tenemos un contador que ++ cuando obtenemos una lectura a favor de "AC está encendido", y - en caso contrario. Luego, cuando llegamos al valor definido en SWITCHAFTER (por defecto a 4), cambiamos el estado a "AC está encendido", cuando llegamos a -SWITCHAFTER (negativo el mismo valor), cambiamos el estado a "AC está apagado ".

El impacto en el tiempo que se tarda en cambiar es insignificante y consideramos que es muy confiable para detectar solo los cambios correctos.

Paso 6: Poniéndolo todo junto

Ok, entonces todos los sensores están en su lugar y funcionan correctamente. La interfaz de Blynk está configurada (¡con los pines virtuales correctos!). Y los eventos IFTTT están esperando nuestro disparador.

Ha insertado la clave secreta IFTTT en el código, la clave de autenticación de Blynk, el SSID de su WiFi y la contraseña, e incluso verificó que los sensores DHT están calibrados y, si no, cambió el desplazamiento en consecuencia (por ejemplo, nuestro fuera de DHT leer temperaturas más altas en 1 grado Celsius de lo que debería tener, por lo que usamos offset = -1).

Asegúrese de que su WiFi esté activada, inicie su aplicación Blynk y cargue el código en su ESP8266.

Eso es todo. Si todo se hizo correctamente, puede jugar ahora y verlo en acción.

Y si solo quieres verlo en acción sin la molestia de ponerlo todo junto… Bueno… Desplázate hacia arriba y mira el video. (¡Míralo con subtítulos! Sin voz en off)

Paso 7: Pensamientos

Tuvimos dos desafíos principales aquí.

En primer lugar, ¿cómo sabemos que el aire acondicionado está encendido? Intentamos usar un receptor de infrarrojos que "escuchará" la comunicación entre el aire acondicionado y el control remoto. Parecía ser demasiado complicado, ya que los datos eran muy desordenados y no eran lo suficientemente consistentes para entender "ok, esta es una señal ON". Así que buscamos otras formas. Una idea fue usar una pequeña hélice que generará una pequeña corriente cuando se mueva por el viento de la CA, otra idea que probamos fue que un acelerómetro midiera el ángulo de las alas giratorias en las rejillas de ventilación y detectara su movimiento desde la posición de APAGADO.

Finalmente, nos dimos cuenta de que la forma más sencilla de hacerlo es con el micrófono electret, que detecta de manera muy confiable el viento que sale del aire acondicionado.

Hacer que los sensores DHT funcionaran fue muy fácil;), pero solo más tarde nos dimos cuenta de que uno de ellos estaba un poco fuera de la temperatura real. El sensor PIR también requirió algunos ajustes, como se describió anteriormente.

El segundo desafío fue hacer que toda la solución sea simple y confiable. En un sentido que debería ser molesto de usar, debería estar ahí y empujar cuando lo necesite. De lo contrario, probablemente dejaríamos de usarlo nosotros mismos.

Así que pensamos un poco en lo que debería estar en la interfaz de Blynk y tratamos de hacer que el código sea lo más confiable posible, ocupándonos de cada caso de borde que se nos ocurra.

Otro desafío, que no pudimos resolver en el momento de escribir este instructivo, fue agregar un blaster IR que nos permitirá apagar la CA desde la interfaz Blynk. ¿De qué sirve saber que olvidó el aire acondicionado sin la posibilidad de apagarlo? (bueno … podrías preguntarle a alguien si está en casa).

Desafortunadamente, tuvimos algunas dificultades para reproducir las señales que grabamos desde el control remoto, de regreso al aire acondicionado con el ESP8266. Logramos controlar el AC mediante un Arduino Uno, siguiendo este instructivo:

www.instructables.com/id/How-to-control-th…

Intentaremos nuevamente pronto y actualizaremos el instructable con nuestros hallazgos y, con suerte, instrucciones sobre cómo agregar esa capacidad.

Otra limitación que vemos es el hecho de que necesitamos conectar un sensor fuera de la ventana, lo que podría no ser posible en ciertas situaciones, y también significa que es necesario un cable largo para salir al exterior. Una solución puede ser buscar datos meteorológicos de su ubicación en Internet. Además, el sensor electret que corre desde la CA puede ser reemplazado por el receptor IR que describimos anteriormente, para modelos de CA con códigos IR más conocidos o fáciles de decodificar.

El proyecto se puede ampliar de muchas formas. Como se dijo anteriormente, intentaremos encontrar una manera de incluir el control IR sobre el aire acondicionado, lo que luego abre un mundo completamente nuevo de oportunidades para encender y apagar el aire acondicionado desde cualquier parte del mundo, o establecer horarios de encendido y apagado a través del Blynk. aplicación, como otro ejemplo. Después de descubrir las dificultades técnicas de IR, agregar el código es bastante simple y directo, y no debería tomar mucho tiempo.

Si realmente queremos soñar en grande… El proyecto se puede convertir en un módulo completo que convierte cualquier AC en un AC inteligente. Y no necesita mucho más que nosotros. Solo más código, más utilización del IR, y si queremos que se produzca en masa, tal vez asegúrese de obtener los datos meteorológicos por ubicación, entonces podemos poner todo en una pequeña caja.

Realmente, todo lo que necesitamos es un sensor de temperatura para la temperatura interior, un sensor PIR para detectar movimiento y un LED IR como un blaster, y un receptor IR para "escuchar" la comunicación entre el AC y el control remoto que usamos.

Blynk brinda todas las capacidades que necesitamos para controlar la caja mágica, de una manera muy simple y confiable.

Hacer un proyecto tan completo llevará algún tiempo, especialmente desde el punto de vista de hacerlo lo suficientemente versátil como para configurarse a sí mismo y detectar y comprender automáticamente la mayoría de los AC.

Pero hacerlo usted mismo, bueno, si lo hace en su tiempo libre, estimamos que no debería tomar más de una semana o dos. Depende de cuánto tiempo libre tenga … El principal desafío aquí sería guardar todas las diferentes señales que el control remoto de CA puede enviar y darles sentido. (Aunque reproducirlos debería ser aún más fácil).

Recomendado: