Этот репозиторий содержит исходный код контроллера питания Wi-Fi.
Аппаратное обеспечение состоит из (большинство компонентов можно легко заменить, а некоторые излишни для приложений с низким током):
Ящик для вещей станет хорошим ограждением.
Будьте осторожны при заказе ACS712 на Banggood.com: мои датчики на 20 А поставлялись с клеммами, рассчитанными только на 10 А.
R1 и R2 следует выбирать так, чтобы уменьшить выходное напряжение 5 В ACS712 до диапазона 3,3 В, считываемого аналоговыми входами M0 (например, значение R1 должно быть примерно в два раза больше значения R2).
Написано с использованием Arduino с использованием библиотек Wifi101 и ArduinoJson. SSID и пароль Wi-Fi должны быть добавлены в secrets.h. serverAddress
и port
должны быть обновлены до адреса сервера.
Собирает показания с контроллеров и сохраняет их в базе данных MySQL. Также предоставляет REST API для клиента.
Для начала:
.env
и установите MYSQL_USERNAME
, MYSQL_PASSWORD
и MYSQL_DB
.npm install
npm run dev
controllers
чтобы установить коэффициент преобразования. Коэффициент преобразования умножается на значение, считанное контроллером, чтобы получить показания в миллиамперах. Перезапустите сервер после настройки изменения базы данных, чтобы сервер прочитал изменения.Например, при использовании ACS712 на 20 А ток 1 А дает выходное напряжение 100 мВ.
Если сопротивление R1 равно 10 кОм, а сопротивление R2 равно 20 кОм, это соответствует выходному напряжению делителя напряжения 67 мВ ( 20/(20+10)*100
).
Входной сигнал M0 является 12-битным, поэтому находится в диапазоне от 0 до 4095 для напряжения 0–3,3 В.
Таким образом, коэффициент преобразования можно рассчитать как:
c = 3.3 / S * (R1 + R2) / R2 / 4096 * 1000
где S
— чувствительность ACS712 в Вольтах на Ампер.
В этом примере:
c = 3.3 / 0.1 * (10 + 20) / 20 / 4096 * 1000
c = 12.85
Использует REST API сервера для установки расписаний и отображения энергопотребления.
Для начала:
npm install
npm run serve