最新消息:680元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

arduino WiFi开发(4)发送传感器数据到云端平台

Arduino 少儿编程 2536浏览 0评论

友情提示:680元/半年,儿童学编程,就上码丁实验室

arduino WiFi开发(4)发送传感器数据到云端平台

物联网

你将学到什么

你将学到如何将传感器数据发送到物联网平台dweet.io

需要准备什么

电脑、wemos D1开发板一块


arduino WiFi开发(4)发送传感器数据到云端平台

dweet.io平台

该网站不需要注册。

发送数据

arduino WiFi开发(4)发送传感器数据到云端平台

发送数据格式

只需要向网址https://dweet.io/dweet/for/my-thing-name?hello=world

发送一个request请求就可以了。

其中my-thing-name类似于一个ID;hello=world是一个键值对,属性是”hello”,值为”world”。

因为该网站不需要注册,所有人都可以向其发送数据,所以你的my-thing-name要取得具有唯一性。

读取你发送的数据

arduino WiFi开发(4)发送传感器数据到云端平台

读取数据

方法和上传数据很类似,只是需要发送请求的网址不一样。

免费用户上传的数据只保存24小时。

返回的数据是一个json格式的数据。

arduino WiFi开发(4)发送传感器数据到云端平台

返回的数据格式

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),

使用&连接。

上传完成之后,我们来读取一下数据:

arduino WiFi开发(4)发送传感器数据到云端平台

读取网络数据



如上图所示,我们已经可以正确读取我们发送的数据了。


        欢迎转发评论!


您必须 登录 才能发表评论!