Este repositorio contiene el código fuente de un controlador de energía WiFi.
El hardware consta de (la mayoría de los componentes se pueden sustituir fácilmente y algunos son excesivos para aplicaciones de baja corriente):
Una caja de patrón es un buen recinto.
Tenga cuidado si solicita un ACS712 en Banggood.com, mis sensores de 20 A se entregaron con terminales clasificados para solo 10 A.
Se deben elegir R1 y R2 para reducir la salida de 5 V del ACS712 al rango de 3,3 V legible por las entradas analógicas del M0 (por ejemplo, R1 debe ser aproximadamente el doble del valor de R2).
Escrito usando Arduino usando las bibliotecas Wifi101 y ArduinoJson. El SSID y la contraseña de Wifi deben agregarse a secrets.h. serverAddress
y port
deben actualizarse a la dirección del servidor.
Recopila lecturas de los controladores y las almacena en una base de datos MySQL. También proporciona una API REST para el cliente.
Para empezar:
.env
y configure MYSQL_USERNAME
, MYSQL_PASSWORD
y MYSQL_DB
.npm install
npm run dev
controllers
para configurar el factor de conversión. El factor de conversión se multiplica por el valor leído por el controlador para dar una lectura en miliamperios. Reinicie el servidor después de configurar la modificación de la base de datos para que el servidor lea los cambios.Por ejemplo, si se utiliza el ACS712 de 20 A, 1 A de corriente da como resultado 100 mV de salida.
Si R1 es de 10 kΩ y R2 es de 20 kΩ, esto se traduce en una salida de 67 mV ( 20/(20+10)*100
) del divisor de voltaje.
La entrada al M0 es de 12 bits, por lo que varía de 0 a 4095 para 0 a 3,3 v.
Por tanto, el factor de conversión se puede calcular como:
c = 3.3 / S * (R1 + R2) / R2 / 4096 * 1000
donde S
es la sensibilidad del ACS712 en voltios por amperio.
En este ejemplo:
c = 3.3 / 0.1 * (10 + 20) / 20 / 4096 * 1000
c = 12.85
Utiliza la API REST del servidor para establecer horarios y mostrar el uso de energía.
Para empezar:
npm install
npm run serve