Medidor Energia Datalogger com PZEM004T e NodeMCU-ESP12

Diário de Projeto de Medidor de Energia Elétrica e Consumo usando Módulos PZEM004T, Arduino UNOR3 e ESP8266.

Amigos, garajistas.

Criei esse tópico do Fórum pra ir postando dúvidas e progressos com esses carinhas aí citados no título.

E sim, estou usando isso pra um projeto de TCC.

Situação anterior:

1. Consegui conectar e ler um módulo PZEM004T por meio serial, usando sua própria biblioteca e pequenos ajustes no código exemplo em um Arduino UNO R3.

2. Consegui fazer a leitura dos mesmos dados lidos no MonitorSerial para um display LCD16x2, também com uso de biblioteca e por meio de conexão serial (tenho uma plaquinha de hardware pra isso, para economizar pinos).

3. Configurei um RTC (Real Time Clock) para sincronizar os valores lidos com a hora:min:seg aproximados em que aconteceram, permitindo assim construir curvas de carga de uma residência ou aparelho.

4. Consegui gravar os dados lidos num cartão SD, em modo .csv e consegui ler num "Excel da vida". O código de um exemplo permitia não só escrever dados como criar arquivos diferentes a cada desligamentos das placas, evitando assim que sobrescrevesse por cima de dados antigos. Ainda preciso descobrir se tem como continuar a escrever no mesmo arquivo, mas na linha onde parou (mas se as placas não perderem alimentação, esse não será um problema). E também criar um novo arquivo a cada 24h.

Aqui tem um resumo em vídeo.

Situação atual:

1. Quero fazer a mesma coisa, só que apenas usando o módulo NodeMCU ESP8266-12F. Já descobri blogs, postagens ou vídeos sobre isso, inclusive uns específicos usando o mesmo módulo PZEM. A versão ESP que estou usando é ESTA. Também tenho as versões ESP201 e ESP07 (esta sem PCI)

2. Já consegui usar a IDE para programar meu módulo ESP e ele está funcional.

3. Não tive sucesso em fazer um "HelloWorld" tentando carregar um pequeno script html para um PC (Windows 7) e nem para meu Celular Samsung (Android 7, v8.1). O ESP até fica visível como conexão, mas não carrega a página atrás do navegador. Não entendo muito desse negócio de TCP/IP, conexões Internet e programação de páginas, então vai demorar um pouco para descobrir o problema. Minha principal hipótese é que as portas estejam protegidas

4. Vou usar armazenamento de dados localmente (ainda preciso definir melhor isso) e transmitir em pacotes a cada 60s ou mais para um Broker (escolhi esse método por indicação dos amigos garajistas aqui e perceber que atende ao que preciso). Já estive olhando como funciona: alguns serviços, configurações e APPs Android, que citaram como melhores. Não preciso transmitir e interpretar exatamente o que tem no SD (isso será uma melhoria futura, com certeza, por poderá ficar tanto como backup quanto debug dos dados via navegador).

Se precisarem de mais informações até aqui, basta perguntarem, porque são muito blocos distintos de projeto e seria muita coisa linkar tudo aqui, agora.

Exibições: 5221

Anexos

Responder esta

Respostas a este tópico

Obrigado por avisar... José.

A internet aqui em casa está um lixo... mal consigo ler as mensagens, pode ter sido algum problema no upload ou gerou errado mesmo.

Vou postar os últimos arquivos de código que funcionaram até eu perceber o problema lá, tanto do Arduino quando do ESP.

Arduino (somente datalogger, esse código n apresentou problemas): 

https://github.com/gersonsena/NodeMCULolin_PZEM004t_Meter/blob/mast...

ESP:

 https://github.com/gersonsena/NodeMCULolin_PZEM004t_Meter/commit/4a...

ESP + Blynk:

 https://github.com/gersonsena/NodeMCULolin_PZEM004t_Meter/blob/mast...

Bom dia, 

Nessa montagem esta usando NodeMCU ESP8266, RTC DS1307 (muito impreciso), um display LCD I2C e um modulo SD Card. Não é ?

ESP:

 https://github.com/gersonsena/NodeMCULolin_PZEM004t_Meter/commit/4a...

O Node MCU usa níveis de 3,3V. 

No RTC DS1307 esta usando 3,3 V?

O display LCD I2C usa 5V .

http://blog.eletrogate.com/guia-completo-do-display-lcd-arduino/

O SD Card deve ser usado com 3,3V (dependendo do modelo do módulo, ele já tem um regulador de 3,3V ) Qual é o seu módulo? Envie link e fotos. 

Como fez todas elas ligações ?? Não pode ligar LCD de 5V diretamente no barramento I2C 3,3V ! Tem que fazer adaptações. 

Bom dia, José


Bem, falando do NodeMCU:

Meu módulo é um DS3231 (sim, ele tem a opção de 3,3V).

O LCD estou usando um módulo PCF8574T, mas ainda assim tanto o SD card, como esse PCF quanto o DS eu estou usando alimentação separada para os três. Tenho um barramento 3,3V e 5,0V nessa fonte... eu olhei no osciloscópio e a fonte não tem problemas de sinal, e também tem capacidade para 1A.

Tanto o PCF quando o DS estão no barramento I2C, já o SD está no barramento próprio dele (pinos D5 ao D8).

Obrigado pelas contribuições... sinto neste momento deixar ter tão poucas informações visuais sobre o trabalho.

Nos anexos do meu TCC (versão prévia, que já corrigi muitas coisas pra versão final) tem algumas imagens e esquemáticos... por hora é o único material que tenho.

Detalhe esquemático das modificações realizadas no módulo do pzem:

Detalhe da ligação no NodeMCU (com a ressalva de que a alimentação do módulo pzem não está no ponto mostrado, mas numa fonte externa):



Detalhe da solda do resistor:

Não pode ligar LCD I2C de 5V diretamente no barramento I2C 3,3V ! Tem que fazer adaptações. 

O DS3231 I2C esta sendo usado com 3,3V não é ?

Talvez seja mais fácil, usar o LCD I2C com 5V, o DS3231 com 5V e interfacear o ESP8266 (3,3V) com conversor de sinais digitais . 

Olha, eu tentei de todos os modos... numa dessas pode ser que me perdi no meio de tantos fios... kkkk

Outro dia tive problemas que o node não reiniciava depois de desligado e nem após reset, e era um curto da minha fonte externa com a USB (nos pinos vin é gnd)...

Sim, tenho usado o DS3231 com 3,3v... e também fiz testes com o módulo PCF desligado da fonte (mas acho que não dos pinos i2c).

Eu consegui fazer um funcionar um relógio por ntp do próprio blynk, então agora vou testar tudo que já fiz e não deu certo cuidando o que tu citou, e também com essa nova versão de relógio pela web.

Obrigado pela força de sempre.

Se quer um projeto adequado, primeiro passo é documentar o diagrama ! 

Não dá para ficar improvisando... Vai acabar queimando algo. E depois nem vai se lembrar do que já fez. 

Eu uso esse programa é que é de graça.

https://www.expresspcb.com/

Esse programa é para fazer diagramas eletrônicos :

https://www.expresspcb.com/expresssch/

Sábias palavras... não é que eu já não soubesse, mas a gente vai juntando um bloco aqui, testando outro ali e esquece de ir documentando as coisas (a final são apenas 3, 4 fios), e daqui a pouco tem uma teia de aranha que nem sabe mais por onde começa ou termina. É fácil errar. Felizmente ainda não queimei nada, mas contar com a sorte é complicado (cultura e hábitos que devem sempre mudar).

Obrigado pela contribuição... vou olhar esses aí. Eu estava desenhando algumas partes já no LTSpice (mas quando se trata de módulos prontos parece que o mais simples é usar figuras prontas e algum Visio da vida (apenas para fiação, ao menos).

Esse programa é super simples e eficiente para editar. 

Qualquer dúvida pode me perguntar. 

Abraços .

https://www.expresspcb.com/expresssch/

PROJETO CONCLUÍDO!!!

É com satisfação que informo da conclusão do meu projeto de TCC envolvendo o PZEM004T/ NodeMCU Lolin/ MQTT Blynk para um medidor de energia.

Principais figuras e códigos do projeto, bem como acesso ao texto integral do trabalho estão disponíveis na minha conta do GitHub (clicar aqui).


Parabéns !

Obrigado. E pela grande ajuda também. Ninguém se constrói sozinho.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço