如何使用BleuIO发送BLE空气质量数据到Arduino云
扫描二维码
随时随地手机看文章
蓝牙低功耗(BLE)设备广泛用于环境监测,但将其数据传输到云端通常需要复杂的sdk、网关或专有平台。在本教程中,我们演示了一个简单而灵活的替代方案:使用BleuIO作为USB BLE网关将BLE广告数据直接发送到Arduino Cloud。
在这个项目中,我们建立了一个轻量级的数据管道,其中HibouAir空气质量传感器通过BLE广告广播环境数据,BleuIO扫描并捕获数据,Python脚本解码值,结果直接发送到Arduino Cloud进行存储和可视化-所有这些都使用免费工具。
本项目旨在作为展示示例,说明如何快速透明地完成BLE开发和云集成,而无需BLE sdk或嵌入式固件开发。
为什么是Arduino Cloud?
Arduino Cloud为存储和可视化物联网数据提供了一个方便可靠的平台,无需构建和维护自定义后端。虽然它经常与Arduino硬件相关联,但该平台支持手动设备,这使得它适合基于网关的解决方案,其中数据来自外部设备(如BLE传感器)。在这个项目中,Arduino Cloud作为一个安全的端点,解码的空气质量数据可以使用标准的MQTT通信发布。其集成的仪表板允许开发人员快速可视化传感器数据,这对于需要最少设置的原型、演示和概念验证项目特别有用。
硬件和软件要求
硬件
•HibouAir二氧化碳空气质量监测仪
•蓝牙低功耗USB加密狗
软件
•Python 3.9或更高版本
•pyserial Python库
•arduino-iot-cloud Python库
•Arduino云
不需要嵌入式编程或BLE sdk。
系统如何运作
HibouAir设备定期在其BLE广告负载中广播空气质量数据。BleuIO持续扫描附近的BLE广告,并过滤匹配特定设备标识符的数据包。当检测到匹配的广告时,Python网关脚本提取原始数据并应用解码逻辑将十六进制值转换为人类可读的测量值。然后使用经过身份验证的MQTT通信将这些解码的值发布到Arduino Cloud。整个过程连续运行,无需与传感器建立持久的BLE连接即可实现实时数据更新。
Arduino云设置(一步一步)
步骤1:创建或登录Arduino Cloud
创建一个免费帐户或登录到您现有的帐户。登录后将生成Arduino Cloud
•设备ID
•秘密密钥
安全地保存它们——它们将在Python脚本中使用。
步骤2:创建设备
•从左侧菜单单击“添加设备”
•选择手动设备
•将设备命名为HibouAir
步骤3:创建一个东西
当提示创建设备后,创建一个新的东西,并命名为HibouAir的东西。
步骤4:添加云变量
向Thing添加以下变量:
•变量名
•类型
•描述
•co2_ppm
•int
•CO₂浓度(ppm)
•temperature_c
•浮动
•温度(℃)
•humidity_rh
•浮动
•相对湿度(%)
步骤5:创建仪表板
回到Dashboards并创建一个新的仪表板。
添加小部件,例如:
•CO2值小部件
•温度测量部件
•随时间变化的湿度图表小部件
您的云设置现在已经完成。
配置secrets.py
更新以下值:
确保串口与BleuIO连接的位置匹配。
配置gateway.py
在gateway.py中,更新scan命令:
本例中,220069为BLE广告中使用的HibouAir板号。如果您的HibouAir设备使用不同的ID,请相应地更新此值。
运行项目
一旦Arduino Cloud配置和本地脚本设置完成,运行项目只需要一个命令。
当执行网关脚本时,BleuIO进入双角色模式,并开始扫描与指定HibouAir板标识符匹配的BLE广告。当接收到广告数据包时,脚本对传感器值进行解码,并立即将其发布到Arduino Cloud。不一会儿,仪表板就开始显示实时空气质量数据。这种连续循环允许系统以最小的开销作为实时ble到云的网关运行。
自定义仪表板
Arduino Cloud仪表板可以定制,以最适合用户需求的方式呈现空气质量数据。可以使用数字小部件显示实时值,仪表可用于可视化二氧化碳浓度或温度等范围,并且可以添加图表小部件以显示随时间变化的趋势。通过安排和配置这些小部件,用户可以创建一个清晰和信息丰富的界面来监测室内空气质量。这种灵活性使得仪表板不仅适用于开发和测试,而且适用于演示和现场演示。
该项目演示了如何使用最小和透明的方法有效地捕获BLE广告数据并将其传输到云端。通过结合HibouAir传感器、BleuIO、一个简单的Python网关和Arduino Cloud,可以创建一个完整的端到端监控解决方案,而无需依赖复杂的sdk或嵌入式固件开发。虽然本教程的重点是空气质量数据,但同样的方法可以扩展到其他基于ble的传感器和云平台。作为一个示例,它突出了BleuIO作为BLE开发工具的灵活性,并为希望构建和扩展自己的BLE支持云解决方案的开发人员提供了坚实的基础。
本文编译自hackster.io





