ESP8266-向物联网云平台发送数据--dweet
方法一:
//向物联网平台发送数据 //发送数据格式: https://dweet.io/dweet/for/my-thing-name?hello=world 免费平台 //my-thing-name 是自己起的地址名称;hello=world 键值对数据 //获取数据 https://dweet.io/get/latest/dweet/for/my-thing-name 用网页打开 #include <ESP8266WiFi.h> const char* ssid = "jia"; //这里输入wifi名称 const char* password = "lm654321"; //这里输入wifi密码 const char* host= "dweet.io"; //数据存储平台 void setup() { Serial.begin(115200); delay(10); //接下来板子开始要连线到路由器了 Serial.println(); Serial.println(); Serial.print("lianjie to "); Serial.println(ssid); WiFi.begin(ssid, password);//开始连线 while (WiFi.status() != WL_CONNECTED) { //如果没有连接成功,就输入"." delay(500); Serial.print("."); } Serial.println(); Serial.println("WiFi lianxian cengong");//输入wifi连线成功 Serial.println(WiFi.localIP());//输出IP } void loop() { delay(5000); Serial.print("connecting to "); Serial.println(host); WiFiClient client;//建立一个TCP客户端 if (!client.connect(host,80)) //如果没有连接成功 { Serial.println("lianjie sibai"); return; } //发送请求 Serial.print("Requesting URL: "); client.print(String("GET /dweet/for/esp8266_liming?temperature=")+"28"+"&humidity="+"40"+" HTTP/1.1\r\n"+"Host: "+host+"\r\n"+"Connection: close\r\n\r\n"); //esp8266_liming 自己起的名字-不要跟别人重名 //temperature的值是28;humidity的值是40 delay(10); unsigned long timeout=millis(); while(client.available()==0) {//判断是否有响应信息 if(millis()-timeout>5000) //如果超时5秒,就失败 { Serial.println(">>>Client Timeout!"); client.stop(); return; }} //读取返回的信息 while(client.available()) { String line=client.readStringUntil('\r'); Serial.print(line); } //关闭连接 Serial.println(); Serial.println("lianjie guanbi"); }
在串口监视器看到 :
说明发送成功
用网页打开 https://dweet.io/get/latest/dweet/for/esp8266_liming 可以看到
用python读取数据
from urllib.request import urlopen #导入urlopen函数 #读取网页内容,如果网页中有中文要用“utf-8”解码 html = urlopen( "https://dweet.io/get/latest/dweet/for/esp8266_liming").read().decode('utf-8') print(html,type(html)) #后面用正则表达式 提取需要的内容
天子骄龙