注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
liyuyao001的个人空间 https://home.eeworld.com.cn/space-uid-43527.html [收藏] [复制] [分享] [RSS]
日志

【基于KW41Z的环境传感器】第4贴 - Rasp Pi3B用Python脚本处理测量数据并推送到手机

已有 802 次阅读2017-7-24 20:58

第3贴中通过调用BlueZ协议栈中的gatttool等命令通过BLE将数据从KW41Z中读了出来。但是最终需要实现程序的自动运行,并且,需要对读到的HEX数据进行解析,然后推送给手机。因此,还有2步要做,解析命令,以及找到一个合适的远程通知推送服务。
1. 解析命令,计划使用一个script来做,可以使用bash shell,也可以使用python来写。考虑到还需要在script中调用BlueZ的命令,可以使用bash来调用或者Python来直接通过os.system函数运行其他程序。而BlueZ还有用python封装好的协议栈,可以方便地使用python调用。因此决定使用Python来做。
Python需要现学现用,找到了几个网站,有Python教程,觉得还挺好的几个:
然后,对于Python这个工具有了一点认识之后,需要知道怎么使用Bluepy的API,找遍了网上,发现最有用,最详细的,还是官方文档:
整个文档没有多长,半个小时就能看完,发现里面有两段示例代码,网上能找到的示例代码也就是从这两个示例代码来的。
我主要需要完成两个动作,第一个是读出电量信息,这个信息是可以读的,参考了下面这个网页javascript:;
另外一个是设置为listen模式,接收BLE Central发送的数据。
参考了这个网页javascript:;
最终,两种数据都可以读出来。我的两个Python的代码见附件。
用Python解析后的数据可以通过SSH打印出来:
2. 需要找一个云端服务提供商,以便我的Pi3B可以将报警推送到手机上。目前有两种方案:1,使用专门的推送服务,比如InstaPush,或则GAE,SAE等,2,使用微信的公众号测试接口。
看了下网上的资料,认为InstaPush更容易实现,微信公众号比较麻烦,可能需要和SAE配合使用才行,因为数据不能直接推送到Tencent的服务器上,还需要一个服务器,而且,还需要Pi3B有一个公网IP。决定用InstaPush先上。
参考这个网页javascript:;
后续有时间可以试试微信公众号的方法,有几个网页可以参考:
我在Python脚本中设置了,当温度 >30 deg C 或者湿度 >70%的时候,发送推送到手机上,最终实现的效果如下:
SSH终端:
手机:


本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章