|
随着物联网逐渐进入我们的生活,我们需要随时随地查看远端的设备运行状态及对设备进行控制,
Yeelink
为我们提供了一个很好的云端服务器平台,设备通过网络连接到
Yeelink
服务器,上传本地检测数据,电脑或手机通过手机访问即可看到设备数据,网上也有很多朋友使用
Yeelink
来做远程监控的示例,下面我们来介绍如何使用
Yeelink
做远程检测与控制,如有错误还请大家指正。
下面是
Yeelink
远程监控的一个大致框图

1、首先进入
Yeelink
主页“
http://www.yeelink.net/
”注册一个自己的帐号,下面是主页为我们开发者提供的一个简单的开发流程

2、按照上面的流程点击添加设备,输入设备信息,在下面的地图中选择设备所在地

3、进入到设备管理界面,设置设备图片,添加传感器

4、添加传感器,这里我们添加一个数值型传感器和一个开关型传感器,通过下面选择设置传感器信息

传感器添加完成之后宝马
1768
设备下面出现两个传感器:
AD
转换值和
LED1
,
AD
转换值属于数值型传感器,显示
AD
转换电压,
LED1
属于开关型传感器,用于控制宝马开发板
LED
灯亮灭,注意下面标记出来的地方蓝色框框第一个是设备
ID
即宝马
1768
的
ID
,第二个为传感器
ID
即对应
AD
转换值和
LED1
各自的
ID
,由于两个传感器同属于宝马
1768
设备下面的两个传感器所以设备
ID
相同,而传感器
ID
不同,这几个
ID
会在后面编程中使用到

6、进入我的账户找到
API KEY
,当要进行传输数据时需要使用到该密码

7
、上面
Yeelink
的设置基本完成了,就要开始进行程序编写了,这里我们直接使用宝马开发板搭建好的
TCP
客户端例程进行添加修改,在系统配置完成之后初始化
ADC
和
LED
8、我们可以看到程序中通过判断
num
值来发送两个不同的字符串,这里
num
就是用来区别是用来上传
AD
转换值还是
LED
状态获取的下面看看两个字符串数据,我们可以看到下面两个字符串中第一行都出现了我们设备的
ID
和传感器
ID
,
send_data1
对应是
AD
转换值上传,所以
ID
为
20165
,而
send_data2
为
LED
控制,
ID
对应为
20166
,
U-ApiKey
后面紧跟着就是我们上面在账户设置里面的密码,
Yeelink
的
API
格式比较固定,至于其他一些参数可以参考
Yeelink API
文档
char send_data1[300] = "POST /v1.0/device/12402/sensor/20165/datapoints HTTP/1.1\r\n\
Host: api.yeelink.net\r\n\
Accept: */*\r\n\
U-ApiKey: 615e52feacb3a8b18ab424703c00bfbf\r\n\
Content-Length: 14\r\n\
Content-Type: application/json;charset=utf-8\r\n\
Connection: close\r\n\
\r\n\
{\"value\":96 }\r\n"; /*
发送用到的数据
*/
这里有一点需要注意的是
Content-Length
的长度必须为”value”后面跟着字符串的长度值加
10
,上面设置为
14
即”value”后面的值为
4
位,这里初始化是”96 “
char send_data2[300] = "GET /v1.0/device/12402/sensor/20166/datapoints HTTP/1.1\r\n\
Host: api.yeelink.net\r\n\
Accept: */*\r\n\
U-ApiKey: 615e52feacb3a8b18ab424703c00bfbf\r\n\
Content-Length: 0\r\n\
Connection: close\r\n\
\r\n\
print get done.\r\n"; /*
发送用到的数据
*/
另外还有一点需要注意的是,当我们查询
LED
状态时需要接收
Yeelink
服务器数据,那么数据的哪部分才是对我们有用的呢,我们可以使用网络调试助手,将调试助手连接到
Yeelink
服务器,发送字符串
send_data2
的内容,即可获取服务器返回消息,其中”value”后面的
0
是我们需要的数据,表明现在开关是关着的,若开关打开则返回为
1

9、上面
Yeelink
设置和程序都介绍完了,下面就开始测试了下面是电脑显示波形

手机可以查看设备地址


下面在看一下
LED
控制,手机拍照效果不好

