Hallo zusammen.
Ich habe einen einfachen 433MHz Empfänger am UNO getestet, um diverse Temperatur-Sender von TFA-DOSTMANN zu empfangen. Das klappt auch am UNO hervorragend mit dem folgenden Code:
#include <tfa433.h> //TFA_433_Receiver_for_Dostmann_30.3208.02
TFA433 tfa = TFA433();
void setup() {
Serial.begin(115200);
tfa.start(2); //Input pin where 433 receiver is connected.
}
void loop() {
if (tfa.isDataAvailable()) {
// Pointer results:
// byte type = 0, id = 0, channel = 0, humidity = 0;
// bool battery = false;
// float temperature = 0;
// tfa.getData(type, id, battery, channel, temperature, humidity);
// char temperatureStr[5];
// dtostrf(temperature, 0, 1, temperatureStr);
// char txt[100];
// sprintf(txt, "type: %d, id: %d, battery: %s, channel: %d, temperature: %s C, humidity: %d%%", type, id, (battery ? "OK" : "NOK"), channel, temperatureStr, humidity);
// Serial.println(txt);
// Struct results:
tfaResult result = tfa.getData();
char temperatureStr[5];
result.temperature = ((result.temperature-32)*5)/9;
dtostrf(result.temperature, 0, 1, temperatureStr);
char txt[100];
sprintf(txt, "type: %d, id: %d, battery: %s, channel: %d, temperature: %s C, humidity: %d%%", result.type, result.id, (result.battery ? "OK" : "NOK"), result.channel, temperatureStr, result.humidity);
Serial.println(txt);
}
}
Jetzt möchte ich das ganze mit einem WEMOS D1 mini machen, da ich die Werte gerne per WLAN an meine Homematic schicken möchte. Leider kommen da Fehlermeldungen, die ich nicht verstehe. Ich habe mit ChatGPT versucht dahinter zu kommen, was falschläuft, aber leider erfolglos.
Vielleicht kann mir hier jemand weiterhelfen?
Arduino: 1.8.19 (Linux), Board: "LOLIN(WEMOS) D1 R2 & mini, 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 4MB (FS:2MB OTA:~1019KB), v2 Lower Memory, Disabled, None, Only Sketch, 921600"
/home/XXXXX/Arduino/libraries/TFA433/tfa433.cpp: In static member function 'static void TFA433::_handler()':
/home/XXXXX/Arduino/libraries/TFA433/tfa433.cpp:96:35: error: invalid conversion from 'volatile byte*' {aka 'volatile unsigned char*'} to 'const byte*' {aka 'const unsigned char*'} [-fpermissive]
96 | byte calculated = _lfsr_digest8(_buff, _BUFF_SIZE-1, 0x98, 0x3e) ^ 0x64;
| ^~~~~
| |
| volatile byte* {aka volatile unsigned char*}
In file included from /home/XXXXX/Arduino/libraries/TFA433/tfa433.cpp:1:
/home/XXXXX/Arduino/libraries/TFA433/tfa433.h:63:40: note: initializing argument 1 of 'static byte TFA433::_lfsr_digest8(const byte*, unsigned int, byte, byte)'
63 | static byte _lfsr_digest8(byte const message[], unsigned n, byte gen, byte key);
| ~~~~~~~~~~~^~~~~~~~~
Mehrere Bibliotheken wurden für "tfa433.h" gefunden
Benutzt: /home/XXXXX/Arduino/libraries/TFA433
Nicht benutzt: /home/XXXXX/Arduino/libraries/TFA_433_Receiver_for_Dostmann_30.3208.02
exit status 1
Fehler beim Kompilieren für das Board LOLIN(WEMOS) D1 R2 & mini.
Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.