YFROBOT创客社区

标题: ESP8266 AT指令控制三、ESP8366连接Yeelink物联平台 HTTP GET/POST获取 实时通信控制 [打印本页]

作者: AllBlue    时间: 2016-3-18 08:03
标题: ESP8266 AT指令控制三、ESP8366连接Yeelink物联平台 HTTP GET/POST获取 实时通信控制
YEELINK 云平台已失联,帖子仅供参考学习,请谨慎阅读!!

ESP8366连接Yeelink物联平台 http GET/POST获取、改变云端数据,实现远程控制

模块:ESP-01   固件版本:00200.9.5(b1)
想要实现远程控制,还有必不可少的部分:设备软硬件、云端服务器和手机APP,手机APP或网页。有了ESP wifi 模块,还需要云端服务器,这个想要自己搞一套出来确实不容易,需要了解的知识也很多!所以国内出现了免费云平台:Yeelink乐联网等,方便了开发者开发个性的智能产品!当然还有许多其他平台也在做这块,其中 IoTgo:一个完全开源的物联网平台,通过部署IoTgo建立自己的云端服务器,并且它将所有源代码都开源给用户,喜欢折腾的有福了;如果能力有限还是使用现成的平台比较好。
--------------------------------------------------------------------------------------------------------------------------
步骤一:yeelink平台注册自己的传感器设备
避免篇幅过长,Yeelink平台用户注册就不在这里详述了,查看下面网址:http://www.yeelink.net/developer/doc/11注册用户后,进入用户中心:
[attach]1270[/attach]

添加自己的新设备:
[attach]1271[/attach]

进入管理设备界面,点击增加传感器:
[attach]1272[/attach]

增加自己的传感器设备(我们以简单的BUTTON为例):
[attach]1273[/attach]

完成后,在管理设备界面,可以看到已添加的传感器设备Smart Button:
[attach]1274[/attach]
添加的每个传感器都会有个ID号码,有了它,你就可以通过网络获取它的云端状态了!
在我的账户设置中,找到你的 API KEY!
[attach]1275[/attach]

记下 设备编号传感器编号及你的 API KEY,在下面的配置中会用到的!
云端准备完成,下面来配置模块吧!
--------------------------------------------------------------------------------------------------------------------------
步骤二:模块配置及获取、改变云端按钮状态
首先模块通过USB串口模块连接至电脑,打开电脑端串口软件,进行配置。

######## 获取GET网页数据(按钮状态):
[attach]1276[/attach]
AT+CWMODE=1                                                                  模块配置到 STA 模式
AT+CIPMUX=0                                                                     模块配置为单路连接状态
上面两条指令不用重复配置,重启不会改变。
AT+CWJAP="YFROBOT","XXX"                                            连接到路由器(YFROBOT为SSID,XXX为密码)
AT+CIPSTART="TCP","www.yeelink.net",80                         建立TCP连接
AT+CIPMODE=1                                                                  设置透传模式
AT+CIPSEND                                                                       发送请求
回显:">",发送网页代码(再次请求或改变数据时,无需以上AT指令配置,直接发送网页代码即可
GET /v1.0/device/你的设备ID/sensor/你的传感器ID/datapoints HTTP/1.1
Host: www.yeelink.net
Accept: */*
U-ApiKey: 你的API KEY
Content-Length: 0
Connection: close
//此处需要发送空行即“\r\n”
完成以上请求代码后,返回一串数据,其中包含 Smart Button 的状态值 "value":0。
[attach]1277[/attach]
发送网页代码(再次请求或改变数据时,无需以上AT指令配置,直接发送网页代码即可
GET /v1.0/device/你的设备ID/sensor/你的传感器ID/datapoints HTTP/1.1
Host: www.yeelink.net
Accept: */*
U-ApiKey: 你的API KEY
Content-Length: 0
Connection: close
//此处需要发送空行即“\r\n”
[attach]1278[/attach]
完成以上请求代码后,返回一串数据,其中包含 Smart Button 的状态值 "value":1。


######## 上传POST网页数据(按钮状态):
如果你未完成了GET数据过程,则先对模块进行配置:
AT+CWMODE=1                                                                  模块配置到 STA 模式
AT+CIPMUX=0                                                                     模块配置为单路连接状态
上面两条指令不用重复配置,重启不会改变。
AT+CWJAP="YFROBOT","XXX"                                            连接到路由器(YFROBOT为SSID,XXX为密码)
AT+CIPSTART="TCP","www.yeelink.net",80                         建立TCP连接
AT+CIPMODE=1                                                                  设置透传模式
AT+CIPSEND                                                                       发送请求
如果已经配置完成,则直接发送POST代码即可:
改变按钮状态为:1
POST /v1.0/device/你的设备ID/sensor/你的传感器ID/datapoints HTTP/1.1
Host: api.yeelink.net
Accept: */*
U-ApiKey: 你的API KEY
Content-Length: 11                    发送数据长度
Content-Type: application/x-www-form-urlencoded
Connection: close
//必须发送空行
{"value":1}                                 数据长度为11
发送完代码后,刷新网页即可看到按钮状态已经改变。

改变按钮状态为:0
POST /v1.0/device/你的设备ID/sensor/你的传感器ID/datapoints HTTP/1.1
Host: api.yeelink.net
Accept: */*
U-ApiKey: 你的API KEY
Content-Length: 11                    发送数据长度
Content-Type: application/x-www-form-urlencoded
Connection: close
//必须发送空行
{"value":0}                                 数据长度为11
发送完代码后,刷新网页即可看到按钮状态已经改变。
串口及网页显示如下图:
[attach]1279[/attach]
-----------------------------------------------------------end-----------------------------------------------------------

网页可以改变按钮状态,同样的手机端APP也可以,下载APP软件:
Yeelink手机APP 下载地址:http://www.yeelink.net/developer/tools
安装完成后,打开软件(保持手机连网状态):

[attach]1281[/attach]
依照上面步骤会发现,手机上的Smart Button状态和网页、模块都是同步的!





作者: PeterAngelo    时间: 2017-5-31 17:07
麻烦问下楼主,我按照要求连接了,发送http请求应该也没有问题的,把楼主的http请求的每一行都发过去了,最后发送\r\n没有反应,连续点了很多次后显示400 bad request,但是请求的代码和题主应该是一样的。

顺便问下楼主那个建立云端连接时那个80端口是固定的,还是随机的?

下面附一下出现错误的图,谢谢楼主大大了,再过一周就要验收了,就差这个yeelink连接问题了。
[attach]1825[/attach]
[attach]1826[/attach]
作者: AllBlue    时间: 2017-6-2 08:37
PeterAngelo 发表于 2017-5-31 17:07
麻烦问下楼主,我按照要求连接了,发送http请求应该也没有问题的,把楼主的http请求的每一行都发过去了,最 ...

我看图片中你应该网址输错误了吧, yeelink 不是yeeliok。其他问题没看出来!

作者: PeterAngelo    时间: 2017-6-2 20:33
我输入的是www.yeelink.net,但是ss42com显示的字符一般每行好像都有错误,那个网址我感觉应该输入api.yeelink.net。

作者: AllBlue    时间: 2017-6-3 17:14
PeterAngelo 发表于 2017-6-2 20:33
我输入的是www.yeelink.net,但是ss42com显示的字符一般每行好像都有错误,那个网址我感觉应该输入api.yeel ...

软件不应该会乱码的!你可以试试api.yeelink.net !
作者: PeterAngelo    时间: 2017-6-5 22:34
试了也是不行,感觉可能是json格式的问题
作者: tiantianyouyou    时间: 2019-5-7 16:33
值得学习的好资料,谢谢
作者: lvshiyu    时间: 2019-6-16 19:09
www.yeelink.net  这个网址已经失效了




欢迎光临 YFROBOT创客社区 (http://yfrobot.com.cn/) Powered by Discuz! X3.1