ESP32是一款強大的微控制器,它在已有的硬件資源的基礎上,還提供了大量的網絡接口和傳感器接口,可以實現多種數據的采集和分析,其中就包含了使用JSON格式進行數據存儲和傳輸。
#include//引用ArduinoJson庫 const int LED_PIN = 2; String json; //定義json字符串 void setup() { Serial.begin(115200); pinMode(LED_PIN, OUTPUT); //生成JSON StaticJsonDocument<200>doc; doc["id"] = 123; doc["state"] = "on"; serializeJson(doc, json); Serial.println(json); } void loop() { //解析JSON StaticJsonDocument<200>doc; DeserializationError error = deserializeJson(doc, json); if (error) { Serial.println(F("deserializeJson() failed:")); Serial.println(error.c_str()); return; } //讀取JSON中的數據,更新LED狀態 int id = doc["id"]; String state = doc["state"]; if(state=="on"){ digitalWrite(LED_PIN,HIGH); }else if(state=="off"){ digitalWrite(LED_PIN,LOW); } delay(1000); //延遲1秒鐘 }
在以上代碼中,首先我們引用了ArduinoJson庫,并定義了一個json字符串。在setup函數中,我們使用StaticJsonDocument類創建了一個大小為200的JSON對象,生成了一個名為"state",值為"on"的JSON格式數據,用serializeJson方法將數據轉換成字符串存儲在了json中,最后將json打印出來。
在loop函數中,我們使用同樣的StaticJsonDocument類創建了一個新的JSON對象,使用deserializeJson方法將json字符串轉換成了JSON對象,如果轉換失敗,則會打印錯誤信息并退出函數。接著根據JSON數據中的"id"和"state"字段來更新LED的狀態。delay函數用于延遲1秒鐘。
以上就是ESP32使用JSON格式進行數據存儲和傳輸的基礎操作,該方法可以應用于傳感器數據的采集和傳輸,實現智能化的控制和分析。