Arduino:
Arbeider med JSON

Hvordan:

For å jobbe med JSON i Arduino, er ArduinoJson-biblioteket et populært valg på grunn av dets brukervennlighet og effektivitet. Det tillater parsing av JSON-strenger, modifisering av dem, og serialisering av objekter tilbake til JSON-strenger. Her er hvordan du bruker det:

  1. Installer ArduinoJson-biblioteket: Bruk bibliotekbehandleren i Arduino IDE og installer “ArduinoJson”.

  2. Deserialisering av en JSON-streng: Her er hvordan du analyserer en JSON-streng og ekstraherer verdier.

#include <ArduinoJson.h>

const char* json = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}";

void setup() {
  Serial.begin(9600);
  StaticJsonDocument<200> doc; // Juster størrelse i henhold til JSON-dokumentet
  DeserializationError error = deserializeJson(doc, json);

  if (error) {
    Serial.print(F("deserializeJson() mislyktes: "));
    Serial.println(error.f_str());
    return;
  }

  const char* sensor = doc["sensor"]; // "gps"
  long time = doc["time"]; // 1351824120
  float breddegrad = doc["data"][0]; // 48.756080
  float lengdegrad = doc["data"][1]; // 2.302038
  
  Serial.println(sensor);
  Serial.println(time);
  Serial.println(breddegrad, 6);
  Serial.println(lengdegrad, 6);
}

void loop() {
  // Tom løkke
}

Eksempel på utdata:

gps
1351824120
48.756080
2.302038
  1. Serialisering til en JSON-streng: Her er hvordan du oppretter en JSON-streng fra data.
#include <ArduinoJson.h>

void setup() {
  Serial.begin(9600);

  StaticJsonDocument<200> doc; // Juster størrelse i henhold til data
  doc["sensor"] = "gps";
  doc["time"] = 1351824120;
  JsonArray data = doc.createNestedArray("data");
  data.add(48.756080);
  data.add(2.302038);

  serializeJson(doc, Serial);
}

void loop() {
  // Tom løkke
}

Eksempel på utdata (formatert for lesbarhet):

{"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]}

Bruken av ArduinoJson-biblioteket muliggjør effektivt at Arduino-prosjekter kan kommunisere komplekse datastrukturer i et menneskelesbart format, noe som letter utvikling og integrering med webtjenester.