// The Uart Json Chip parses and responds with the valid json it detects.
// https://github.com/nosknut/rust_chip_inverter/tree/json-chip

#include <ArduinoJson.h>

void sendJson() {
    DynamicJsonDocument jsonDoc(500);

    jsonDoc["sender"] = "themometer";
    jsonDoc["receiver"] = "webserver";
    jsonDoc["topic"] = "thermometer-sensor-data";
    jsonDoc["temperature"] = 2;

    // The chip is able to filter out invalid data
    String jsonText = "";
    serializeJson(jsonDoc, jsonText);
    serializeJson(jsonDoc, jsonText);
    serializeJson(jsonDoc, jsonText);
    serializeJson(jsonDoc, jsonText);
    serializeJson(jsonDoc, jsonText);
    serializeJson(jsonDoc, jsonText);
    serializeJson(jsonDoc, jsonText);
    
    Serial1.print(jsonText);
}

void setup()
{
    Serial.begin(115200);
    Serial1.begin(115200);

    sendJson();
}

void readSerial()
{
    if (Serial1.available() > 0)
    {
        Serial.write((char)Serial1.read());
        return;
    }
}

void loop()
{
    readSerial();
}
Loading chip...chip-uart-json