Ce référentiel contient le code source d'un contrôleur de puissance WiFi.
Le matériel se compose de (la plupart des composants peuvent être facilement remplacés et certains sont excessifs pour des applications à faible courant) :
Une boîte à pattress constitue un bon enclos.
Soyez prudent si vous commandez un ACS712 sur Banggood.com, mes capteurs 20A ont été livrés avec des bornes évaluées à seulement 10A.
R1 et R2 doivent être choisis pour réduire la sortie 5 V de l'ACS712 à la plage de 3,3 V lisible par les entrées analogiques du M0 (par exemple, R1 doit être environ deux fois la valeur de R2).
Écrit avec Arduino en utilisant les bibliothèques Wifi101 et ArduinoJson. Le SSID Wifi et le mot de passe doivent être ajoutés à secrets.h. serverAddress
et port
doivent être mis à jour avec l'adresse du serveur.
Collecte les lectures des contrôleurs et les stocke dans une base de données MySQL. Fournit également une API REST pour le client.
Pour commencer :
.env
et définissez MYSQL_USERNAME
, MYSQL_PASSWORD
et MYSQL_DB
.npm install
npm run dev
controllers
pour définir le facteur de conversion. Le facteur de conversion est multiplié par la valeur lue par le contrôleur pour donner une lecture en milliampères. Redémarrez le serveur après avoir modifié la base de données pour que le serveur lise les modifications.Par exemple, si vous utilisez le 20A ACS712, 1A de courant donne 100mV de sortie.
Si R1 est de 10 kΩ et R2 est de 20 kΩ, cela se traduit par une sortie de 67 mV ( 20/(20+10)*100
) du diviseur de tension.
L'entrée du M0 est de 12 bits, elle va donc de 0 à 4095 pour 0 à 3,3 V.
Le facteur de conversion peut donc être calculé comme suit :
c = 3.3 / S * (R1 + R2) / R2 / 4096 * 1000
où S
est la sensibilité de l'ACS712 en volts par ampère.
Dans cet exemple :
c = 3.3 / 0.1 * (10 + 20) / 20 / 4096 * 1000
c = 12.85
Utilise l'API REST du serveur pour définir des planifications et afficher la consommation d'énergie.
Pour commencer :
npm install
npm run serve