Como projetar um alarme inteligente baseado em IoT

Nem sempre podemos apreciá-los, mas o despertador matinal é importante para a vida cotidiana. Garante que acordemos a tempo para o trabalho, escola, reuniões, compromissos ou outras tarefas essenciais. Os alarmes também podem nos ajudar a manter uma programação regular de sono/vigília.

Neste projeto, usaremos a Internet das Coisas (IoT) para definir um alarme matinal para o nascer do sol. Este dispositivo detecta automaticamente sua localização geológica e permite definir o alarme de acordo.

Construiremos este dispositivo IoT usando a placa microcontroladora ESP8266 e empregaremos sua API Weather. Primeiro você deve registrar uma conta em www.weatherapi.com e obter uma chave de API para construir este projeto de IoT.

Componentes necessários
Os seguintes componentes são necessários para prototipar este dispositivo.

1. ESP8266x1
2. Campainha x1
3. Botão de pressão x1
4. Resistência 330Ω x2
5. LEDx1
6. Tábua de ensaio
7. Conectando fios/fios Dupont

Conexões de circuito
Para construir este dispositivo, você precisará de uma placa microcontroladora ESP8266.

  • Comece conectando o botão com o pino GPIO4. Para fazer isso, conecte um terminal do botão ao pino 3V do ESP8266 através do resistor de 330Ω e conecte o mesmo terminal ao GPIO4.
  • Conecte o outro terminal do botão de pressão ao terra.
  • Em seguida, conecte uma campainha no GPIO5 do ESP8266.
  • Conecte um dos terminais da campainha ao pino GPIO5 e o outro terminal ao GND.
  • Faça a interface de um LED com o GPIO10 do ESP8266 por meio do resistor da série 330Ω.

Registrando-se na API Weather
Este dispositivo utiliza a API Weather para seu funcionamento. Você precisará registrar uma conta em www.weatherapi.com (clique no botão “Inscreva-se” na página inicial) e obter uma chave API.

Preencha seus dados para concluir o processo de inscrição.

Você deverá receber um e-mail de confirmação na conta de e-mail cadastrada. Acesse seu e-mail e confirme a inscrição na API Weather.

Em seguida, faça login em www.weatherapi.com com suas credenciais registradas.

Após o login, uma chave API será fornecida. Copie e anote a chave API, que usaremos como código do dispositivo.

Esboço do Arduino
Depois de fazer as conexões do circuito, carregue o esboço do Arduino abaixo para o ESP8266.

Como funciona este dispositivo IoT
Este é um dispositivo IoT inteligente que define automaticamente um alarme matinal para o horário do nascer do sol, de acordo com a localização atual do usuário. O dispositivo se conecta à API Weather para determinar os dados de geolocalização.

Quando o dispositivo é LIGADO, ele se conecta imediatamente à rede WiFi local. As credenciais de rede estão codificadas no dispositivo. Uma vez conectado à Internet, o dispositivo detecta a localização geográfica atual com base no seu endereço IP. Em seguida, determina a hora do nascer do sol do dia seguinte, que é convertida em minutos a partir das 12h e armazenada como uma variável global.

O usuário pode definir o alarme do nascer do sol pressionando um botão no dispositivo. Se o alarme estiver definido, um indicador LED acende. O usuário também pode desligar o alarme pressionando o mesmo botão uma vez.

Se o alarme estiver definido, o dispositivo pesquisa continuamente a hora local em intervalos de um minuto. A hora local também é convertida em minutos a partir das 12h. O aparelho também compara a hora local em minutos (a partir das 12h) com a hora do nascer do sol em minutos (a partir das 12h). Quando a diferença entre os dois tempos é zero, o aparelho emite o alarme por um minuto.

O código
O esboço do Arduino para o dispositivo começa importando as bibliotecas ESP8266WiFi.h, ESP8266HTTPClient.h, WiFiClient.h e ArduinoJson.h. As bibliotecas ESP8266WiFi.h e WiFiClient.h são necessárias para conectividade WiFi. A biblioteca ESP8266HTTPClient.h é usada para lidar com solicitações HTTP para a API Weather. A biblioteca ArduinoJson.h é usada para processar os dados JSON da API Weather.

As variáveis ​​são declaradas para armazenar o SSID e a chave de rede da rede WiFi. É necessário substituir estes valores no programa do usuário pelo SSID e chave de rede da sua própria conexão WiFi. Uma variável deve ser declarada para armazenar a chave API de weatherapi.com. Novamente, você deve substituir esta chave pela sua própria chave de API da sua conta registrada na Weather API.

As variáveis ​​são declaradas para armazenar:

  • Hora do nascer do sol em minutos
  • Hora local atual em minutos
  • Status do alarme do nascer do sol
  • Status do LED indicador

As variáveis ​​são inicializadas para manter as atribuições dos pinos de interface. Na função setup , o botão de interface dos pinos é definido como entrada e os pinos que fazem a interface da campainha e do LED são definidos como uma saída digital. A taxa de transmissão para comunicação serial é definida como 115.200 bps. O dispositivo é conectado à rede WiFi chamando o método WiFi.begin . Assim que o WiFi estiver conectado, o endereço IP e o endereço IP local serão impressos na porta serial.

  • A função convertToMinutes definida pelo usuário converte o horário fornecido pela Weather API usando um formato de 12 horas com o número de minutos a partir das 12h.
  • A função stringToCharArray definida pelo usuário é definida para converter strings recebidas da API Weather em matrizes de caracteres.
  • A função getSunriseTime se conecta à API Weather e recupera a hora do próximo nascer do sol. A hora do nascer do sol é armazenada em uma variável usando o número de minutos a partir das 12h.
  • A função getCurrentTime se conecta à API Weather, recuperando a hora local atual e armazenando-a em uma variável como o número de minutos a partir das 12h.
  • Na função loop , o dispositivo verifica se está conectado ao WiFi. Se for, ele obtém a hora do nascer do sol do dia seguinte chamando a função getSunriseTime .
  • Se o botão ON/OFF for pressionado, a hora do nascer do sol é definida ou desativada no alarme. Se o alarme estiver definido, o dispositivo recupera a hora local chamando a função getCurrentTime .
  • É calculada a diferença entre a hora do nascer do sol e a hora local atual, ambas em minutos a partir das 12h. Se for zero, o alarme vibra por um minuto.

Resultados
Abaixo está uma captura de tela das mensagens comunicadas pelo alarme matinal IoT inteligente à porta serial. Quando o alarme do nascer do sol (de acordo com a geolocalização do usuário) é configurado, “Sunrise Alarm is Set” é impresso no final da mensagem da porta serial. Este pode ser um recurso útil para adicionar a relógios inteligentes e dispositivos de fitness.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.