Arduino:
การทำงานกับ JSON

วิธีการ:

เพื่อใช้งาน JSON ใน Arduino, ไลบรารี ArduinoJson เป็นทางเลือกยอดนิยมเนื่องจากความสะดวกในการใช้งานและประสิทธิภาพ มันช่วยให้สามารถการวิเคราะห์สตริง JSON, การแก้ไขพวกมัน, และการซีเรียลสตริงออบเจกต์กลับเป็นสตริง JSON นี่คือวิธีการใช้งาน:

  1. ติดตั้งไลบรารี ArduinoJson: ใช้ Library Manager ใน Arduino IDE และติดตั้ง “ArduinoJson”

  2. Deserialize สตริง JSON: นี่คือวิธีการวิเคราะห์สตริง JSON และดึงค่าออกมา

#include <ArduinoJson.h>

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

void setup() {
  Serial.begin(9600);
  StaticJsonDocument<200> doc; // ปรับขนาดตามเอกสาร JSON
  DeserializationError error = deserializeJson(doc, json);

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

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

void loop() {
  // ลูปว่าง
}

ผลลัพธ์ตัวอย่าง:

gps
1351824120
48.756080
2.302038
  1. Serialize สู่สตริง JSON: นี่คือวิธีการสร้างสตริง JSON จากข้อมูล
#include <ArduinoJson.h>

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

  StaticJsonDocument<200> doc; // ปรับขนาดตามข้อมูล
  doc["sensor"] = "gps";
  doc["time"] = 1351824120;
  JsonArray data = doc.createNestedArray("data");
  data.add(48.756080);
  data.add(2.302038);

  serializeJson(doc, Serial);
}

void loop() {
  // ลูปว่าง
}

ผลลัพธ์ตัวอย่าง (จัดรูปแบบเพื่อความง่ายต่อการอ่าน):

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

การใช้ไลบรารี ArduinoJson อย่างมีประสิทธิภาพช่วยให้โปรเจกต์ Arduino สามารถสื่อสารโครงสร้างข้อมูลที่ซับซ้อนในรูปแบบที่อ่านได้ง่ายโดยมนุษย์ ซึ่งส่งเสริมการพัฒนาและการรวมตัวกับบริการเว็บ