【Ardiuno】使用ESP32网络功能调用接口数据(图文)

接着上文连通wifi后,我们通过使用HTTPClient库进行网络相关操作,这里我们通过http协议进行接口调用。

为了简化操作,这里使用了本地服务器上的文件作为接口,正常操作时会调用接口后,将服务器返回的数据进行解析,现在一般的接口返回json数据为主,需要引用ArduinoJson.h。

复制代码
#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>

const char* ssid     = "Xiaomi";
const char* password = "XIAOFEIYU666";

void setup()
{
    Serial.begin(9600);
    delay(10);

    // We start by connecting to a WiFi network

    Serial.println();
    Serial.println();
    Serial.print("Connecting to:");
    Serial.println(ssid);

    WiFi.begin(ssid, password);

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

    Serial.println("");
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());

    //==========================================================================
    pinMode(2, OUTPUT);
    digitalWrite(2, HIGH);
    delay(500);
    digitalWrite(2, LOW);
    delay(500); 

    digitalWrite(2, HIGH);
    delay(500);
    digitalWrite(2, LOW);
    delay(500); 

    digitalWrite(2, HIGH);
    delay(2500);
    digitalWrite(2, LOW);

    //==========================================================================    
    HTTPClient http;                                      //创建HTTPClient对象
    String url = "http://192.168.3.6:8088/robots.txt";
    http.begin(url);                                      //指定访问 URL
        
    int http_code = http.GET();                           //接收HTTP响应状态码
    Serial.printf("HTTP状态码:%d\n", http_code);
        
    String response = http.getString();                   //获取响应正文
    Serial.print("响应数据:");
    Serial.println(response);
        
    http.end();                                           //关闭连接
}

void loop(){
}

上传程序后,使用串口监视器查看结果,可以看到http调用成功返回200状态码,然后输出两行数据,这两行数据即为服务器上的文件内容(以此代替api返回的json数据)。

通过以上实验,我们已经可以正常操作esp32连接网络调用相关接口,通过进一步解析即可获取我们需要的数据。

借鉴例子中调用的天气服务接口,对返回json数据进行了解析,这里可以参考一下:

相关推荐
测试开发技术3 小时前
如何在 Pytest 中调用其他用例返回的接口参数?
面试·自动化·pytest·接口·接口测试·api测试
政安晨1 天前
政安晨【开源人工智能硬件】【ESP乐鑫篇】 —— 在macOS上部署工具开发环境(小资的非开发者用苹果系统也可以玩乐鑫)
esp32·mac·开源硬件·环境部署·乐鑫·开源人工智能硬件·工具链搭建
@Hwang2 天前
【ESP32-IDF笔记】09-UART配置和使用
笔记·esp32·uart·esp32s3·esp32-idf
欢乐熊嵌入式编程5 天前
WIFI协议全解析01:WiFi协议的前世今生:从802.11到智能家居
esp32·智能家居·wifi协议·wifi通信
宇宙第一小趴菜24 天前
00 为啥 MicroPython 更 “好唠”和esp32?
单片机·嵌入式硬件·esp32·micropython
flushddd1 个月前
GOOUUU ESP32-S3-CAM 果云科技开发板开发指南(一)(超详细!)Vscode+espidf 通过摄像头拍摄照片并存取到SD卡中,文末附源码
ide·vscode·编辑器·esp32
有梦想的攻城狮1 个月前
spring中的ImportSelector接口详解
java·后端·spring·接口·importselector
小智学长 | 嵌入式1 个月前
SOC-ESP32S3部分:36-适配自己的板卡
单片机·物联网·esp32
小智学长 | 嵌入式1 个月前
SOC-ESP32S3部分:26-物联网MQTT连云
单片机·物联网·esp32
Ronin-Lotus1 个月前
程序代码篇---智能家居传感器
esp32·i2c总线·dht22·bh1750·sgp30·单总线