Este repositório contém o código-fonte de um controlador de energia WiFi.
O hardware consiste em (a maioria dos componentes pode ser facilmente substituída e alguns são excessivos para aplicações de corrente mais baixa):
Uma caixa de proteção é um bom recinto.
Tenha cuidado ao solicitar um ACS712 da Banggood.com, meus sensores 20A foram entregues com terminais classificados para apenas 10A.
R1 e R2 devem ser escolhidos para reduzir a saída de 5V do ACS712 para a gama de 3,3V legível pelas entradas analógicas do M0 (por exemplo, R1 deve ser aproximadamente o dobro do valor de R2).
Escrito usando Arduino usando as bibliotecas Wifi101 e ArduinoJson. O SSID e a senha do Wifi devem ser adicionados a secrets.h. serverAddress
e port
devem ser atualizados para o endereço do servidor.
Coleta leituras dos controladores e as armazena em um banco de dados MySQL. Também fornece uma API REST para o cliente.
Para começar:
.env
e defina MYSQL_USERNAME
, MYSQL_PASSWORD
e MYSQL_DB
.npm install
npm run dev
controllers
para definir o fator de conversão. O fator de conversão é multiplicado pelo valor lido pelo controlador para obter uma leitura em miliamperes. Reinicie o servidor após configurar a alteração do banco de dados para fazer o servidor ler as alterações.Por exemplo se utilizar o 20A ACS712 1A de corrente resulta em 100mV de saída.
Se R1 for 10kΩ e R2 for 20kΩ, isso se traduz em saída de 67mV ( 20/(20+10)*100
) do divisor de tensão.
A entrada para M0 é de 12 bits, portanto varia de 0 a 4095 para 0 a 3,3 V.
O fator de conversão pode, portanto, ser calculado como:
c = 3.3 / S * (R1 + R2) / R2 / 4096 * 1000
onde S
é a sensibilidade do ACS712 em Volts por Amp.
Neste exemplo:
c = 3.3 / 0.1 * (10 + 20) / 20 / 4096 * 1000
c = 12.85
Usa a API REST do servidor para definir agendamentos e mostrar o uso de energia.
Para começar:
npm install
npm run serve