Detector de tensao AC MQTT Home Assistant

Meu nobreak nao possui interface USB entao resolvi criar um detector de tensao AC para ficar sabendo quando a energia da concessionaria cai, ele possui ajustes entao da para usar com 127, 220, etc. comunica com o home assistante via WiFi MQTT. Segue para quem se interessar.

Esquematico

Codigo arduino main
// Printa os dados atualizacoes via serial para fim de debug
//#define DEBUG

#include <ESPping.h>
#include <EEPROM.h>
#include "definicoes.h"
#include <WiFi.h>
#include <PubSubClient.h>
#include "class.h"
#include "variaveisGlobais.h"
#include <WiFiManager.h>
#include "WiFi_MQTT.h"
#include "funcao.h"
#include "pinos.h"

void setup() {
  #ifdef DEBUG
    Serial.begin(115200);
  #endif
  
  configurarPinos();
  ininializarEEPROM();
  lerDadosMQTTEEMPROM();
  InicializarWiFi();
}

void loop() {
  lerSensorTensao();
  ConexaoWiFi();
  ConexaoMQTTfuncao();
  botaoConfiguracao();
  atualizarLedStatus();
  delay(10);
}
Conectando ao WiFi e MQTT

LED status pisca uma vez quando desconectado do WiFi e duas vezes quando desconectado do MQTT.

1 - Aperte o BOTAO_AP do esquemático da figura abaixo por 5 segundos.
2 - O LED status ficara permanentemente acesso, solte o botão.
3 - O ESP ira gerar uma rede WiFi Detector-tensao conecte a ela com a senha 12345678.
4 - Abra o browser e digite o IP 192.168.4.1
5 - Clique em configure WiFi.
6 - Entre com os dados.

Entidades home assistant

Realizar leitura analógica:
Atualiza o valor leitura analógica para facilitar os ajustes

Energia da concessionaria:
Detectado significa energia presente.
Não detectado significa que houve queda de energia

Leitura analógica:
Valor lido do modulo sensor de energia AC (varia de modulo para modulo)

Gatilho ausência:
Quando a leitura analógica cai abaixo desse valor a entidade energia da concessionaria vai para o estado não detectado

Gatilho presença:
Quando a leitura analógica fica acima desse valor a entidade energia da concessionaria vai para o estado detectado

Tempo atualização dados:
Tempo em que as entidades Sinal e Leitura analógica são enviados ao Home Assistant em segundos.

Tempo reconexão MQTT:
Depois de uma tentativa falha de conexao ao broker MQTT esse tempo será espera para uma nova tentativa de conexão.

Tempo reconexão WiFi:
Depois de uma tentativa falha de conexao ao WiFi esse tempo será espera para uma nova tentativa de conexão.

CRC memoria:
Estado dos dados armazenados na EEPROM, se houver dado corrompido essa entidade ficara com status problema, isso sempre irá ocorrer após gravar o firmware em um novo ESP, assim que informada a nova rede WiFi o erro ira desaparecer.

Status:
Essa variável nunca fica indisponível, depois que a placa é desenergizada ela irá para Offline e todas as outras variáveis ficarão indisponíveis.

Arquivos para impressao 3D (foram usados ima de neodimio 5x2mm para fixar a tampa a caixa) e o codigo para o arduino podem ser baixados aqui.

2 curtidas