Cómo diseñar una alarma inteligente basada en IoT

Puede que no siempre los apreciemos, pero el despertador matutino es importante para la vida cotidiana. Garantiza que nos levantemos a tiempo para el trabajo, la escuela, reuniones, citas u otras tareas esenciales. Las alarmas también pueden ayudarnos a mantener un horario regular de sueño/vigilia.

En este proyecto, utilizaremos el Internet de las cosas (IoT) para configurar una alarma para el amanecer. Este dispositivo detecta automáticamente su ubicación geológica y le permite configurar la alarma en consecuencia.

Construiremos este dispositivo IoT utilizando la placa del microcontrolador ESP8266 y emplearemos su API meteorológica. Primero debe registrar una cuenta en www.weatherapi.com y obtener una clave API para construir este proyecto de IoT.

Componentes necesarios
Se requieren los siguientes componentes para crear un prototipo de este dispositivo.

1.ESP8266x1
2. Timbre x1
3. Pulsador x1
4. Resistencia 330Ω x2
5. LEDx1
6. Tablero de prueba
7. Conexión de cables/cables Dupont

Conexiones de circuito
Para construir este dispositivo, necesitará una placa microcontroladora ESP8266.

  • Comience conectando el botón con el pin GPIO4. Para hacer esto, conecte un terminal del botón al pin de 3V del ESP8266 a través de la resistencia de 330Ω y conecte el mismo terminal a GPIO4.
  • Conecte el otro terminal del botón pulsador a tierra.
  • Luego conecte un timbre al GPIO5 del ESP8266.
  • Conecte uno de los terminales del zumbador al pin GPIO5 y el otro terminal a GND.
  • Conecte un LED con el GPIO10 del ESP8266 a través de la resistencia en serie de 330Ω.

Registrarse en la API meteorológica
Este dispositivo utiliza la API Weather para su funcionamiento. Deberá registrar una cuenta en www.weatherapi.com (haga clic en el botón "Registrarse" en la página de inicio) y obtener una clave API.

Complete sus datos para completar el proceso de registro.

Debería recibir un correo electrónico de confirmación en su cuenta de correo electrónico registrada. Accede a tu correo electrónico y confirma tu suscripción a Weather API.

Luego inicie sesión en www.weatherapi.com con sus credenciales registradas.

Después de iniciar sesión, se proporcionará una clave API. Copie y anote la clave API, que usaremos como código del dispositivo.

Bosquejo de Arduino
Después de realizar las conexiones del circuito, cargue el siguiente boceto de Arduino en el ESP8266.

Cómo funciona este dispositivo IoT
Este es un dispositivo IoT inteligente que configura automáticamente una alarma matutina para la hora del amanecer según la ubicación actual del usuario. El dispositivo se conecta a la API meteorológica para determinar los datos de geolocalización.

Cuando el dispositivo se enciende, se conecta inmediatamente a la red WiFi local. Las credenciales de red están codificadas en el dispositivo. Una vez conectado a Internet, el dispositivo detecta su ubicación geográfica actual en función de su dirección IP. Luego determina la hora de salida del sol del día siguiente, que se convierte en minutos a partir de las 12:00 p.m. y se almacena como una variable global.

El usuario puede configurar la alarma del amanecer presionando un botón en el dispositivo. Si la alarma está configurada, se enciende un indicador LED. El usuario también puede apagar la alarma presionando el mismo botón una vez.

Si la alarma está configurada, el dispositivo sondea continuamente la hora local en intervalos de un minuto. La hora local también se convierte a minutos a partir de las 12:00. El dispositivo también compara la hora local en minutos (a partir de las 12 p. m.) con la hora del amanecer en minutos (a partir de las 12 p. m.). Cuando la diferencia entre los dos tiempos es cero, el dispositivo hace sonar la alarma durante un minuto.

Código
El boceto Arduino para el dispositivo comienza importando las bibliotecas ESP8266WiFi.h, ESP8266HTTPClient.h, WiFiClient.h y ArduinoJson.h. Las bibliotecas ESP8266WiFi.h y WiFiClient.h son necesarias para la conectividad WiFi. La biblioteca ESP8266HTTPClient.h se utiliza para manejar solicitudes HTTP a la API Weather. La biblioteca ArduinoJson.h se utiliza para procesar datos JSON de Weather API.

Las variables se declaran para almacenar el SSID y la clave de red de la red WiFi. Debe reemplazar estos valores en el programa de usuario con el SSID y la clave de red de su propia conexión WiFi. meteorapi.com. Nuevamente, debe reemplazar esta clave con su propia clave API de su cuenta Weather API registrada.

Las variables se declaran para almacenar:

  • Hora del amanecer en minutos
  • Hora local actual en minutos
  • Estado de alarma de amanecer
  • Estado del indicador LED

Las variables se inicializan para contener las asignaciones de pines de la interfaz. En la función de configuración, el botón de interfaz de pin se define como entrada y los pines que interconectan el zumbador y el LED se definen como salida digital. La velocidad en baudios para la comunicación en serie está establecida en 115.200 bps. El dispositivo se conecta a la red WiFi llamando al método WiFi.begin. Una vez que se conecte WiFi, la dirección IP y la dirección IP local se imprimirán en el puerto serie.

  • La función convertToMinutes definida por el usuario convierte la hora proporcionada por Weather API utilizando un formato de 12 horas con la cantidad de minutos a partir de las 12:00.
  • La función stringToCharArray definida por el usuario está definida para convertir cadenas recibidas de Weather API en matrices de caracteres.
  • La función getSunriseTime se conecta a la API Weather y recupera la hora del próximo amanecer. La hora del amanecer se almacena en una variable utilizando el número de minutos a partir de las 12:00 p.m.
  • La función getCurrentTime se conecta a la API Weather, recupera la hora local actual y la almacena en una variable como el número de minutos desde las 12 p.m.
  • En la función de bucle, el dispositivo comprueba si está conectado a WiFi. Si es así, obtiene la hora del amanecer del día siguiente llamando a la función getSunriseTime.
  • Si se presiona el botón ON/OFF, la hora del amanecer se configura o deshabilita en la alarma. Si la alarma está configurada, el dispositivo recupera la hora local llamando a la función getCurrentTime.
  • Se calcula la diferencia entre la hora de salida del sol y la hora local actual, ambas en minutos a partir de las 12:00 horas. Si es cero, la alarma vibra durante un minuto.

Resultados
A continuación se muestra una captura de pantalla de los mensajes comunicados por la alarma matutina inteligente de IoT al puerto serie. Cuando se configura la alarma de amanecer (según la geolocalización del usuario), se imprime “Alarma de amanecer configurada” al final del mensaje del puerto serie. Esta podría ser una característica útil para agregar a relojes inteligentes y dispositivos de fitness.

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.