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

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

بعد از نصب کتابخانه در پروژه خود وارد کنید :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
//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 آنرا شناسایی کنید، به شکل کد زیر انجام دهید :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
// 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 یک متغییر با مقدار مشخص اضافه نمایید، به مثال زیر توجه نمایید :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
//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 باشد به شکل زیر تعریف می شود :
1 2 3 4 5 6 7 |
//Json for Arduino //By M.Hasani //Web IOT Platform www.iotplus.ir #include <ArduinoJson.h> DynamicJsonDocument root(500); |
اما اگر شما یک متغییر json داشته باشید و بخواهید برای انتقال آن ابتدا به رشته حرفی تبدیل کنید و سپس ارسال کنید به شکل زیر نوشته می شود :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
//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: } |