前面神游到物联网的概念时,提到过当前的Tings状态收集和指令下发方式,都是通过后台统一的Server负责处理的,yeelink.net就是一家提供这种服务的新兴创业公司,看公司简介,融资应该很成功,正在蓬勃发展中,而且也在扩展招人,有兴趣的小伙伴可以去投简历试试~。今天就以他们提供的服务来测试一下如何收集并上传树莓派的信息。
1.注册账号,新建设备,新建传感器
都是通用的东西,就不详细介绍了,只需要注意拷贝自己的ApiKey,新增传感器时,类型选择“数值型传感器”,因为这是第一次试用,所以选简单的模式
2.确定要上传的数据
由于对GPIO的操作还在了解阶段,所以不敢卖弄通过DHT或者LM35什么的去收集当前温湿度,以下只选择树莓派自己的CPU温度作为统计的数据(这个比较简单,google可以查到树莓派记录当前CPU温度的文件是/sys/class/thermal/thermal_zone0/temp)
3.格式化数据
由于yeelink要求上传的数据必须以json的格式存储,所以还需要将温度信息格式化为yeelink接受的模式,参考python的文件操作方式,将温度信息格式化后另存为一个新文件,如下:
1 2 3 4 5 6 7 8 9 10 |
fin=open('/sys/class/thermal/thermal_zone0/temp','r') temp=int(fin.readline()) #print(temp) #格式化后的数据存放在/home/pi/study/yeelink/number.txt中 fout=open('/home/pi/study/yeelink/number.txt','w') fout.write('{"value":%.2f}'%(temp/1000)) fin.close() fout.close() |
4.上传数据
yeelink数据上传方式都是通过HTTP的POST方式,参考官方说明和他人的经验,命令如下:
1 2 3 |
curl --request POST --data-binary @"/home/pi/study/yeelink/number.txt" --header "U-ApiKey:ff41a59c22a4ad55a04ded3139d10000" http://api.yeelink.net/v1.0/device/343132/sensor/380713/datapoints |
U-ApiKey是注册后得到的API Key,http://api.yeelink.net/v1.0/device/343132/sensor/380713/datapoints是增加传感器后yeelink自动分配的地址
为了方便,做个定时任务,每分钟上传一次数据
#EDITOR=vim;export EDITOR
1 2 3 4 |
1-59 * * * * /usr/bin/python /home/pi/study/yeelink/yeelink.py > /home/pi/study/yeelink/yeelink.log 2>&1 1-59 * * * * /bin/sh /home/pi/study/yeelink/yeelink.sh > /home/pi/study/yeelink/yeelink.log 2>&1 |
5.查看yeelink的数据信息
登录yeelink网站后在管理设备中,查看已经收集的传感器信息
后记感慨:
1.python和HTTP的基础太弱了,不能非常easy的实现自己的想法。
2.这人上了年纪,有些内容在头脑中就自动“阅后既焚”了,让我想起初中英语老师经常骂我们猴子搬苞谷,这下成真了。