如何使用BleuIO發(fā)送BLE空氣質(zhì)量數(shù)據(jù)到Arduino云
藍牙低功耗(BLE)設(shè)備廣泛用于環(huán)境監(jiān)測,但將其數(shù)據(jù)傳輸?shù)皆贫送ǔP枰獜?fù)雜的sdk、網(wǎng)關(guān)或?qū)S衅脚_。在本教程中,我們演示了一個簡單而靈活的替代方案:使用BleuIO作為USB BLE網(wǎng)關(guān)將BLE廣告數(shù)據(jù)直接發(fā)送到Arduino Cloud。
在這個項目中,我們建立了一個輕量級的數(shù)據(jù)管道,其中HibouAir空氣質(zhì)量傳感器通過BLE廣告廣播環(huán)境數(shù)據(jù),BleuIO掃描并捕獲數(shù)據(jù),Python腳本解碼值,結(jié)果直接發(fā)送到Arduino Cloud進行存儲和可視化-所有這些都使用免費工具。
本項目旨在作為展示示例,說明如何快速透明地完成BLE開發(fā)和云集成,而無需BLE sdk或嵌入式固件開發(fā)。
為什么是Arduino Cloud?
Arduino Cloud為存儲和可視化物聯(lián)網(wǎng)數(shù)據(jù)提供了一個方便可靠的平臺,無需構(gòu)建和維護自定義后端。雖然它經(jīng)常與Arduino硬件相關(guān)聯(lián),但該平臺支持手動設(shè)備,這使得它適合基于網(wǎng)關(guān)的解決方案,其中數(shù)據(jù)來自外部設(shè)備(如BLE傳感器)。在這個項目中,Arduino Cloud作為一個安全的端點,解碼的空氣質(zhì)量數(shù)據(jù)可以使用標準的MQTT通信發(fā)布。其集成的儀表板允許開發(fā)人員快速可視化傳感器數(shù)據(jù),這對于需要最少設(shè)置的原型、演示和概念驗證項目特別有用。
硬件和軟件要求
硬件
?HibouAir二氧化碳空氣質(zhì)量監(jiān)測儀
?藍牙低功耗USB加密狗
軟件
?Python 3.9或更高版本
?pyserial Python庫
?arduino-iot-cloud Python庫
?Arduino云
不需要嵌入式編程或BLE sdk。
系統(tǒng)如何運作
HibouAir設(shè)備定期在其BLE廣告負載中廣播空氣質(zhì)量數(shù)據(jù)。BleuIO持續(xù)掃描附近的BLE廣告,并過濾匹配特定設(shè)備標識符的數(shù)據(jù)包。當檢測到匹配的廣告時,Python網(wǎng)關(guān)腳本提取原始數(shù)據(jù)并應(yīng)用解碼邏輯將十六進制值轉(zhuǎn)換為人類可讀的測量值。然后使用經(jīng)過身份驗證的MQTT通信將這些解碼的值發(fā)布到Arduino Cloud。整個過程連續(xù)運行,無需與傳感器建立持久的BLE連接即可實現(xiàn)實時數(shù)據(jù)更新。
Arduino云設(shè)置(一步一步)
步驟1:創(chuàng)建或登錄Arduino Cloud
創(chuàng)建一個免費帳戶或登錄到您現(xiàn)有的帳戶。登錄后將生成Arduino Cloud
?設(shè)備ID
?秘密密鑰
安全地保存它們——它們將在Python腳本中使用。
步驟2:創(chuàng)建設(shè)備
?從左側(cè)菜單單擊“添加設(shè)備”
?選擇手動設(shè)備
?將設(shè)備命名為HibouAir
步驟3:創(chuàng)建一個東西
當提示創(chuàng)建設(shè)備后,創(chuàng)建一個新的東西,并命名為HibouAir的東西。
步驟4:添加云變量
向Thing添加以下變量:
?變量名
?類型
?描述
?co2_ppm
?int
?CO?濃度(ppm)
?temperature_c
?浮動
?溫度(℃)
?humidity_rh
?浮動
?相對濕度(%)
步驟5:創(chuàng)建儀表板
回到Dashboards并創(chuàng)建一個新的儀表板。
添加小部件,例如:
?CO2值小部件
?溫度測量部件
?隨時間變化的濕度圖表小部件
您的云設(shè)置現(xiàn)在已經(jīng)完成。
配置secrets.py
更新以下值:
確保串口與BleuIO連接的位置匹配。
配置gateway.py
在gateway.py中,更新scan命令:
本例中,220069為BLE廣告中使用的HibouAir板號。如果您的HibouAir設(shè)備使用不同的ID,請相應(yīng)地更新此值。
運行項目
一旦Arduino Cloud配置和本地腳本設(shè)置完成,運行項目只需要一個命令。
當執(zhí)行網(wǎng)關(guān)腳本時,BleuIO進入雙角色模式,并開始掃描與指定HibouAir板標識符匹配的BLE廣告。當接收到廣告數(shù)據(jù)包時,腳本對傳感器值進行解碼,并立即將其發(fā)布到Arduino Cloud。不一會兒,儀表板就開始顯示實時空氣質(zhì)量數(shù)據(jù)。這種連續(xù)循環(huán)允許系統(tǒng)以最小的開銷作為實時ble到云的網(wǎng)關(guān)運行。
自定義儀表板
Arduino Cloud儀表板可以定制,以最適合用戶需求的方式呈現(xiàn)空氣質(zhì)量數(shù)據(jù)??梢允褂脭?shù)字小部件顯示實時值,儀表可用于可視化二氧化碳濃度或溫度等范圍,并且可以添加圖表小部件以顯示隨時間變化的趨勢。通過安排和配置這些小部件,用戶可以創(chuàng)建一個清晰和信息豐富的界面來監(jiān)測室內(nèi)空氣質(zhì)量。這種靈活性使得儀表板不僅適用于開發(fā)和測試,而且適用于演示和現(xiàn)場演示。
該項目演示了如何使用最小和透明的方法有效地捕獲BLE廣告數(shù)據(jù)并將其傳輸?shù)皆贫?。通過結(jié)合HibouAir傳感器、BleuIO、一個簡單的Python網(wǎng)關(guān)和Arduino Cloud,可以創(chuàng)建一個完整的端到端監(jiān)控解決方案,而無需依賴復(fù)雜的sdk或嵌入式固件開發(fā)。雖然本教程的重點是空氣質(zhì)量數(shù)據(jù),但同樣的方法可以擴展到其他基于ble的傳感器和云平臺。作為一個示例,它突出了BleuIO作為BLE開發(fā)工具的靈活性,并為希望構(gòu)建和擴展自己的BLE支持云解決方案的開發(fā)人員提供了堅實的基礎(chǔ)。
本文編譯自hackster.io





