2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Часто было бы интересно узнать текущее энергопотребление или общее энергопотребление вашего дома, чтобы ограничить ваши затраты на электроэнергию и защитить окружающую среду. На самом деле это не проблема, потому что в большинстве случаев вы найдете умный цифровой счетчик электроэнергии в своем монтажном шкафу. Здесь, в Германии, вы часто найдете в своем шкафу DZ541 от Holley Tech из Китая. Этот счетчик оснащен оптическим инфракрасным интерфейсом и интерфейсом RS485 для распределения собранных данных по так называемому протоколу SML. В этом проекте мы будем использовать интерфейс RS485 для подключения Arduino к счетчику и считывать значения общей потребляемой мощности и реальной мощности.
Шаг 1: Подключение RS485
Чтобы подключить Arduino к счетчику через RS485, я использовал наш экран Arduino RS485 с изолированным интерфейсом. Клеммы RS485 счетчика защищены пластиковой крышкой. Эта крышка обычно закрывается пломбой. Не открывайте эту крышку самостоятельно. Это может быть опасно, а сломанная пломба может стать причиной множества проблем с вашим поставщиком энергии. Лучше всего обратиться за помощью к электрику. Он может подключить кабель к клеммам RS485 счетчика и восстановить пломбу.
Теперь вы можете соединить клеммы A и B измерителя с клеммами A и B экрана.
Шаг 2: Установка перемычки и DIP-переключателя
Экран RS485 оснащен некоторыми перемычками и DIP-переключателями для настройки. Установите DIP-переключатели следующим образом: SW1 - ON, OFF, OFF, OFF (приемник всегда включен) SW2 - OFF, OFF, ON, ON (режим RS485) SW3 - ON, OFF, OFF, OFF (согласующий резистор включен.) Необходимо установить только две перемычки: JP1 на 5 В для Arduino UNO и вторая перемычка в положении RX - 2.
Шаг 3: Код
Мы используем UART для отладки и программирования. Счетчик подключается через порт D2 и программный UART через 9600 бод (8N1). Счетчик постоянно отправляет данные. Программа ищет специальные последовательности байтов в потоке данных, чтобы найти интересные пакеты данных. Для других счетчиков может потребоваться отредактировать последовательности байтов или расстояние между последовательностями байтов (заголовков) и интересующими данными. Декодированные значения общей потребляемой мощности и реальной мощности будут отображаться в окне терминала Arduino IDE.