TA的每日心情 | 衰 2019-1-14 09:24 |
---|
签到天数: 3 天 连续签到: 1 天 [LV.2]偶尔看看I
|
为了远程监控家里的老式电视机,需要用到yeelink智能物联平台来接受检测数据。
那么怎么监控这种不智能的机器呢,它又不能上网。
根据家里的长辈的习惯,开电视机必开盒子,关电视机必关盒子!检测电视机盒子是否开机就等同于电视机是否在开,也等同于家长在看电视。
电视机盒子的开关状态=家长看电视机的状态,所以我只要检测盒子任何一个部位是否通电即可,直接用电视盒子上的USB接口给BBB供电,然后检测这个状态即可,来看看我的电视盒子
图片有点黑,大致就是电视机盒子一个USB线连接到BBB。这样盒子一开机,BBB就自动上传数据。
为了把数据传到yeelink平台,需要注册账号,增加设备,添加传感器,获取apikey(俗称通讯密钥),device id(设备号),sensor id(传感器号)
然后呢 我们参考一个Python脚本,此处我们直接借鉴树莓派上传cpu的Python脚本即可。
#coding=utf-8
import time
import json
import requests
#yeelink api配置
api_url='https://api.yeelink.net/v1.0'
api_key='api_key' #请填入专属的api key
api_headers={'U-ApiKey':api_key,'content-type': 'application/json'}
raspi_device_id=19283
cpu_sensor_id=33814
#得到CPU温度
def get_cpu_temp():
cpu_temp_file = open( "/sys/class/thermal/thermal_zone0/temp" )
cpu_temp = cpu_temp_file.read()
cpu_temp_file.close()
return float(cpu_temp)/1000
#上传CPU温度到yeelink
def upload_cpu_temp_to_yeelink():
url=r'%s/device/%s/sensor/%s/datapoints' % (api_url,raspi_device_id,cpu_sensor_id)
strftime=time.strftime("%Y-%m-%dT%H:%M:%S")
print "time:",strftime
cpu_temp=get_cpu_temp()
print "cpu_temp:",cpu_temp
data={"timestamp":strftime , "value": cpu_temp}
res=requests.post(url,headers=api_headers,data=json.dumps(data))
print "status_code:",res.status_code
def main():
while True:
upload_cpu_temp_to_yeelink()
#休眠60秒
time.sleep(60)
if __name__ == '__main__':
main()
这段脚本 几处需要修改,APIKEY ,DEVICE_ID,SESSOR_ID,,在树莓派中有相应的CPU温度文件 读取后除以、1000即可得到摄氏温度。此时我不想传单一数据,于是开始寻找BBB的 CPU温度文件,百度之后尽然没有任何结果,最后找到一个网站有这样的介绍
然后找到了脚本
此时我是很开心的,这是一个通俗易懂的bash。然后我cat 了这个文件一下!,尽然没有!!!连路径都不对。那我不得不自己造一个文件
不错 就是一个里面有10这个数字的文件。只要通电BBB就会不断上传,那么yeelink就可以看到数据,如果不同点yeelink就是0,
此时我运行 写好的watch_tv.py
命令式 python watch_tv.py .
然后在yeelink上观察一下
准确收到数据 ,此时我们可以认为电视机已经开机(虽然我开了,实际上并没有人看电视,但是我如果上班 观察这个数据后 就能断定家长在看电视),(*^__^*) 嘻嘻……到了这里并没有完全搞定,还需要让BBB自定执行脚本watch_tv.py
,这个需要用crone软件来搞定,这个没有任何难度,小编我就先写到这里 |
|