写点什么

如何让 ESP8266 板子像 APP 开发一样方便

作者:北桥苏
  • 2023-05-13
    广东
  • 本文字数:1451 字

    阅读完需:约 5 分钟

前言:

​ 众所周知,在 APP 开发中,C/S 是基本的开发结构。客户端负责应用的展示,交互与网络请求,服务端负责数据的传输,处理,存储,输出等等。而物联网除了之前介绍的 MQTT 实现 H5 实时控制舵机旋转角度来完成开关外,同样也可以通过 HTTP 的请求方式来和任何一门语言的服务端进行交互。


​ 所以,在这里 ESP8266 可以理解为客户端了。当然,ESP8266 请求接口既可以可以用来输出到外接的 oLED 或音响等设备,也可以通过传感器收集的数据通过接口的方式传到服务端进行存储,服务端再清洗过滤,计算分析,可以玩的东西就更多一些了。以下只是好早以前用 PHP 测试写的接口,ESP8266 就请求打印一下的简单例子。



环境:

Arduino


ArduinoJson 库


HTTPClient 库


安装:

​ 在推荐使用以上两个库外,我之前使用的 ESP8266WiFi,请求成功后,通过 JON 库怎么也解析不成功,在经过一些踩坑和折腾后换成 HTTPClient 就可以了。以上两个库分别用来作为请求和 JSON 解析,在网上自行搜索哦,如果实在找不到可以在小编公众号留言,免费提供下载,安装方式是:将下载好的包复制到 Arduino 的 libraries 目录中即可。


代码演示:

#include <HTTPClient.h>#include <ArduinoJson.h>#include <ESP8266WiFi.h>#include <ESP8266WiFiMulti.h> ESP8266WiFiMulti wifiMulti;           // 建立ESP8266WiFiMulti对象
void setup() { Serial.begin(9600); Serial.println(""); // 设置开发板LED引脚 pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, HIGH); wifiMulti.addAP("TP-LINK_D12E", "ZFC3598300"); // 将需要连接的一系列WiFi ID和密码输入这里 wifiMulti.addAP("ssid_from_AP_2", "your_password_for_AP_2"); // ESP8266-NodeMCU再启动后会扫描当前网络 wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3"); // 环境查找是否有这里列出的WiFi ID。如果有 Serial.println("Connecting ..."); int i = 0; while (wifiMulti.run() != WL_CONNECTED) { // 尝试进行wifi连接。 delay(1000); Serial.print(i++); Serial.print(' '); } // WiFi连接成功后将通过串口监视器输出连接成功信息 Serial.println(""); Serial.print("Connected to "); Serial.println(WiFi.SSID()); // WiFi名称 Serial.print("IP address:\t"); Serial.println(WiFi.localIP()); // IP}
void loop() { if (WiFi.status() == WL_CONNECTED) { HTTPClient http; http.begin("http://xy.zerofc.cn/"); int httpCode = http.GET(); if (httpCode > 0) { String Request_result = http.getString(); //Serial.println(Request_result); DynamicJsonBuffer jsonBuffer; JsonObject& root = jsonBuffer.parseObject(Request_result); String json1 = root["results"][0]; Serial.println(json1); DynamicJsonBuffer jsonBuffer1; JsonObject& root1 = jsonBuffer1.parseObject(json1); String json2 = root1["location"]; Serial.println(json2);
DynamicJsonBuffer jsonBuffer2; JsonObject& root2 = jsonBuffer2.parseObject(json2); String json3 = root2["id"]; Serial.println(json3);
Serial.println(""); } else { Serial.println("Invalid response!"); } http.end(); } delay(5000);
}
复制代码

打印效果:



用户头像

北桥苏

关注

公众号:ZERO开发 2023-05-08 加入

专注后端实战技术分享,不限于PHP,Python,JavaScript, Java等语言,致力于给猿友们提供有价值,有干货的内容。

评论

发布
暂无评论
如何让ESP8266板子像APP开发一样方便_php_北桥苏_InfoQ写作社区