2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Freqüentemente, seria interessante saber o consumo de energia atual ou o consumo total de energia de sua casa para limitar seus custos com eletricidade e proteger o meio ambiente. Isso não é realmente um problema, porque principalmente você encontrará um medidor de eletricidade digital inteligente em seu gabinete de instalação. Aqui na Alemanha você encontrará, neste caso, muitas vezes o DZ541 da Holley Tech da China em seu gabinete. Este medidor está equipado com uma interface infravermelha óptica e uma interface RS485 para distribuir os dados coletados através do chamado protocolo SML. Neste projeto, usaremos a interface RS485 para conectar um Arduino ao medidor e ler os valores de consumo total de energia e energia real.
Etapa 1: Conexão RS485
Para conectar o Arduino ao medidor via RS485, usei nosso escudo Arduino RS485 com interface isolada. Os terminais para RS485 do medidor são protegidos por uma tampa de plástico. Essa tampa geralmente é travada por um lacre. Não abra esta tampa sozinho. Pode ser perigoso e um selo quebrado pode ser o motivo de muitos problemas com seu fornecedor de energia. A melhor maneira é pedir ajuda a um eletricista. Ele pode conectar o cabo aos terminais RS485 do medidor e recuperar o selo.
Agora você pode conectar os terminais A e B do medidor com os terminais A e B da blindagem.
Etapa 2: configuração de jumper e chave DIP
A blindagem RS485 é equipada com alguns jumpers e chaves DIP para configuração. Defina os interruptores DIP da seguinte maneira: SW1 - LIGADO, DESLIGADO, DESLIGADO, DESLIGADO (receptor sempre ligado) SW2 - DESLIGADO, DESLIGADO, LIGADO, LIGADO (modo RS485) SW3 - LIGADO, DESLIGADO, DESLIGADO, DESLIGADO (resistor de terminação ligado) Apenas dois jumper devem ser configurados: JP1 a 5V para Arduino UNO e um segundo jumper na posição RX-2
Etapa 3: Código
Estamos usando o UART para depuração e programação. O medidor é conectado via porta D2 e um software UART via 9600 Baud (8N1). O medidor está enviando dados continuamente. O programa está procurando sequências de bytes especiais no fluxo de dados para encontrar os pacotes de dados interessantes. Para outros medidores, pode ser necessário editar as sequências de bytes ou a distância entre as sequências de bytes (cabeçalho) e os dados interessantes. Os valores decodificados para consumo total de energia e energia real serão exibidos na janela do terminal do IDE do Arduino.