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
"+"Host: "+host+"
"+"Connection: close

");
//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('
');
  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))

#后面用正则表达式 提取需要的内容

天子骄龙 

原文地址:https://www.cnblogs.com/liming19680104/p/11004579.html