diff --git a/ampel-firmware.ino b/ampel-firmware.ino
index a903956e74a0b20412224bd319747a8798d8f2c2..cfa4a2cb7bcfd5360dc0391061da875518f2fb53 100644
--- a/ampel-firmware.ino
+++ b/ampel-firmware.ino
@@ -142,7 +142,7 @@ void loop() {
 #endif
 
 #if defined(LORAWAN) && defined(ESP32)
-    lorawan::preparePayloadIfTimehasCome();
+    lorawan::preparePayloadIfTimeHasCome(sensor::co2, sensor::temperature, sensor::humidity);
 #endif
   }
 
diff --git a/lorawan.cpp b/lorawan.cpp
index 1840727aaba197ec3c01b2e868f5856f7c047dfd..9bf74769f3ad1f74ad42d5a0d1114e5357554683 100644
--- a/lorawan.cpp
+++ b/lorawan.cpp
@@ -143,18 +143,18 @@ namespace lorawan {
     }
   }
 
-  void preparePayload() {
+  void preparePayload(int16_t co2, float temperature, float humidity) {
     // Check if there is not a current TX/RX job running
     if (LMIC.opmode & OP_TXRXPEND) {
       Serial.println(F("OP_TXRXPEND, not sending"));
     } else {
       uint8_t buff[3];
       // Mapping CO2 from 0ppm to 5100ppm to [0, 255], with 20ppm increments.
-      buff[0] = (util::min(util::max(sensor::co2, 0), 5100) + 10) / 20;
+      buff[0] = (util::min(util::max(co2, 0), 5100) + 10) / 20;
       // Mapping temperatures from [-10°C, 41°C] to [0, 255], with 0.2°C increment
-      buff[1] = static_cast<uint8_t>((util::min(util::max(sensor::temperature, -10), 41) + 10.1f) * 5);
+      buff[1] = static_cast<uint8_t>((util::min(util::max(temperature, -10), 41) + 10.1f) * 5);
       // Mapping humidity from [0%, 100%] to [0, 200], with 0.5°C increment (0.4°C would also be possible)
-      buff[2] = static_cast<uint8_t>(util::min(util::max(sensor::humidity, 0) + 0.25f, 100) * 2);
+      buff[2] = static_cast<uint8_t>(util::min(util::max(humidity, 0) + 0.25f, 100) * 2);
 
       Serial.print(F("LoRa - Payload : '"));
       printHex2(buff[0]);
@@ -183,12 +183,12 @@ namespace lorawan {
     }
   }
 
-  void preparePayloadIfTimehasCome() {
+  void preparePayloadIfTimeHasCome(int16_t co2, float temperature, float humidity) {
     static unsigned long last_sent_at = 0;
     unsigned long now = seconds();
     if (now - last_sent_at > config::lorawan_sending_interval) {
       last_sent_at = now;
-      preparePayload();
+      preparePayload(co2, temperature, humidity);
     }
   }
 }
diff --git a/lorawan.h b/lorawan.h
index 8296260c068bb878f11f19c36bfe7d4e315b9244..c6da1e7e7584b582d8004543ecf341c8ba85a193 100644
--- a/lorawan.h
+++ b/lorawan.h
@@ -9,7 +9,6 @@
 #include <arduino_lmic_hal_boards.h>
 #include <SPI.h>
 
-#include "co2_sensor.h"
 #include "led_effects.h"
 #include "config.h"
 
@@ -41,7 +40,7 @@ namespace lorawan {
   extern String last_transmission;
   void initialize();
   void process();
-  void preparePayloadIfTimehasCome();
+  void preparePayloadIfTimeHasCome(int16_t co2, float temp, float hum);
 }
 
 #endif