整个教程就以上传Yeelink数据点为目的制作一个HTTP客户端。

1获取账号 http://www.cnblogs.com/imfanqi/p/4419915.html

2代码教程 http://www.windworkshop.cn/?p=1217

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#define UKey "" // Yeelink提供的U-ApiKey
String ssid = ""; // 需要连接的wifi热点名称
String password = ""; // 需要连接的wifi热点密码
/* 上传数据到服务器。
* device为设备号,sensor为传感器号,data为上传数据点的值
* 这里默认上传到最新的数据点上,需要上传到特定点上就得在post内容中单独加入时间戳
*/
void uploadYeelinkData(String device, String sensor, String data) {
HTTPClient http;
const String apiAddress = "/v1.1/device/" + device + "/sensor/" + sensor + "/datapoints";
http.begin("api.yeelink.net", 80, apiAddress);
http.addHeader("U-ApiKey",UKey, true);
int httpCode = http.POST("{\"value\":" + data + "}");
Serial.print("code:");
Serial.println(httpCode);
if(httpCode == 200) { // 访问成功,取得返回参数
String payload = http.getString();
Serial.println(payload);
} else { // 访问不成功,打印原因
String payload = http.getString();
Serial.print("context:");
Serial.println(payload);
}
}
/* 从服务器取得数据
* device为设备号,sensor为传感器号
*/
void readYeelinkData(String device, String sensor) {
HTTPClient http;
// 这里使用的api是v1.0的,v1.1的api需要提供U-ApiKey
const String apiAddress = "/v1.0/device/" + device + "/sensor/" + sensor + "/datapoints";
http.begin("api.yeelink.net", 80, apiAddress);
int httpCode = http.GET(); // 使用GET形式来取得数据
Serial.print("code:");
Serial.println(httpCode);
if(httpCode == 200) { // 访问成功,取得返回参数
String payload = http.getString();
Serial.println(payload);
} else { // 访问不成功,打印原因
String payload = http.getString();
Serial.print("context:");
Serial.println(payload);
}
}
void setup() {
Serial.begin ( 115200 );
int connectCount = 0;
WiFi.begin ( ssid.c_str(), password.c_str() );
while ( WiFi.status() != WL_CONNECTED ) {
delay ( 1000 );
Serial.print ( "." );
if(connectCount > 30) {
Serial.println( "Connect fail!" );
break;
}
connectCount += 1;
}
if(WiFi.status() == WL_CONNECTED) {
Serial.println ( "" );
Serial.print ( "Connected to " );
Serial.println ( ssid );
Serial.print ( "IP address: " );
Serial.println ( WiFi.localIP() );
connectCount = 0;
}
//readYeelinkData("8938", "28887"); // 读取数据点测试
uploadYeelinkData("8938", "28887", "1"); // 写入数据点测试
} void loop() { }

  

Arduino IDE for ESP8266教程(三)HTTP客户端的更多相关文章

  1. Arduino IDE for ESP8266教程(0)配置IDE

    淘宝链接 https://detail.tmall.com/item.htm?id=540067174120&spm=a1z09.2.0.0.6f7c6509ujAvQs&_u=71q ...

  2. Arduino IDE for ESP8266教程(二) 创建WIFI AP模式

    创建WIFI热点 #include <ESP8266WiFi.h> void setup() { Serial.begin ( 115200 ); Serial.println(" ...

  3. Arduino IDE for ESP8266教程(四)网页控制灯 简单页面

    修改ssid和passwd,将程序烧写到8266上,等待串口返回连接成功的消息,连接成功之后可以看到返回有一个ip地址,使用浏览器方位这个ip地址就可以看到这个消息: 连接路由器后,返回IP地址 19 ...

  4. Arduino IDE for ESP8266 教程(一) 局域网 网页查看数据 不控制

    淘宝:https://detail.tmall.com/item.htm?id=536504922008&spm=a1z09.2.0.0.5e160c66c76b3g&_u=e1qf7 ...

  5. Arduino IDE搭建ESP8266开发环境,文件下载过慢解决方法 | ESP-01制作WiFi开关教程,改造宿舍灯

    1. Arduino IDE配置ESP8266环境 参考:https://www.jianshu.com/p/cb0274d612b5 首先从 Arduino 官网 下载最新版本的 Arduino I ...

  6. ESP8266开发之旅 进阶篇② 闲聊Arduino IDE For ESP8266烧录配置

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  7. Arduino IDE 安装esp8266 2.4.rc2的编译环境

    2.4. 版本, 有一个我需要的功能, 串口缓存, 可以修改. Serial.setRxBufferSize(1024); //修改为1024个字节. 安装步骤: 1. 需要FQ. 推荐用" ...

  8. Arduino IDE for ESP8266 项目(4)HTTP客户端+服务端

    Arduio for esp8266  官网API:http://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/readme.html 很有 ...

  9. Arduino IDE for ESP8266 项目云盒子(2)一键自配置+网页服务器

    https://item.taobao.com/item.htm?spm=a230r.1.14.20.eYblO3&id=521945102409&ns=1&abbucket= ...

随机推荐

  1. jQuery学习(2)ajax()使用

      在上一篇分享JavaScript之使用AJAX(适合初学者)中,我们学习了如何在JavaScript中使用AJAX.由于jQuery出色的性能和简洁的写法,且它也支持AJAX的使用,所以,本次分享 ...

  2. DotNetCore学习-2.程序启动

    新创建的ASP.NET Core程序中包含两个文件,分别是Program.Startup.其中,Program中Main方法是整个应用程序的入口,该方法如下: var host = WebHost.C ...

  3. WebService学习概念总结

    概念总结:WebSerevice是一种跨编程语言和跨操作系统平台的远程调用技术传输协议:HTTP技术构成:XML+XSD,SOAP,WSDL    XML封装数据格式,解决数据表示问题    XSD定 ...

  4. 【Java】HashMap源码分析——基本概念

    在JDK1.8后,对HashMap源码进行了更改,引入了红黑树.在这之前,HashMap实际上就是就是数组+链表的结构,由于HashMap是一张哈希表,其会产生哈希冲突,为了解决哈希冲突,HashMa ...

  5. 【github&&git】5、使用Git拉取GitLab上的项目

    一.安装Git(windows版.其他平台参阅) 去Git的官网,下载安装包,安装时,一路默认 二.配置Git 2.1 在任意地方,创建一个文件夹,保证该文件夹的目录全部是英文 2.2 打开新建的文件 ...

  6. Centos 7.x 安装 Docker-ce

    Centos 下安装 Docker-ce CentOS 7.0, CentOS 7.2: cat > /etc/yum.repos.d/docker-main.repo << -'E ...

  7. Docker-compose 编排工具安装

    介绍 Compose 是一个定义和管理多容器的工具,使用Python语言编写,使用Compose配置文件描述多个容器应用的架构, 比如什么镜像,数据卷,网络,映射端口等:然后一条命令管理所有服务,比如 ...

  8. JS之this应用详解

    目录 1. this作为全局变量2. 作为对象方法的调用3. 作为构造函数调用4. apply调用 this是Javascript语言的一个关键字.它代表函数运行时,自动生成的一个内部对象,只能在函数 ...

  9. 【工具相关】Web-将网站放在XAMPP上面

    一,将XAMPP服务器打开--->Welcome--->Open Application Folder. 二,会出现如下所示界面.找到htdocs. 三,打开htdocs.如下图所示. 四 ...

  10. 【读书笔记】iOS-设置应用的硬件需求

    如果你的应用需要一些特定的硬件设备才能运行,你可以在应用的Info.plist文件中添加应用运行所需的硬件列表.如果设备上没有这些硬件的话,你的应用将不会启动. 如图,找到Info.Plist---& ...