همانطور که در مقاله قبلی بلوک انتقال داده JSON شرح داده شد، به نحوه استفاده از آن در کامپایلر آردینو خواهیم پرداخت .
دانلود و نصب کتابخانه JSON در آردوینو
برای نصب آردوینو را باز کنید، در قسمت SKetch و کتابخانه ها Manage Library را باز کنید مطابق شکل زیر :

در پینجر باز شده در قسمت جستجو تایپ کنید JSON و منتظر بمانید تا کتابخانه نمایش داده شود ، اخرین ورژن را انتخاب و روی دکمه Install کلیک کنید تا کتابخانه Json نصب شود، مطابق شکل زیر :

بعد از نصب کتابخانه در پروژه خود وارد کنید :
//Include JSON LIB for Arduino ##HAsani.M.#IOTPLUS.IR
#include <Arduino.h>
#include <ArduinoJson.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
مثال و کاربرد توابع
فرض کنید یک رشته حرفی را نیاز دارید تا پارامتر های آنرا شناسایی کنید، رشته حرفی به شکل زیر می باشد :
{“id”:”app”,”temp”:”100″,”sw”:”1″}
برای شناسایی و خواندن پارامتر های ابتدا باید یک متغییر json تعریف کنید سپس توسط دستور deseriailize آنرا شناسایی کنید، به شکل کد زیر انجام دهید :
// Web IOT Platform iotplus.ir
#include <ArduinoJson.h>
String s="{\"id\":\"app\",\"temp\":\"100\",\"sw\":\"1\"}";
void setup() {
Serial.begin(9600);
DynamicJsonDocument root(200);
//This function parse variables to root
deserializeJson(root,s);
//print id
Serial.print("ID : "); Serial.print(root["id"]);
//print temp
Serial.print("Temp : "); Serial.print(root["temp"]);
//print sw
Serial.print("SW : "); Serial.print(root["sw"]);
}
void loop() {
// put your main code here, to run repeatedly:
}
افزودن پارامتر به متغییر json
در صورت نیاز ممکن است بخواهید به پارامتر json یک متغییر با مقدار مشخص اضافه نمایید، به مثال زیر توجه نمایید :
//Json for Arduino
//By M.Hasani
//Web IOT Platform www.iotplus.ir
#include <ArduinoJson.h>
String s="{\"id\":\"app\",\"temp\":\"100\",\"sw\":\"1\"}";
void setup() {
Serial.begin(9600);
DynamicJsonDocument root(200);
//This function parse variables to root
deserializeJson(root,s);
//print id
Serial.print("ID : "); Serial.print(root["id"]);
//print temp
Serial.print("Temp : "); Serial.print(root["temp"]);
//print sw
Serial.print("SW : "); Serial.print(root["sw"]);
//Add the new Variable
root["message"]="salam";
}
void loop() {
// put your main code here, to run repeatedly:
}
دقت کنید که در تعریف پارامتر Json بیشترین سایز آنرا حتما بایستی مشخص باشد، اگر بیشترین سایز بلوک 500 باشد به شکل زیر تعریف می شود :
//Json for Arduino
//By M.Hasani
//Web IOT Platform www.iotplus.ir
#include <ArduinoJson.h>
DynamicJsonDocument root(500);
اما اگر شما یک متغییر json داشته باشید و بخواهید برای انتقال آن ابتدا به رشته حرفی تبدیل کنید و سپس ارسال کنید به شکل زیر نوشته می شود :
//Json for Arduino
//By M.Hasani
//Web IOT Platform www.iotplus.ir
#include <ArduinoJson.h>
String st;
void setup() {
Serial.begin(9600);
DynamicJsonDocument root(200);
root["id"]="arduino";
root["temp"]="102";
//Here Convert to String root = > st
serializeJson(root,st);
Serial.println(st);
}
void loop() {
// put your main code here, to run repeatedly:
}