共计 2011 个字符,预计需要花费 6 分钟才能阅读完成。
前言:
家喻户晓,在 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);
}
打印成果:
正文完