#include <ArduinoJson.h>
#define DATA_LENGTH 25
// Struktur untuk menyimpan data suhu dan waktu
struct TemperatureData {
float temperature;
float humidity;
char time[19];
};
JsonDocument doc; // Ukuran buffer JSON
// Array untuk menyimpan data suhu dan waktu
TemperatureData data[DATA_LENGTH];
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
addData(1.1, 1.2, "2024-09-01T12:23:11");
for (int i = 0; i < DATA_LENGTH; i++) {
// Serial.printf("%s - %4.2f - %4.2f\r\n", data[i].time, data[i].temperature, data[i].humidity);
addData(i, i + 0.2, "2024-09-01T12:23:11");
}
arrayToJson();
}
void loop() {
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
}
// Fungsi untuk menambahkan data suhu dan waktu baru
void addData(float temperature, float humidity, char * time) {
// Geser seluruh array ke kiri
for (int i = 0; i < DATA_LENGTH - 1; i++) {
data[i] = data[i + 1];
}
// Tambahkan data baru di indeks terakhir
data[DATA_LENGTH - 1].temperature = temperature;
strcpy(data[DATA_LENGTH - 1].time, time);
data[DATA_LENGTH - 1].humidity = humidity;
}
// Fungsi untuk mengonversi array data ke JSON
void arrayToJson() {
// Mulai membuat dokumen JSON
doc.clear();
JsonArray dataArray = doc.to<JsonArray>();
// Tambahkan data dari array ke JSON
for (int i = 0; i < DATA_LENGTH; i++) {
JsonObject dataObj = dataArray.createNestedObject();
dataObj["temperature"] = data[i].temperature;
dataObj["humidity"] = data[i].humidity;
dataObj["time"] = data[i].time;
}
// Serialize JSON ke Serial
// serializeJson(doc, Serial);
char output[2000];
doc.shrinkToFit(); // optional
serializeJson(doc, output);
Serial.println(output);
}