Estou fazendo um projeto de TCC que consiste em um medidor de energia ac com conexão remota e gravação de medições em um cartão SD. O projeto está andando bem, todos os componentes funcionam bem (com algumas limitações que não é necessário foco aqui). Porém estou com dificuldades em criar uma comunicação serial entre um arduino e um esp32.

Componentes:

--PZEM-004T

--LCD

--Conversor I2C para o LCD

--DataLogger

--Arduino UNO

--Esp32-ch340c-tipec

Ideia do funcionamento:

No momento o funcionamento é bem básico, o PZEM faz as medições, envia para o arduino, o arduino manda as medições para o LCD e o datalogger. Porém ainda preciso enviar uma medição específica (potência) para o ESP32 que vai enviar por Wifi para o aplicativo blynk que exibira um gráfico da potência no tempo.

No fim das contas a unica coisa que falta agora é descobrir como enviar uma variável float do arduino para o ESp32. Tentei até agora usar a biblioteca SoftwareSerial.h porém não tenho muito conhecimento sobre comunicação I2C.

Fiz uma simulação no tinkercad para testar o código:

O da direita representa o ESP32.

Código do arduino:ARD.ino

#include <SoftwareSerial.h>
SoftwareSerial ESP(3, 4);

float x = -3234.43;

void setup() {
   ESP.begin(9600);
}

void loop() {
   ESP.write(x);
   delay(1000);
}

----------------------------------------------

Código do ESP32:ESP.ino

#include <SoftwareSerial.h>
SoftwareSerial ARD(4, 3);

void setup() {
   Serial.begin(9600);
   ARD.begin(9600);
}

void loop() {
   if(ARD.available()>0){
   Serial.println(ARD.read());
}
}

----------------------------------------------

Saída serial do ESP32:

253

175

175

174

174

253

175

...

...

...

Basicamente o código manda o float -3234.43 do arduino para o ESP32 via o software serial. Acredito que este problema seja porque a comunicação I2C envia 1 byte por vez, mas não tenho certeza.

Alguém pode me ajudar?

Exibições: 501

Responder esta

Respostas a este tópico

Não liguem para o fio verde no pino 11, foi uma outra função que adicionei e esqueci de tira-lo.

Olá, Luan!

   Para facilitar a vida de todos nós, sugiro que você leia o tópico Sugestões de como "postar" no LdG por Rui Viana <- LINK.

   Principalmente a parte que diz para não postar o código na área do post.

   Se tivermos mais informações, e de forma adequada, poderemos ajudar mais e melhor.

Abração!

D. T. Ribeiro.

Luan, para o código, recomendo anexar o .ino (ou zip, se necessário).

Coloquei

Porquê você não usa somente e simplesmente o ESP32 e elimina essa gambiarra ? Lembrando que você pode usar a mesma IDE !

Da para usar o shield do datalogger no esp32?

Claro que sim... com a vantagem de ter Wi-Fi, Bluetooth, maior poder de  processamento, memória e varias outras vantagens. Siceramente, comecei com Arduino também, mas logo passei pra ESP8266 e em seguida para ESP32. Pense nessa possibilidade.

Bom dia, 

Informe qual é  shield do datalogger estará usando.

Poderemos dessa forma averiguar o funcionamento com o ESP32. 

Ola Luan

Eu tenho este projeto pronto, vou postar aqui, neste meu projeto usa o Esp32 lendo direto o Pzem004, e tambem um display oled, se nao precisar de mandar os dados para um Bando de Dados SQL como fiz é so mudar os codigos, para mais detalhes me avisa .

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço