Subscribe Us

header ads

Bài 7. Hưỡng Dẫn Tự Học Esp8266. Tìm Hiểu Và Cách Sử Dụng Json 6 Cho Arduino IDE


Để tiếp tục cho chuỗi bài tiếp theo trong chủ để hưỡng dẫn tự học esp8266 thì mình sẽ tìm hiểu và hưỡng dẫn các bạn sử dụng json 6 trên Arduino.


JSON Là Gì

JSON là một kiểu định dạng dữ liệu trong đó sử dụng văn bản thuần tuý, định dạng JSON sử dụng các cặp key - value để lưu dữ liệu sử dụng.

Cấu Trúc Một Chuỗi Json


{"TITLE":"Trợ
Lý","DESCRIBE":"Học Tập","PHONE":"123"}
Mình mới khai báo một Chuỗi Json đơn giản gồm 2 phần đó là key và value
Mình sẽ giải thích sơ qua như sau
1. Chuỗi JSON được bao lại bởi dấu ngoặc nhọn {}
2. Một Chuỗi Json gồm 2 phần đó là key và value
            Key là từ khóa để tìm kiếm và trả về kết quả là value
            Key (TITLE)
            Value (Trợ Lý). Value phải đặt trong cặp dấu goặc kép “” khi khai báo
3. Nếu có nhiều dữ liệu (nhiều cặp key => value) thì ta dùng dấu phẩy (,) để ngăn cách
4. Các key của JSON bạn nên đặt chữ cái không dấu hoặc số, dấu _ và không có khoảng trắng., ký tự đầu tiên không nên đặt là số

Cách Sử Dụng Json Trên Arduino IDE

Như o trên mình đã tạo ra 1 chuỗi json co bản gồm TITLE DESCRIBE PHONE nhưng đó là ví dụ cho bạn dễ hiểu về cấu trúc của Json
Thì để có thể sử dụng trên Arduino IDE thì đầu tiên ta phải khai báo json dưới dạng 1 chuỗi String
Sau đó ta mới sử dụng các lệnh từ thư viện ArduinoJson Dể tạo 1 file kiểu Json

Cách Add Thư Viện ArduinoJson Vào Arduino IDE

Đâu tiên bạn mở Arduino IDE lên
Vào Tools Chọn Manage Libraries



Trong cửa sổ Libraries Manager bạn tìm kiếm ArduinoJson tiếp tục chọn Version mới nhất (version 6 trở lên nhá) rồi chọn Install


Khai báo thư viện ArduinoJson Cho Arduino IDE


#include <ArduinoJson.h>


Tạp 1 Chuỗi Json Trên Arduino


String Sjson = "{\"TITLE\":\"Trợ
Lý\",\"DESCRIBE\":\"Học Tập\",\"PHONE\":\"123\"}";
Khai báo 1 chuỗi Sjson chứa nội dung cấu trúc chuỗi j son

DynamicJsonDocument Khai Báo Tên Và nhóm bộ Nhớ Chứa tài liệu Json


DynamicJsonDocument TroLy(256);
Tên chứa tài liệ json là TroLy Bộ nhớ 256 byte

deserializeJson phân tích cú pháp đầu vào JSON và đặt kết quả vào một JsonDocument.


deserializeJson(TroLy, Sjon);
phân tích Chuỗi Sjson rồi đặt kết quả vào TroLy Chứa tài liệu json

serializeJson(doc, Serial); in ra tài liệu Json trong Trợ Lý, ra cửa sổ Serial Monitor


serializeJson(TroLy, Serial);


Lấy Dữ Liệu Từ Jsonas<String> lấy ra kiểu String. Json To String


Title = TroLy["TITLE"].as<String>();
Lấy giá trị của cặp json với key là TITLE kiểu giá trị trả về được gán vào Title kiểu dữ liệu là json

Lấy Ra Kiểu const char * từ json. Json to const char *


const char* DESCRIBE = TroLy["DESCRIBE"];


Lấy ra kiểu int từ json. Json to int


int phone = TroLy["PHONE"];


Thêm Dữ Liệu Vào Json


TroLy["NATION"] = "VietNam";
Thêm cặp json mới với key là NATION value là VietNam


Kiểm Tra Kích Thước Json


Serial.println(measureMsgPack(TroLy));
Kiêm tra kích thước TroLy Trả về byte


Chương Trình Ví Dụ Json Trên Arduino IDE


  
/*
  Bài 7 ArduinoJson 6
  https://trolyhoctap.blogspot.com/
*/

#include <ArduinoJson.h>

String Sjson = "{\"TITLE\":\"Trợ Lý\",\"DESCRIBE\":\"Học Tập\",\"PHONE\":\"123\"}";
String Title = "";
void setup() {
  Serial.begin(9600);
  Serial.println("bài 7 sử lý json trên arduino");
  Serial.print("chuối Sjson là:");
  Serial.println(Sjson);
  // khai báo tên và nhóm bộ nhớ 
  DynamicJsonDocument TroLy(256);
  //phân tích cú pháp đầu vào JSON và đặt kết quả vào một JsonDocument.
  deserializeJson(TroLy, Sjson);                    
  Serial.print("chuỗi TroLy Là:");
  // in ra kết qua json
  serializeJson(TroLy, Serial);
  Serial.println("\n");
  // lấy thông tin từ key
  // lấy ra kiểu String
  Title = TroLy["TITLE"].as<String>();
  Serial.print("chuối Title là:");
  Serial.println(Title);
  //Lấy ra kiểu const char *
  const char* DESCRIBE = TroLy["DESCRIBE"];
  Serial.print("Mảng DESCRIBE là:");
  Serial.println(DESCRIBE);
  // lấy ra kiểu INT
  int phone = TroLy["PHONE"];
  Serial.print("số phone là:");
  Serial.println(phone);
  // thêm dữ liệu và json
  TroLy["NATION"] = "VietNam";
    Serial.print("chuỗi TroLy mới Là:");
  // in ra kết qua json
  serializeJson(TroLy, Serial);
  Serial.println("\n");
  //kích thước byte của json
  Serial.print("kích thước của TroLy:");
  Serial.println(measureMsgPack(TroLy));
}

void loop() {
  // put your main code here, to run repeatedly:

}



Bạn mở cửa sổ serial monitor lên để kiểm tra code nhá




Cảm ơn các bạn đã theo dõi. mọi thắc mắc hay góp ý các bạn để dưới mình luận mình sẽ phản hồi và khác phục sớm nhất

Đăng nhận xét

0 Nhận xét