赞
踩
最近在学习物联网的知识,之前总是在本地做一些传感器使用,感觉很无聊,后期想利用传感器和微信小程序进行数据实时观看,所以最近学习一下物联网知识。
本次物联网平台使用的是中国移动的onenet平台,使用的是新版本(旧版本的多协议接入新用户关闭了),刚刚学会怎么使用HTTP协议传输数据,现在将代码展示出来。
#include <Arduino.h> #include<WiFi.h> #include<HTTPClient.h> const int button = 34; const char* ssid = "xxxxxx"; //wifi名称 const char* passwd = "xxxxxxx"; //wifi密码 const char* token = "xxxx"; //token是onenet新平台的鉴权协议,需要使用token计算机生成。 HTTPClient http; void setup() { pinMode(34, INPUT); Serial.begin(115200); WiFi.begin(ssid, passwd); while(WiFi.status() != WL_CONNECTED){ delay(2000); Serial.println("Connecting to WiFi"); } Serial.println("Connected to WiFi"); http.begin("https://open.iot.10086.cn/fuse/http/device/thing/property/post?topic=$sys/w3j5oq7Z7c/123123/thing/property/post&protocol=HTTP"); http.addHeader("token", token); http.addHeader("Content-Type", "application/json"); //int httpResponseCode = http.POST(data); } void loop() { int button_res = digitalRead(34); if (button_res == HIGH){ Serial.println("button down"); String data= "{\"id\":\"123\",\"version\":\"1.0\",\"params\":{\"abc\":{\"value\":1},\"light\":{\"value\":1}}}"; int httpResponseCode = http.POST(data); Serial.println("done"); if (httpResponseCode > 0){ Serial.print("HTTP Response code:"); Serial.println(httpResponseCode); } else { Serial.print("Error code:"); Serial.println(httpResponseCode); } http.end(); delay(1000); } }
程序运行结果是当按下按钮时,向onenet平台传输数据,数据内容是value
后面的值,如果想要实时的传输传感器数据,需要读取接口的模拟值,并格式化字符串结构,把上传值改掉。
注意,使用http协议的post请求上传数据,onenet平台是5s刷新一次,不能达到实时刷新。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。