物联网的最终是实时获取数据来控制物件完成相应的动作
esp8266作为服务端,产生json数据
1. 实时读取A0、 D1、D2以及D3引脚的读数。
2. 当有客户端请求时,通过响应信息将引脚读数和测试数据信息发送给客户端。
信息发送格式为json格式。以下为该json信息的示例:
该实例的解析使用官方提供的工具实现生成代码
{
"info": {
"name": "taichimaker",
"url": "www.taichi-maker.com",
"email": "taichimaker@163.com"
},
"digital_pin": {
"d1": "1",
"d2": "0",
"d3": "1"
},
"analog_pin": {
"a0": "500"
}
}
/**
* ESP8266客户端请求JSON信息,请求的数据是实时发生改变的
* 由两块esp8266开发板来完成,一块是用于作为服务器,一块是用于客户端请求
* 创建服务端来监控esp8266的实时引脚状态来控制,通过wifi局域网来访问
*/
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266WebServer.h>
#include <ArduinoJson.h>
//洪定义
#define buttonPin D3
//建立ESP8266WIFIMulti对象
ESP8266WiFiMulti wifiMulti;
//建立网络服务器对象,该对象用于响应HTTP请求,监听端口80
ESP8266WebServer esp8266_server(80);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
// 将引脚设置为输入上拉模式
pinMode(D1, INPUT_PULLUP);
pinMode(D2, INPUT_PULLUP);
pinMode(buttonPin, INPUT_PULLUP); // NodeMCU开发板按键连接在D3引脚上
//通过addAp函数存储 WiFi名称 WiFi密码
wifiMulti.addAP("nova", "wifi.danke.life");
wifiMulti.addAP("taichi-ma