Il y a 7 heures
Programme simpliifé pour tester le JSY pour s'affranchir de tout le reste et faire plus facilement des modifs.
Code :
int baudrate = 4800; // Adapter le baudrate si nécessaire
#define RXD2 26 // (RX de l'ESP32 - connecté au TX du JSY)
#define TXD2 27 // (TX de l'ESP32 - connecté au TX du JSY)
// en laternative tester avec GPIO 16 ou 17 , sans oublier le cablage
#include <HardwareSerial.h>
HardwareSerial SerialJSY(2);
byte buffer[32];
int idx = 0;
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("Lecture tension JSY-MK-194T");
SerialJSY.begin(baudrate, SERIAL_8N1, RXD2, TXD2);
}
void loop() {
// Lire les octets reçus
while (SerialJSY.available()) {
byte b = SerialJSY.read();
if (idx < sizeof(buffer)) {
buffer[idx++] = b;
}
// Une trame JSY fait souvent 7 octets (Modbus)
if (idx >= 7) {
// Vérification basique : adresse = 0x01, fonction = 0x03
if (buffer[0] == 0x01 && buffer[1] == 0x03 && buffer[2] >= 2) {
// Lecture des 2 premiers octets de données
uint16_t rawU = (buffer[3] << 8) | buffer[4];
float tension = rawU / 10.0;
Serial.print("Tension mesurée : ");
Serial.print(tension);
Serial.println(" V");
} else {
Serial.print("Trame inconnue ou invalide : ");
for (int i = 0; i < idx; i++) {
Serial.print("0x");
if (buffer[i] < 0x10) Serial.print("0");
Serial.print(buffer[i], HEX);
Serial.print(" ");
}
Serial.println();
}
idx = 0; // Réinitialise le buffer pour la prochaine trame
}
}
}