接着上文连通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数据进行了解析,这里可以参考一下: