Versuche das Daly BMS mit ESP32 und Arduino IDE auszulesen.
Zur RX/TX Verbindung habe ich einen Adum-1201 dazwischen geschaltet.
Bekomme bereits eine Antwort die aber leer ist.
Mein Sketsch:
[details="Zusammenfassung"]
Dieser Text wird ausgeblendet
[/details]
#define RX_PIN 16 // Ersetze 16 durch den tatsächlichen RX-Pin des ESP32
#define TX_PIN 17 // Ersetze 17 durch den tatsächlichen TX-Pin des ESP32
#include <HardwareSerial.h>
HardwareSerial mySerial(1); // UART1 verwenden
void setup() {
Serial.begin(115200); // Debugging
mySerial.begin(9600, SERIAL_8N1, RX_PIN, TX_PIN); // Daly BMS UART
Serial.println("Setup abgeschlossen");
}
//byte request[] = {0xA5, 0x80, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E}; // 0x1E = Prüfsumme
//mySerial.write(request, sizeof(request)); // Anfrage senden
// Prüfsumme berechnen
byte calculateChecksum(byte* data, int length) {
int sum = 0;
for (int i = 0; i < length - 1; i++) { // Prüfsumme selbst nicht einschließen
sum += data[i];
}
return sum & 0xFF; // Reduktion auf ein Byte
}
void loop() {
byte request[] = {0xA5, 0x80, 0x91, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
request[12] = calculateChecksum(request, sizeof(request)); // Prüfsumme hinzufügen
Serial.println("Anfrage wird gesendet:");
for (int i = 0; i < sizeof(request); i++) {
Serial.print(request[i], HEX);
Serial.print(" ");
}
Serial.println();
// Sende die Anfrage
mySerial.write(request, sizeof(request));
delay(2000); // Warte auf eine Antwort
}
Kann mir jemand noch in eine Richtung geben um den SOC, VOLT..... vollenz zu lesen?