查看: 811|回复: 0

BBB+监控家长是否在看电视

[复制链接]
  • TA的每日心情

    2019-1-14 09:24
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-9-25 09:38:53 | 显示全部楼层 |阅读模式
    分享到:
    为了远程监控家里的老式电视机,需要用到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软件来搞定,这个没有任何难度,小编我就先写到这里
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-29 06:42 , Processed in 0.121853 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.