#include <avr/pgmspace.h>
#include <stdio.h>
#include <string.h>
#define BUFFER_SIZE 256
// Flash-Speicher Formatstring
const char TFA3294_FormatInflux[] PROGMEM =
"TFAOutDoor,sensor_id=%02X temperature_C=%s,humidity=%d,dewpoint_c=%s,battery_low=%d,pressure=%s";
String formatSensorData(unsigned int id, const char *tstr, int humidity, const char *tpstr,
int battery_low, const char *pressure) {
char FormatStrbuffer[BUFFER_SIZE];
char strInflux[BUFFER_SIZE];
// Lade das Format-Template aus PROGMEM in den RAM
strcpy_P(FormatStrbuffer, TFA3294_FormatInflux);
// Fülle den String mit den Werten
snprintf(strInflux, sizeof(strInflux), FormatStrbuffer,
id, tstr, humidity, tpstr, battery_low, pressure);
// Ausgabe zur Überprüfung
return(strInflux);
}
void setup() {
//char str[30];
Serial.begin(115200);
}
void loop() {
unsigned int id = 0x1A; // Beispiel für Hexadezimal-ID
const char *tstr = "23.5";
int humidity = 55;
const char *tpstr = "18.0";
int battery_low = 0;
const char *pressure = "1013.0";
String data = formatSensorData(id, tstr, humidity, tpstr, battery_low, pressure);
Serial.println(data);
}