Configurar um Medidor de Energia PZEM-004T + ESP8266

Para quem quiser configurar um medidor de Energia PZEM-004T usando Tasmota com uma placa ESP8266 (NodeMcu) sem ter a necessidade de soldar, de uma forma simples e prática, siga este tutorial.

Do que você irá precisar?

  • Módulo PZEM004T (100A) - (Neste tutorial foi utilizado a V3)
  • NodeMcu v3 (e um cabo microUSB -> USB para conectar no PC)
  • Jumpers (femea/femea10CM ou maior caso seja sua necessidade)
  • Download do ESPHome-Flasher e do arquivo .bin do Tasmota.

O módulo PZEM004T (100A) - V3


Com esse módulo é possível realizar todas medições citadas abaixo. Além disso, estão disponíveis algumas funções para estabelecermos alarmes de consumo e totalizadores.
Com o PZEM é possível medir até 100 Amperes, ou seja se você deseja medir o consumo total da sua residência, pode por exemplo colocar a bobina do PZEM no fio da fase do disjuntor geral. Se sua rede de energia elétrica for Bifásica você precisará de 2 PZEM’s e se for Trifásica você precisará de 3 PZEM’s.

Vejamos algumas medidas realizadas e suas especificações:

  • Potência: 0 ~ 22 kW
  • Energia: 0 ~ 9999 kWh
  • Tensão: 80 ~ 260 VAC
  • Corrente: 0 ~ 100 A

:rotating_light: ATENÇÃO :rotating_light:
Não mexa na sua rede elétrica sem conhecimento, contrate um profissional, a não ser que você seja um. É altamente perigoso se você não tem conhecimento necessário.

A ligação

Resumindo a ligação ficará assim:

  • TX (pzem) no D2 (GPIO4)
  • RX (pzem) no D1 (GPIO5)
  • 5v (pzem) no VU (Pode ser utilizado o VIN também)
  • GND (pzem) no GND ou G (pode ser qualquer um)

NodeMcu Esp8266 Módulo Wifi

No Mercado Livre você encontra por aproximadamente R$ 20,00 + R$ 10,00 de frete. Dependendo da quantidade você pode até ganhar frete grátis.

Pode ser tanto o modelo Amica quanto o LoLin. Neste tutorial vamos usar o LoLin, mas não muda nada em relação a configuração com o modelo o Amica.

Você precisará de um cabo microUSB -> USB para conectar seu ESP em seu computador e aplicar o firmware Tasmota.

Após conectar você deve usar o ESPHome-Flasher ou alguma outra ferramenta para aplicar o flash Tasmota em seu ESP.

Baixe o arquivo binário do Tasmota mais recente.

Eu utilizei o tasmota.bin v7.1.2 neste exemplo.

Agora basta aplicar o flash no seu ESP. Execute o ESPHome-Flasher, selecione a porta em que seu ESP está conectado (se não tem certeza, teste tirando e colocando novamente para verificar qual porta estará disponível) e em seguida pressione o botão Flash ESP.

O resultado deve ser algo semelhante a imagem abaixo, do contrário algo não funcionou como deveria.

Além disso, deve aparecer uma nova rede wifi (SSID) chamado tasmota-xxxx.
image

Conecte nesta rede, e logo em seguida você será redirecionado para a página de configuração do tasmota para conectar seu dispositivo na sua rede.

Preencha os dados do SSID (sua wifi) e Password (sua senha da sua rede wifi). Após isso clique em save, e em seguida irá reiniciar. Após reiniciar seu ESP, ele já estará conectado em sua rede, e com isso irá herdar um IP. Você pode verificar o novo IP e se necessário (recomendo) aplicar a reserva de IP via DHCP para seu dispositivo ter sempre o mesmo IP.

Com isso você conseguirá acessar via IP o seu ESP com tasmota através do seu navegador (Chrome, Firefox etc) e configurar as informações em seu dispositivo para conectar via MQTT por exemplo.

Se você não sabe configurar o tasmota, sugiro visualizar o seguinte artigo:

Coso contrário, você verá algo como na imagem abaixo:

Mais abaixo você pode aplicar o template que disponibilizo, que já ficará pronto com as configurações necessárias para poder medir a energia junto com o pzem.

  1. Acesse o menu Configure Other
    image

  2. E cole o template (código abaixo) no campo template
    image

  3. Template (código) para você copiar e aplicar:

{“NAME”:“PZEM-004”,“GPIO”:[255,255,255,255,98,62,255,255,255,255,255,255,255],“FLAG”:15,“BASE”:18}

Exemplo:

Após aplicar, você acabou de criar um novo template/módulo. Basta acessar o menu Configure Module e selecionar o novo módulo criado (Neste caso coloquei o nome de PZEM-004)

Conectando o PZEM com ESP

Jumpers

No MercadoLivre você encontra entre R$ 10,00 e R$ 30,00 dependendo da quantidade e tamanho.

PZEM

No PZEM você deve conectar a bobina caso ainda não esteja conectada, e consequentemente os jumpers.

ESP

Agora desconecte seu ESP do seu PC e conecte os jumpers no seu ESP, criando a ligação do PZEM + ESP.

Exemplo de como ficou a minha conexão

Agora é preciso alimentar o PZEM e o ESP para que ambos tenham energia.
Eu apenas peguei uma tomada, dois pedaçoes de fio e liguei no PZEM, e para o ESP peguei um cabo microUSB com uma tomada.

Resultado final

Após ligar na energia, deve ao menos mostrar a voltagem e a frequência.

Caso contrário, você pode ter invertido o RX com o TX. Você pode testar acessando o menu Configure Template e mudar o GPIO4 com o GPIO5.

Se ainda não funcionar, revise o tutorial e verifique se não esqueceu de nada. Verifique os jumpers não desconectaram, tente usar o VIm ao invés o UV para ligar no PZEM 5V.

Para um teste final, você deve pode pegar uma espécie de extensão, passar o fase dentro da bobina, e ligar algo na extensão como um secador.

Após concluir o projeto, coloquei em uma caixinha de impressora 3D.


A caixinha eu comprei com o o Ramon do canal no Youtube Alguma Coisa na Tecnologia. Muito bom por sinal.

Fiz isso para colocar na caixa de disjuntor extra que solicitei para construtora realizar no meu apartamento.

Espero que possa ter ajudado.

Home Assistant

Para configurar no Home Assistant, eu simplesmente habilitei o comando SetOption19 1 no console do dispositivo com tasmota.

Você também pode configurar de forma manual, e para isso sugiro acessar o site oficial do tasmota que explica como fazer isso.

Dica

Verifique a hora no console, caso esteja incorreta você pode corrigir de forma manual com o seguinte comando.

time hh mm ss

Substitua o HH pela hora atual, o mm pelos minutos atuais e o ss pelos segundos atuais. Exemplo: time 18 50 45 caso seja 18:50:45.

3 Curtidas

Excelente, @douglas!!

Bom dia,

Muito bom o tutorial.

Alguém pode me orientar de como fazer para enviar os dados lidos do pzem para um banco de dados mysql a cada 30 segundos.

Agradeço,

1 Curtida

Você precisa configurar o Recorder

Todos os detalhes encontram-se nesta página de como configurar para o tipo de BD que você deseja,

Neste tutorial abaixo, eu explico como configurar o Maria DB

2 Curtidas

Boa tarde Douglas,

Obrigado pelo retorno. Ativei o banco de dados MariaDB, funcionou beleza. Minha dúvida agora é como pegar uma informação do pzem e colocar no banco. Outra coisa este banco é interno do HA, como faço para conectar em um banco mysql por exemplo que esteja em um provedor?

Agradeço,

As informações do PZEM são sensores no HA. Os seus sensores já estão indo para o BD.

Também é possível colocar em BD em outro servidor, deve ser algo assim:

  db_url: mysql://*****:****@192.168.178.91:3306/ha?charset=utf8

Eu não sei exatamente, mas você pode consultar a página https://www.home-assistant.io/integrations/recorder#mariadb-and-mysql para mais detalhes.

1 Curtida

Douglas, posso usar 3 Pzem no mesmo NodeMCU?
Poderia me orientar caso seja possível os 3 no mesmo Node, tenho que usar dois pinos para cada Pzem (como foi feito o D1 e D2 no tutoriral)?

2 Curtidas

Também tenho essa dúvida. Caso não seja possível, eu conseguiria isso com algum outra placa?

1 Curtida