微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

8266json

在IoT领域,8266作为一款SOC系统和无线网络适配器被广泛应用。和其它能够使用8位微控制器的芯片不同,8266集成了一个完整的Wi-Fi系统和TCP/IP协议栈。这个芯片拥有许多有用的功能和能够轻松管理的GPIO引脚。并且它还具有低功耗模式,可供注入电池使用,并且只需要轻微的电压即可提供最高的性能

8266json

在这文章中,我们将探讨8266的另一个有用的功能:将JSON数据从服务器获取并解析该数据。JSON数据是使用JavaScript对象表示法编写的数据格式,可以轻松地在JavaScript中处理。但是,使用8266将JSON数据从服务器获取一个挑战,因为它需要使用WiFiClient和HTTPClient库。

#include 
#include 
#include 

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

  WiFi.begin("WiFi名称","wifi密码");

  Serial.print("Connecting");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");

  HTTPClient http;

  // 获取JSON数据并将其作为字符串存储在response中
  http.begin("https://opendata.hopefully.works/api/events");
  int httpCode = http.GET();
  if (httpCode > 0) {
    String response = http.getString();
    Serial.println(response);

    DynamicJsonDocument doc(1024);
    deserializeJson(doc,response);

    const char* eventType = doc["eventType"];
    int intValue = doc["intValue"];
    float floatValue = doc["floatValue"];
    bool boolValue = doc["boolValue"];

    Serial.printf("eventType: %s\n",eventType);
    Serial.printf("intValue: %d\n",intValue);
    Serial.printf("floatValue: %.3f\n",floatValue);
    Serial.printf("boolValue: %d\n",boolValue);
  }
  http.end();
}

void loop() {
  delay(5000);
}

这是一个将JSON数据从服务器获取并解析该数据的示例Arduino代码在这代码中,WiFi.begin()使用Wi-Fi库声明WIFI名称密码,这里需要填上Wifi的名称密码。HTTPClient是用于发送HTTP请求并获取服务器响应的HTTP客户端库。

http.begin()在这里设置服务器端点端点(https://opendata.hopefully.works/api/events),能够获得API端点的JSON格式的数据将被接收并存储成字符串response中。

ArduinoJson库通过其deserializeJson()函数解析从HTTP客户端获取到的请求。此函数需要两个参数,需要反序列化的动态JSON文档和JSON数据字符串。

接下来,使用doc[]获取JSON数据中的字段。这些字段可以是String、int、float或bool类型。这些字段的值可以使用printf()仿真输出到串行端口。

最后,http.end()方法结束HTTP客户端请求。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐