无线传感器信标扫描仪。

micropython-ruuvitag的Python项目详细描述


PyPi Status

使用支持micropython蓝牙的微控制器(如pycom设备)从RuuviTag BLE Sensor Beacon获取数据。

micropython ruuvitag支持Data Format 2, 3, 4 and 5

这个包裹配有扫描仪和跟踪器。扫描仪在预先定义的时间内扫描ruuvitag并返回结果。跟踪器持续扫描ruuvitag,并为找到的每个标记调用回调。

安装

安装软件包的最简单方法是通过upip

>>> import upip
>>> upip.install('micropython-ruuvitag')

对于手动安装,请将包含所有文件的ruuvitag目录复制到设备的lib目录。

使用mpfshell

安装
$ mpfshell ttyUSB0 -s install.mpf

扫描仪

RuuviTagScanner扫描ruuvitags并解码数据格式。结果是一个带有命名元组的列表

扫描RuuviTag传感器10秒并打印结果:

fromruuvitag.scannerimportRuuviTagScannerrts=RuuviTagScanner()forruuvitaginrts.find_ruuvitags(timeout=10):print(ruuvitag)

跟踪器

RuuviTagTracker扫描ruuvitag,解码数据格式,如果从标记接收到数据,则使用命名元组调用回调。

fromruuvitag.trackerimportRuuviTagTrackerdefcb(ruuvitag):print(ruuvitag)rtt=RuuviTagTracker()rtt.track_ruuvitags(cb)

白名单设备

通过定义带有mac地址的白名单,您可以只从所需的设备收集数据。其他设备将被忽略。白名单可以与ruuvitagscanner和ruuvitagtracker一起使用。

whitelist=(b'aa:bb:cc:dd:ee:21',b'aa:bb:cc:dd:ee:42',)rts=RuuviTagScanner(whitelist)

黑名单持久性

如果蓝牙设备的数据无法解码,只要micropython设备没有重置,该设备就会进入黑名单。对于永久性设备黑名单,应保存并重新加载该列表

>>> from ruuvitag import RuuviTagScanner
>>> rts = RuuviTagScanner()
>>> # add back blacklisted devices
>>> rts.blacklist = [b'aa:bb:cc:dd:ee:21', b'aa:bb:cc:dd:ee:42']
>>> # run a new scan
>>> rts.find_ruuvitags(timeout=10)
>>> # get blacklisted devices
>>> rts.blacklist

命名元组格式

数据格式2和4(eddystone url)

RuuviTagURL=namedtuple('RuuviTagURL',('mac','rssi','format','humidity','temperature','pressure','id',))

数据格式3(RAWv1)和5(RAWv2)

RuuviTagRAW=namedtuple('RuuviTagRAW',('mac','rssi','format','humidity','temperature','pressure','acceleration_x','acceleration_y','acceleration_z','battery_voltage','power_info','movement_counter','measurement_sequence',))

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android首选项相同getPreference()值的不同数据   字符串如何在Java中连接两个列表中的单词   安卓 Java Socket编程:检测客户端和服务器是否连接   使用JTextField的java无法将值转换为int   在java中,如何在不通过超级构造函数设置的情况下将消息设置为自定义异常类   用于标识属性值的java正则表达式模式   Android中的java不可见谷歌地图   java正确取消启动ExecutorService的JavaFX任务   在非活动java类中使用安卓的融合位置提供程序,并在主活动类中获取经度和纬度   spring为什么我的大摇大摆不能用springboot在java中工作?   java JSF(2.2)ViewScope在Weblogic 12.2.1.2和JDK 8上使用Spring 4.3.7(在Mac OS和Docker Oracle Linux环境上)   java如何用一个按钮提高计时器速度   java如何检查字符是否是元音?   注册表引用了不存在的Java运行时环境安装或运行时已损坏错误   来自ResultSet java的mysql getDateTime   maven LanguageTool Java API是否具有“无用”依赖关系?   twitter api身份验证的java Trycatch问题   java在Apache Struts 1.1中是否可以显式白名单?   安卓致命异常:主java。lang.RuntimeException:被问及未知片段