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:
--LCD
--Arduino UNO
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?
Tags:
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.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por