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.
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.