ESP8266 - Parsing Data JSON

 

JSON (JavaScript Object Notation) adalah format data populer yang digunakan dalam komunikasi web, termasuk dalam proyek IoT. Dalam proyek berbasis ESP8266, sering kali kita perlu mengambil dan membaca data dari server atau file lokal berformat JSON.

Pada artikel ini, kita akan membahas bagaimana mem-parsing data JSON menggunakan ESP8266 dan library ArduinoJson.

Alat dan Bahan

  • ESP8266 (NodeMCU / Wemos D1 Mini)
  • Kabel USB
  • Arduino IDE
  • Library ArduinoJson (Versi 6 atau terbaru)


Instalasi Library ArduinoJson

  • Buka Arduino IDE
  • Pergi ke Sketch > Include Library > Manage Libraries
  • Cari ArduinoJson (disini kita pakai versi 6)


Contoh Sumber Data JSON

Misal kita mendapatkan data dari API sebagai berikut:

{
  "sensor": "suhu",
  "value": 29.4,
  "unit": "C"
}

Kode Program


#include "arduinojson.h"

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

  const char* json = "{\"sensor\":\"suhu\", \"value\":29.4, \"unit\":\"C\"}";

 // Tentukan kapasitas dokumen (gunakan generator di https://arduinojson.org/v6/assistant/)
  StaticJsonDocument<96> doc;
  DeserializationError error = deserializeJson(doc, json);

  if (error) {
    Serial.print("Parsing gagal: ");
    Serial.println(error.c_str());
    return;
  }

  const char* sensor = doc["sensor"];
  float value = doc["value"];
  const char* unit = doc["unit"];

  Serial.print("Sensor: ");
  Serial.println(sensor);
  Serial.print("Value: ");
  Serial.println(value);
  Serial.print("Unit: ");
  Serial.println(unit);
}

void loop() {
}

Menggunakan ArduinoJson Assistant

Nilai 96 pada syntax "StaticJsonDocument<96> doc;" bisa kita dapatkan dengan menggunakan ArduinoJson Assistant:
 
  • Buka  https://arduinojson.org/v6/assistant/#/step1, lalu klik Next: JSON
 
  • Copykan Data JSON, klik Next:Size
 
  •  Lalu akan di dapatkan nilai dari Total (recomended)
 
 

Tips Penggunaan

  • Gunakan StaticJsonDocument jika tahu ukuran data.
  • Gunakan DynamicJsonDocument untuk data yang ukurannya tidak pasti.
  • Cek selalu hasil deserializeJson agar program tidak crash.

Penggunaan Umum

  • Menampilkan data cuaca dari API
  • Membaca konfigurasi dari file di SPIFFS
  • Parsing data dari perangkat lain via HTTP atau MQTT

Selamat mencoba...!
Selanjutnya
« Post Selanjutnya
Sebelumnya
Post Sebelumnya »

EmoticonEmoticon

Note: Only a member of this blog may post a comment.