#include "ArduinoJson.h"
bool commstatus = false;
bool rfid = false;
bool done = false;
uint16_t datas[2][16];
void ReadingEvent() {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 16; j++) {
datas[i][j] = random(0, 65535);
}
}
DynamicJsonDocument doc(JSON_OBJECT_SIZE(2) + 2 * JSON_ARRAY_SIZE(17));
JsonObject root = doc.to<JsonObject>();
root["event"] = "prox";
JsonArray data = root.createNestedArray("result");
for (int i = 0; i < 2; i++) {
JsonArray subArray = data.createNestedArray();
for (int j = 0; j < 16; j++) {
subArray.add(datas[i][j]);
}
}
// Serialize JSON ke string
String jsonString;
serializeJson(doc, jsonString);
// Tampilkan JSON di Serial Monitor
Serial.println(jsonString);
}
void RFIDEvent() {
if (!done) {
String data = "";
StaticJsonDocument<500> doc;
doc["event"] = "rfid";
doc["result"] = "0,Jhagas,SD Corp";
serializeJson(doc, data);
Serial.println(data);
done = true;
}
}
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(12, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
String command = Serial.readString();
command.trim();
if (command == "NYALAKAN") {
commstatus = true;
} else if (command == "MATIKAN") {
commstatus = false;
}
}
if (digitalRead(12) == LOW) {
rfid = !rfid;
done = false;
}
if (rfid) {
RFIDEvent();
}
if (commstatus) {
ReadingEvent();
digitalWrite(LED_BUILTIN, HIGH);
delay(2000);
} else {
digitalWrite(LED_BUILTIN, LOW);
}
delay(100);
}