資料介紹
描述
Github 回購
https://github.com/HomeSmartMesh/sdk-hsm-thingy53
這個項目解決什么問題?
Thingy53 是唯一一款集成 BME688 的即用型 DevKit,可在低功耗模式下使用可充電電池運行,并支持低功耗開放線程網狀網絡。不幸的是,目前還沒有允許 Thingy53 使用 BME688 的現有項目,唯一現有的 BME680 Zephyr 驅動程序無法讀取 BME688 氣體值。
集成 I2C 驅動程序和讀取寄存器值也是不夠的,因為 IAQ 需要博世僅在 .a 庫中發布的高級算法。
解決方案
這個項目包括
- Zephyr 將 BME688 驅動程序和二進制庫與博世的 BSEC2 算法集成在一起,用于 IAQ(室內空氣質量)測量。
- 帶有 OpenThread 的網狀網絡作為客戶端廣播 UDP 數據包并運行傳感器服務器。
- 具有用于配置的 json 輸入和用于傳感器的輸出的 C++ 應用程序支持服務器端點和廣播到 MQTT 的直接映射
輸出
在我們開始詳細的步驟描述之前,讓我們看一下您可以從該項目中獲得的最終結果。
這是來自 MQTT 資源管理器的屏幕截圖,Thingy53 在 x3 不同主題 state、light 和 env 上的帖子
env 的詳細信息如下,包括由 BSEC2 供應商庫計算的 breath_voc、co2_eq、iaq 和 iaq_accuracy,以及 gas0 中的原始氣體值、濕度、壓力、溫度,如果磨合完成(第一次長時間使用) , 如果穩定在上電后完成,最后是自上電以來的樣本計數。
開發套件
下面是一個打開的盒子 Nordic Thingy53 連接到 USB 和 j-Link 調試器
硬件
- Nordic 的Thingy53物聯網原型平臺
- Segger 的j-Link Edu mini (可選)
在這個 repo 的示例中使用的傳感器
BME688 數字鼻子:低功耗氣體、壓力、溫度和濕度傳感器,帶 AI
- BME688 產品頁面
- BME688 數據表
- BME688 數字鼻子:低功率氣體、壓力、溫度和濕度傳感器,帶 AI BME688 產品頁面BME688 數據表
顏色傳感器 BH1749NUC
- BH1749NUC 數據表
- 測量紅色、綠色、藍色和紅外線
- 照度檢測范圍 80 klx (0.0125 lux/count)
- 顏色傳感器 BH1749NUC BH1749NUC 數據表測量紅色、綠色、藍色和 IRIlluminance 檢測范圍 80 klx (0.0125 lux/count)
回購結構
驅動程序和庫
在此 repo 中創建了以下驅動程序和庫
BME688 Zephyr 驅動程序:在drivers/sensor/bme688
-
BME68x-Sensor-API
供應商驅動程序集成https://github.com/boschsensortec/BME68x-Sensor-API - C語言使用Zephyr的Sensor API在BME688簡單強制模式下的使用
- 在并行模式下使用 BME688 并獲取所有 x10 氣體測量值的驅動程序擴展功能
BME688 服務器:在subsys/bme688_server中
- 用于在 json 結構中配置 BME688 使用的 C++ 包裝器(溫度曲線和持續時間)
- 處理程序以 json 結構(溫度、濕度、壓力、gas-0..gas-9)傳遞傳感器結果
-
Bosch-BSEC2-Library
.供應商的 IAQ(室內空氣質量)測量二進制集成https://github.com/boschsensortec/Bosch-BSEC2-Library
BME688 組件和數據
用法
mkdir thingy53
cd thingy53
>west init -m https://github.com/HomeSmartMesh/sdk-hsm-thingy53 --mr main
>west update
構建樣本
cd hsm/samples/20_sensors_server
west build
west build -- -DOVERLAY_CONFIG="overlay-logging.conf"
使用附加的調試器閃爍
>west flash
手動閃爍
- 連接USB
- 按住 SW2 開機,查看通過 USB 更新 thingy53的詳細信息
-
帶 nRFConnect 編程器閃存
hsm\samples\20_sensors_server\build\zephyr\dfu_application.zip
串行端口
-
USB 串行端口:通過配置,
CONFIG_STDOUT_CONSOLE=y
此板創建一個標準輸出的 UAB 虛擬 COM 端口。注意使用nRFSDK Connect Serial Terminal可以自動檢測并重連串口,刷機后自動恢復非常有用 -
RTT 調試器串行端口:使用
CONFIG_USE_SEGGER_RTT=y
附加調試器可以記錄日志,而不使用板 USB 設備,但這需要以不同方式重建示例。
加入線程網絡
joiner 配置示例CONFIG_OPENTHREAD_JOINER_PSKD
為13_ot_joiner、14_ot_udp_echo_server、15_udp_json_endpoint和20_sensors_server注意:確保在 raspberry pi commissioner 啟動后按下 Thingy53 按鈕。該按鈕將重置設備并嘗試在新啟動時加入線程網絡。
加盟信息:
-
可以
eui64
通過首先閃爍日志記錄版本來知道overlay-logging.conf
-
不知道
eui64
也可以使用“*”作為eui64
參數進行調試
在樹莓派上
sudo ot-ctl
commissioner start
commissioner joiner add * ABCDE2
注意:在實際的部署項目中,加入者代碼是必須保密的關鍵信息,以防止設備劫持。
有關樹莓派邊界路由器安裝的更多詳細信息,請參閱“樹莓派服務器”部分
現在要創建一個完整的傳感器服務器,您可以立即跳轉到示例 20
20_sensors_server
- OpenThread Joiner 設備
- OpenThread mesh 客戶端廣播 udp json 數據包,其中包含電壓、活動計數器、充電狀態、環境光 RGB IR、溫度、壓力、濕度和室內空氣質量
- OpenThread 服務器端點可以接收 json 命令并發回響應
這個回購協議是如何創建的
本節包含一些提示,供那些愿意使用 Zephyr 為自己的應用程序創建類似項目的人使用。
- 第一步是熟悉 Zephyr,一個很好的參考是https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/develop/index.html
- 第二個是關注 west 的小節https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/develop/west/index.html
這個存儲庫針對 nRF 開發工具包,因此從 nRF 的 Zephyr 分支和其他依賴項中派生它更安全。步驟是:
- west.yml 依賴項取自https://github.com/nrfconnect/sdk-nrf/blob/main/west.yml
-
默認遠程是 hsm 而不是 ncs,因此在
projects:
遠程 ncs 中需要在適用的地方添加 -
在應用程序中
zephyr
,name-allowlist
有助于減少對 Zephyr 的依賴 - 另請注意,一些 Zephyr 依賴項可以替換為頂級項目,例如 mbedtls,然后從 nRF fork 而不是 Zephyr
-
在 Kconfig wanrings 的情況下,有必要與原始 repo (ncs/nrf) 進行比較并找到使用該標志的目錄(依賴項),例如缺少配置,其中定義了默認值,顯示依賴
NRF_MODEM_LIB_SHMEM_CTRL_SIZE
項從到NRF_MODEM_SHMEM_CTRL_SIZE
nrfxlib\nrf_modem\Kconfig
nrfconnect/nrf
nrfconnect/nrfxlib
如何測量電流消耗
Thingy53 帶有電流感應擴展板,可以使用 Nordic PPKII(Power Profile Kit)測量實時電流消耗https://www.nordicsemi.com/Products/Development-hardware/Power-Profiler-Kit- 2個
示例測量
我們注意到 Thingy53 是如何工作的,它以短電流脈沖加載電容,然后保持降低的消耗。雖然在啟動時我們注意到峰值約為 50 mA,但平均周期持續時間約為 5 mA。
請注意,這當然高度依賴于使用的傳感器和無線外圍設備的使用頻率,這就是為什么在其現實生活條件下分析每個應用程序很重要的原因。
樹莓派服務器
這個 repo 提供了代碼和幫助程序來設置一個樹莓派 openthread 邊界路由器,它將 udp 數據包轉發到 MQTT
請注意,使用 openthread,Thingy53 獲得了自己的基于 ip 的通信能力,剩下的取決于用戶在上面使用哪種應用程序協議。盡管 Matter 是一個選項,但它對于小型項目來說非常具有挑戰性,并且并不總是提供通過自定義傳感器結構所需的靈活性。如果您的應用程序只需要一個 json 結構,那么您可能不需要該 json 結構的專用二進制編碼,因為這是常見的應用程序協議的用途。
這里有一個直接鏈接到將 json udp 數據包轉發到 MQTT 的腳本,它非常簡單并且可以根據需要進行自定義,例如處理友好的名稱,以防您將傳感器位置從一個房間更改到另一個房間。
https://github.com/HomeSmartMesh/raspi/blob/master/py/thread_tags/thread_tags_mqtt.py
格拉法納儀表盤
現在我們的數據包已連接到 MQTT,剩下的就是如何將它們引入 Grafana。例如,鏈接的 Raspberry pi 服務器提供了設置自己的 influxDB 以記錄數據所需的一切。
下面是儀表板的屏幕截圖
注意:此屏幕截圖是傳感器校準階段的一部分,是的,因為這是一個 DevKit 而不是最終產品,因此必須由您完成校準,以便您了解 IAQ 傳感器的工作原理,博世提供了出色的文檔甚至AI-Studio 玩機器學習和氣體氣味識別(這可能是未來帖子的范圍)。這里是 BME AI-Studio 手冊的鏈接https://www.bosch-sensortec.com/media/boschsensortec/downloads/application_notes_1/bst-bme688-an001.pdf
BME688并聯模式
在并行模式下,BME688 提供多達 x10 的測量值和所謂的溫度曲線,請參閱數據表第 16 頁中的詳細信息https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme688- ds000.pdf
下面是 Thingy53 廣播 gas-0 到 gas-9 作為連續存儲在數據庫中的 json 數據包。
雖然到目前為止,這些寶貴的信息沒有任何用處,但這開辟了在服務器上運行氣體識別智能的可能性,并且由于每個 ML 項目都是從觀察數據開始的,這可以提供一個很好的洞察力傳感器如何工作。
Zephyr-RTOS 為什么不是 Arduino 或 microPython?
請注意,該項目基于 Zephyr-RTOS,與 Arduino 相比,這是一個高級環境,但它可以被視為可以在 Arduino 應用程序框架下運行的較低層。該應用程序也是用 C++ 編寫的,因此一旦設置了項目,它也可以在應用程序級別具有與 Arduino 類似的可訪問性,不過我想與社區成員聯系,幫助我將這些 BME688 驅動程序和 Thingy53 Zephyr-RTOS 環境移植到Arduino 和 microPython,我確信可以將此硬件的范圍擴展到更大的社區。
- RRH46410:用于室內空氣質量應用的數字氣體傳感器模塊
- 室內空氣質量監測器開源分享
- 基于BME680的室內空氣質量計 0次下載
- Arduino BME680氣體和THS空氣質量監測器
- Covid19大流行期間的室內空氣質量檢測(IAQD)
- 室內空氣質量監測系統
- STM32移植BME680傳感器輸出IAQ(室內空氣質量)
- CN0395:適用于室內空氣質量監測的揮發性有機化合物檢測器
- 一種具有監測和超限報警的室內空氣質量監測系統 0次下載
- 室內空氣質量檢測系統設計 35次下載
- FPGA的室內空氣質量檢測與調節系統_王媛媛 2次下載
- GSM網絡的室內空氣質量監測系統設計_魏慶麗 2次下載
- 室內空氣質量管理法(草案)總說明
- 室內空氣質量管理推動方案2
- 公共場所室內空氣質量自主管理計劃書
- 華盛昌五合一PM2.5空氣質量檢測儀產品介紹 260次閱讀
- 【瑞薩RA MCU創意氛圍賽】室內空氣質量監測系統方案概述 465次閱讀
- WT2003H語音芯片在空氣質量監測系統的應用方案 527次閱讀
- 室內空氣質量檢測器的設計與實現 1718次閱讀
- 如何利用ESP8266實現便攜式空氣質量監測站的設計 3047次閱讀
- 基于創建帶有空氣質量傳感器的室內氣象站 2186次閱讀
- dfrobotSHARP空氣質量傳感器轉接模塊簡介 1648次閱讀
- 基于室內空氣盒子產品的空氣質量傳感器TGS2600的特點介紹 1025次閱讀
- 盛思銳的環境傳感器在空氣質量測試中的應用 1193次閱讀
- ZMOD4410總揮發性有機物和室內空氣質量傳感器介紹 5913次閱讀
- 空氣質量流量計的原理及設計 2808次閱讀
- 微型空氣質量監測系統,空氣質量微型監測站介紹 3659次閱讀
- 空氣質量傳感器原理及作用 3.2w次閱讀
- 什么是空氣質量傳感器_小米空氣凈化器2空氣質量傳感器 3622次閱讀
- 室內空氣質量檢測與傳感器的應用 1982次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多