2327|1

50

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

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

本帖最后由 liyuyao001 于 2017-7-24 20:59 编辑

第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,找遍了网上,发现最有用,最详细的,还是官方文档:
整个文档没有多长,半个小时就能看完,发现里面有两段示例代码,网上能找到的示例代码也就是从这两个示例代码来的。
我主要需要完成两个动作,第一个是读出电量信息,这个信息是可以读的,参考了下面这个网页http://shawnhymel.com/665/using-python-and-ble-to-receive-data-from-the-rfduino/
另外一个是设置为listen模式,接收BLE Central发送的数据。
最终,两种数据都可以读出来。我的两个Python的代码见附件。
用Python解析后的数据可以通过SSH打印出来:
2. 需要找一个云端服务提供商,以便我的Pi3B可以将报警推送到手机上。目前有两种方案:1,使用专门的推送服务,比如InstaPush,或则GAE,SAE等,2,使用微信的公众号测试接口。
看了下网上的资料,认为InstaPush更容易实现,微信公众号比较麻烦,可能需要和SAE配合使用才行,因为数据不能直接推送到Tencent的服务器上,还需要一个服务器,而且,还需要Pi3B有一个公网IP。决定用InstaPush先上。
后续有时间可以试试微信公众号的方法,有几个网页可以参考:
我在Python脚本中设置了,当温度 >30 deg C 或者湿度 >70%的时候,发送推送到手机上,最终实现的效果如下:
SSH终端:
手机:




ble_read_by_UUID.py

612 Bytes, 下载次数: 1

bluepy_handle_notifications.py

2.05 KB, 下载次数: 1

此帖出自NXP MCU论坛
点赞 关注
 

回复
举报

50

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
占沙发
此帖出自NXP MCU论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表