无线传感器信标扫描仪。
micropython-ruuvitag的Python项目详细描述
使用支持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',))