Use your Arduino to receive temperature and humidity data from the TFA Dostmann 30.3208 remote sensor using a 433 MHz receiver.
This library is based on a fork of d10i's original code.
It may also work with the following devices (not tested):
- Ambient Weather F007TH Thermo-Hygrometer
- Ambient Weather F012TH Indoor/Display Thermo-Hygrometer
- SwitchDoc Labs F016TH
-
Interrupt Optimization: The checksum calculation was removed from the interrupt service routine because it triggered the interrupt watchdog timer on ESP32 platforms. Instead, the checksum is now verified inside the
loop()using thereceiver.checkBuf();function. Make sure to call this in yourloop()function. -
Cross-Platform Compatibility: Fixed a compilation issue on non-AVR (non-Atmel) platforms:
invalid conversion from 'volatile byte*' to 'const byte*' [-fpermissive] byte calculated = _lfsr_digest8(_buff, _BUFF_SIZE-1, 0x98, 0x3e) ^ 0x64; -
Temperature Unit Selection: Added
receiver.setTemperatureUnit(bool useCelsius);You can choose the temperature unit:receiver.setTemperatureUnit(true);→ Celsius (default)receiver.setTemperatureUnit(false);→ Fahrenheit- If not set, Celsius is used by default.
I have created an improved version of this project which avoids decoding signals inside the ISR.
This makes the code more robust and stable, especially on ESP devices.
👉 Check it out here:
433MHz-TFA-GT-Receiver
GitHub Repository: https://github.com/Spb2005/TFAReceiver
Any standard 433 MHz receiver module should work.
Make sure to connect the receiver to an interrupt-capable pin:
- On Arduino Uno/Nano: use D2 or D3
A working example is available in the examples/ directory.
It shows how to receive and read sensor data using this library.
This library is a modified version of the one by d10i, which itself was inspired by:
- denxhun/TFA433: for README format and general library interface structure.
- robwlakes/ArduinoWeatherOS: for the receiving logic.
- merbanan/rtl_433: for decoding and packet structure information.