Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Создание надежного монитора энергии и логгера данных на Arduino — пошаговое руководство

Компоненты и материалы

Dr. Wattson основан на чипе Microchip MCP39F521. Измеряет току до 4А (динамический диапазон 4000:1 — до 1 мА), изолирован через токо- и направочные трансформаторы. Доступен на Tindie.

О проекте

Устройство собирает данные о потреблении энергии подключенной нагрузки (ток, активная/реактивная/полная мощность, коэф. мощности, напряжение, частота) и пишет их в CSV-файлы на SD-карту. Кнопка включает/выключает логирование, светодиод показывает статус. Файлы ротируются: DATA00.CSV … DATA99.CSV — удобно для разделения замеров разных приборов.

Сборка и безопасность

Плата Dr. Wattson помещается в акриловый корпус с IEC-розеткой на входе и вилкой на выходе. Все силовой части изолированы. Цифровой выход (I2C) полностью гальванически разделен от сети — безопасно для Arduino.

Максимальный ток нагрузки — 12 А, калибровка — до 4 А (для точного измерения малых токов в режиме ожидания).

Схема подключения

Dr. WattsonArduino UNO
SCLA5
SDAA4
ZCD (Zero Cross Detect)Не используется
EventНе используется
GNDGND
VIN5V
3.3V3.3V
GND (второй)GND (любой)

MicroSD (SPI): CLK→D13, MISO→D12, MOSI→D11, CS→D10 (по умолчанию).

Кнопка: один вывод → D4, второй → GND. Используется внутренний pull-up, инверсная логика (нажатие = LOW). Библиотека Button (Jack Christensen) обеспечивает антидребезг.

Светодиод: анод → D9 через 220 Ом, катод → GND.

Скетч: ключевые моменты

Библиотеки: Wire.h, UpbeatLabs_MCP39F521.h (GitHub: upbeatlabs/drwattson), SD.h, Button.h.

Инициализация (setup):

pinMode(LED, OUTPUT);
pinMode(CHIP_SELECT, OUTPUT);
if (!SD.begin(CHIP_SELECT)) { /* ошибка */ }
wattson.begin(); // I2C адрес по умолчанию 0x74

// Поиск свободного имени файла DATAxx.CSV
char filename[] = "DATA00.CSV";
for (uint8_t i = 0; i < 100; i++) {
  filename[4] = i/10 + '0';
  filename[5] = i%10 + '0';
  if (!SD.exists(filename)) break;
}

Основной цикл (loop):

myBtn.read();
if (myBtn.wasReleased()) {
  readData = !readData;
  digitalWrite(LED, readData);
}

if (readData) {
  UpbeatLabs_MCP39F521_Data data;
  UpbeatLabs_MCP39F521_FormattedData fData;
  if (wattson.read(&data, NULL) == SUCCESS) {
    wattson.convertRawData(&data, &fData);
    unsigned long ms = millis();

    // Запись в CSV
    File dataFile = SD.open(filename, FILE_WRITE);
    if (dataFile) {
      dataFile.print(ms); dataFile.print(",");
      dataFile.print(fData.currentRMS); dataFile.print(",");
      dataFile.print(fData.activePower); dataFile.print(",");
      dataFile.print(fData.reactivePower); dataFile.print(",");
      dataFile.println(fData.apparentPower);
      dataFile.close();
    }

    // Вывод в терминал (с очисткой экрана ANSI)
    Serial.write("\x1B""c"); // работает в `screen`, не в Serial Monitor
    wattson.printMCP39F521Data(&fData);
  }
}

Для удобного просмотра в реальном времени используйте терминал screen (Linux/macOS): screen /dev/ttyUSB0 9600.

Анализ данных в Excel

CSV-файлы легко открываются в Excel / LibreOffice Calc. Добавьте заголовки:

timestamp, currentRMS, activePower, reactivePower, apparentPower

Пример графика для лампы CFL 14W (холодный/горячий пуск): ток пик 0.21А → стабилизация 0.18А; активная мощность 17Вт → 14.2Вт. После разогрева пуск происходит быстрее.

Заключение и перспективы

Dr. Wattson дает качественные энергоданные «из коробки» (калиброван), но открывает продвинутые функции:

Идеален для проектов умного дома, аудита энергопотребления, научных экспериментов. Библиотека и примеры на GitHub: upbeatlabs/drwattson.

Полный скетч

Приведен в разделе «Code» проекта (несколько сниппетов и полный файл).

Производственный процесс

  1. Облачная революция: как облачные вычисления трансформируют IT, безопасность и карьеры
  2. Мастерство превентивного обслуживания: Построение и оптимизация фиксированных и плавающих расписаний
  3. Построение вариационного автоэнкодера с TensorFlow: практическое руководство
  4. Логгер температуры и влажности на Arduino с DHT11 и Ethernet Shield
  5. Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2"
  6. Чтение температуры и влажности DHT11 через Blynk — пошаговый урок для Arduino
  7. Продвинутая система домашнего мониторинга на Arduino Mega с IoT-датчиками
  8. Построение надежного умного монитора энергии на Arduino UNO – Пошаговое руководство
  9. Продвинутый GPS-логгер данных: отслеживание полёта в реальном времени, пиковая высота и скорость
  10. Цифровой компас в реальном времени на Arduino и Processing