Trabalho Final realizado para a disciplina de Fundamentos de Sistemas Embarcados, professor Renato Coral. Ministrada em 2024/2.
Esse projeto implementa uma casa inteligente, com questões mais simples e também mais complexas. Atua pegando temperatura do ambiente, identificando movimento para ligar luz, sensor de toque sensível para luz (luz com intensidade ajustável) e babá eletrônica.
- Pra ligar a luz interna da casa, é utilizado o sensor KY-036, que ativa a luz apenas ao encostar no sensor. Essa luz pode ser ajustada via dashboard para maior ou menor intensidade via PWM, e também ser desligada ou ligada via RPC.
- Para monitorar a temperatura, foi utilizado um sensor KY-001 que recebe os valores e através do protocolo MQTT passa as informações para a Dashboard. Esse sensor tem a finalidade de monitorar a temperatura e avisá-la ao usuário.
- O sensor KY-038 foi usado tanto na entrada digital quanto a analógica para medir se o bebê está chorando ou não. A entrada analógica é usada para calcular um limiar com base no som ambiente (sempre demonstrada via dashboard), e a digital identifica os sons. Caso alerte, o dashboard é alterado e um LED é ligado, demonstrando que o bebê está chorando.
- O sensor KY-032 foi usado na ESP-Bateria, a qual está sempre em light sleep, pra quando detectado movimento, mandar uma mensagem pra ESP-Energia avisando do movimento, e ligando a luz LED da ESP-Energia automaticamente por 10 segundos, caso continue recebendo movimento, a luz continua ligada. Essa luz ligada também é notificada via dashboard.
- A tela OLED SSD1306 é utilizada para informar ao usuário fisicamente a temperatura e se a babá está alertando ou não.
- As funcionalidades podem ser desligadas via dashboard (método RPC), caso o usuário não queira usar as funcionalidades. O tempo desligado é gravado via NVS por memória flash, e é retornado no dashboard em ms assim que ligado novamente.
- ESP32: Microcontrolador principal, responsável por realizar o timer do método Pomodoro e gerenciar os sensores. Nesse trabalho foram utilizadas duas unidades.
- Sensor de som (KY-038): Utilizado para a babá eletrônica, identificando se o bebê está chorando através de entradas analógica e digital.
- Sensor de toque (KY-036): Controla a luz interna da casa, permitindo ativação por toque da mesma.
- Sensor de temperatura e umidade (KY-001): Monitora a temperatura e envia os dados para a dashboard via protocolo MQTT.
- Sensor de movimento (KY-032): Detecta movimento para ativar automaticamente a luz externa, comunicando-se entre ESPs.
- Tela OLED (SSD1306): Exibe informações sobre temperatura e alertas da babá eletrônica.
- LEDs: Utilizados para indicar visualmente o estado da babá eletrônica e da luz interna, onde este último pode ter sua intensidade ajustada via dashboard (RPC).
A comunicação entre o ESP32 e o servidor Thingsboard é feita via protocolo MQTT com um broker particular. A comunicação entres as ESP32 é feita via protocolo MQTT com um broker público (mqtt://test.mosquitto.org).
Os dados são enviados em formato JSON, e as placas são capazes de receber comandos RPC para Deep Sleep e ligar e desligar luz.
O modo de bateria foi implementado na esp-bateria.
- Versão 5.3.2 do espressif via VSCode
- Adicionar variável de ambiente IDF_PATH para "C:\Users\user\esp\v5.3.2\esp-idf" ou parecido dependendo de onde seu esp-idf esteja localizado
- Configurar a porta da ESP de acordo com o que seu computador identificou (tenha em mente que os drivers para lidar com a ESP tem de estar baixados, e o IDF_PATH configurado). O símbolo estará abaixo no vscode e se parecerá com isso:
- Abrir menuconfig (engrenagem no vscode) e atualizar com suas credenciais do wi-fi (ssid e senha), e atualizar a fonte de alimentação de acordo com a esp que está manipulando (Bateria ou Energia)
- Fazer o build e flash em cada uma das placas respectivamente (pelo vscode, clicando no símbolo de chave de boca e logo após terminar, o símbolo de raio, ou apertar somente no símbolo de chama)