Como construir um tapete de alarme controlado por aplicativo

Acordar nem sempre é fácil, especialmente quando o botão de soneca normalmente está a uma curta distância. Superar o desejo de ficar no conforto de nossas camas muitas vezes requer uma compreensão da motivação intrínseca. Mas temos uma solução que requer um dispositivo simples: um tapete inteligente.

Neste projeto, projetaremos um tapete inteligente que funcionará como despertador matinal. Não apenas soa um alarme, mas também ajuda a inspirar você a superar a procrastinação matinal de sair da cama.

Projetaremos um protótipo de um tapete inteligente com a eletrônica necessária para garantir que você acorde facilmente para o dia. Ele marca a hora e toca o alarme, que pode ser programado a partir de um aplicativo móvel. Você precisará de um tapete e um microcontrolador com funcionalidade Bluetooth e WiFi. Usamos ESP32. Um botão e uma campainha também são necessários. Vamos começar.

Componentes necessários

1. ESP32 x1
2.
Pressione os botões x conforme necessário
3. Campainha x1
4. Tapete normal x1

Conexões de circuito
Para começar, é necessário um tapete normal que pode ser rasgado em duas camadas (os componentes eletrônicos vão para dentro). Prepare uma série de botões, todos conectados em paralelo e organizados em distâncias iguais uns dos outros no formato do tapete, conforme mostrado na imagem abaixo.

Prenda pedaços quadrados de uma folha fina de plástico ou acrílico na parte superior dos botões usando cola para formar a camada intermediária. Assim, quando uma força é aplicada no quadrado da folha de plástico, o botão é pressionado.

O conjunto de botões forma a camada intermediária do tapete. Se alguém subir nele, vários botões serão pressionados e isso causará um curto-circuito nos dois fios que conectam todos os botões em paralelo. Um desses fios se conecta ao pino terra do ESP32 e o outro se conecta ao pino GPIO21 do ESP32.

Uma campainha é conectada ao ESP32 conectando um de seus terminais ao GND e o outro ao pino GPIO 18 do ESP32. Depois de fazer todas as conexões, o tapete inteligente deve se parecer com o diagrama de circuito abaixo.

O circuito microcontrolador do tapete inteligente é alimentado por baterias AAA 6A/9A conforme mostrado abaixo.

Antes de instalar o ESP32 no circuito do tapete, lembre-se de fazer upload do esboço.

Esboço do Arduino

Lembre-se de substituir o SSID e a chave de rede pelos da sua própria conexão WiFi.

Aplicativo móvel
O alarme é definido no smart mat usando um aplicativo móvel desenvolvido com o MIT App Inventor. Faça login no MIT App Inventor e crie uma interface de usuário no Designer conforme mostrado abaixo.

O aplicativo é construído usando os seguintes componentes no MIT App Inventor…

As propriedades de Label1 são definidas conforme mostrado abaixo.

As propriedades do TimePicker1 são definidas conforme mostrado abaixo.

As propriedades de HorizontalArragement1 são definidas conforme mostrado abaixo.

As propriedades do Button1 são definidas conforme mostrado abaixo.

As propriedades do ListPicker1 são definidas conforme mostrado abaixo.

As propriedades do Notifier1 são definidas conforme mostrado abaixo.

As propriedades de BluetoothClient1 são definidas conforme mostrado abaixo.

A lógica do aplicativo é definida no editor de blocos conforme mostrado abaixo.

O aplicativo móvel permite que os usuários definam um alarme que está no tapete inteligente. Para fazer isso, selecione o botão do dispositivo Bluetooth e o “Smart Wakeup Alarm Mat”. O smart mat é visualizado no aplicativo como um dispositivo Bluetooth e o texto do botão mudará para “Conectado” quando selecionado.

Para definir um alarme no aplicativo, basta tocar no seletor de horário e selecionar um horário para o alarme tocar. Em seguida, pressione o botão “Definir alarme” para configurá-lo. O processo é demonstrado no vídeo a seguir.

Como funciona o projeto
Para definir um alarme em seu smart mat, use o construtor de aplicativos móveis do MIT App Inventor. Este aplicativo permite que os usuários usem seu smart mat como um dispositivo Bluetooth. Quando um alarme é definido usando o aplicativo, os valores de hora e minuto (no formato de 24 horas) são enviados ao ESP32 via Bluetooth como um par de valores separados por vírgula.

O ESP32 procura continuamente se o alarme está ativado. Caso contrário, ele continuará a cronometrar pesquisando a hora atual do servidor NTP. O ESP32 deve estar conectado a uma rede WiFi. O SSID e a senha para isso estão codificados no esboço.

Se um alarme for definido, o ESP32 irá comparar a hora atual baseada no servidor NTP com a hora definida para o alarme. Quando os valores de hora e minuto coincidem entre a hora atual e a hora do alarme, o alarme é acionado e a campainha toca. O alarme continua até que o usuário pise no tapete. Isso exige que eles saiam da cama!

Quando o usuário pisa no tapete, os botões são pressionados, causando um curto-circuito nos dois fios que conectam todos os botões em paralelo. O ESP32 para de reproduzir o alarme quando um sinal LOW é recebido da rede de botões no GPIO21.

O código
O esboço começa com BluetoothSerial.h, WiFi.h, NTPClient.h e WiFiUdp.h. Se alguma dessas bibliotecas não for encontrada, instale-a usando o gerenciador de bibliotecas.

Aqui está um resumo do que cada um faz neste projeto:

  • BluetoothSerial.h gerencia a conexão WiFi do smart mat (ou ESP32) com o aplicativo móvel.
  • WiFi.h gerencia a conexão Wi-Fi com a rede Wi-Fi doméstica.
  • NTPClient.h se conecta ao servidor NTP online.
  • WiFiUdp.h gerencia a conexão UDP via Wi-Fi.

Posteriormente, as notas para a campainha são definidas, assim como as variáveis ​​​​para cada atribuição de pinos da campainha e do conjunto de botões. As variáveis ​​​​para rastrear o status da matriz de botões, SSID, chave de rede Wi-Fi, hora atual, valor das horas, valor dos minutos, valor dos segundos, valor das horas do alarme, valor dos minutos do alarme, status do alarme e status de desligamento do alarme também são definidas. Em seguida, os objetos WiFiUdp, cliente NTP e Bluetooth Serial são inicializados.

Na função setup , o pino conectado ao array de botões é definido como uma entrada digital. A taxa de transmissão da comunicação serial para depurar mensagens para o console serial é definida como 115200. O Bluetooth é inicializado com o nome “Smart Wakeup Alarm Mat”.

O ESP32 se conecta à rede Wi-Fi e o cliente NTP é inicializado e configurado para o fuso horário correto.

A função definida pelo usuário stringToCharArray é definida para extrair valores dos dados de string recebidos por redes Bluetooth e Wi-Fi. A função playAlarm sinaliza o alarme disparando o buzzer. A função senseInput detecta se o array de botões é pressionado e, se for, desliga o alarme.

Na função loop , o ESP32 utiliza uma conexão Bluetooth para buscar os dados recebidos do aplicativo móvel. Se forem recebidos dados, o alarme é definido e os valores de hora e minuto são armazenados. O status do alarme é definido como TRUE e o status do desligamento do alarme é definido como FALSE.

Em seguida, ele recupera a hora atual do servidor NTP e extrai os valores atuais de hora e minuto. Estes valores são comparados com os do alarme configurado. Se corresponderem, o alarme é acionado. O alarme não desliga até que o conjunto de botões seja pressionado ao passar por cima do tapete.

Resultados

Esta imagem mostra uma compilação das mensagens de depuração recebidas do tapete de alarme de ativação inteligente.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

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