Il y a 9 heures
(Il y a 11 heures)Lolo69 a écrit : Programme simpliifé pour tester le JSY pour s'affranchir de tout le reste et faire plus facilement des modifs.Merci pour ce petit programme.
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
}
}
}
Comme je n'avais quasiment pas d'info dans le moniteur, j'ai rajouté des println par endroit.
Je me suis aperçu que je ne rentrais pas dans la boucle While et de plus la Led du JSY reste fixe.
Donc je vais attendre, je reçois l'adaptateur USB TTL demain normalement. Je contrôlerais le JSY demain soir.
Je vous remercie tous, Lolo69 et les autres, de votre contribution et je vous tiens au courant.