友情提示:680元/半年,儿童学编程,就上码丁实验室。
物联网
你将学到什么
你将学到如何将传感器数据发送到物联网平台dweet.io
需要准备什么
电脑、wemos D1开发板一块
dweet.io平台
该网站不需要注册。
发送数据
发送数据格式
只需要向网址https://dweet.io/dweet/for/my-thing-name?hello=world
发送一个request请求就可以了。
其中my-thing-name类似于一个ID;hello=world是一个键值对,属性是”hello”,值为”world”。
因为该网站不需要注册,所有人都可以向其发送数据,所以你的my-thing-name要取得具有唯一性。
读取你发送的数据
读取数据
方法和上传数据很类似,只是需要发送请求的网址不一样。
免费用户上传的数据只保存24小时。
返回的数据是一个json格式的数据。
返回的数据格式
Arduino程序
#include <ESP8266WiFi.h>
// 连接本地WiFi网络
const char* ssid = “your-wifi”;
const char* password = “your-wifi-password”;
const char* host = “dweet.io”;//数据存储平台
void setup() {
Serial.begin(115200);
delay(10);
// 连接到WiFi
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());//打印出IP地址
}
void loop() {
delay(5000);
Serial.print(“connecting to”);
Serial.println(host);
WiFiClient client;//建立一个TCP客户端,连接到dweet.io服务器
const int httpPort=80;//端口
if(!client.connect(host,httpPort))//没有连接成功
{
Serial.println(“connection failed”);
return;
}
//发送请求
Serial.print(“Requesting URL:”);
client.print(String(“GET /dweet/for/esp8266_mything?temperature=”)
+ “28″ +
“& temperature =” + “40″ +
” HTTP/1.1rn” +
“Host: ” + host + “rn” +
“Connection: closernrn”);
delay(10);
unsigned long timeout=millis();
while(client.available()==0)
{
if(millis()-timeout>5000)
{
Serial.println(“>>>Client Timeout!”);
client.stop();
return;
}
}
//读取返回的数据
while(client.available())
{
String line=client.readStringUntil(‘r’);
Serial.print(line);
}
//关闭连接
Serial.println();
Serial.println(“closing connection.”);
}
例子中笔者向dweet.io发送了两类数据,一个是温度(temperature)一个是湿度(temperature),
使用&连接。
上传完成之后,我们来读取一下数据:
读取网络数据
如上图所示,我们已经可以正确读取我们发送的数据了。
欢迎转发评论!