
【開發筆記】藍牙玩上癮,我買了 Nordic DK 開發板還全套感測器
資訊/科技

奧提斯
更新日:2025年4月22日
一開始只是想串個藍牙手環,結果現在… 我桌上出現了一塊 Nordic nRF52840 DK,旁邊還堆著溫濕度、光照、氣壓等一堆感測器。我朋友問我在幹嘛,我說:
我正在打造屬於自己的「BLE 小宇宙」🌌
💸 血淚購買清單
- Nordic nRF52840 DK(開發板神器,支援 BLE 5、USB、低功耗)
- Grove 溫濕度感測器
- 光照強度感測器(BH1750)
- 氣壓計(BMP280)
- 一堆杜邦線跟 I2C 拓展模組
🛒 Tips:大多感測器模組都能透過 I2C 連接,支援 Arduino 也通常能被 DK 支援。
🧰 開發流程總覽
1. 燒錄環境搭建
使用 nRF Connect for Desktop + nRF SDK
搭配 Segger Embedded Studio,整合度高、官方支援完整。Flash 韌體超方便,一鍵燒錄。
ble_stack_init(); sensors_init(); advertising_start();
2. 感測器驅動
這步最花時間,根據每個感測器的資料手冊實作 I2C 通訊邏輯。有些感測器 Nordic SDK 已經幫你包好了(感恩 Nordic)。
遇到沒現成的就得自己寫 driver,這邊有點像玩硬體版解謎 RPG。
📡 BLE 廣播與資料傳輸
你可以將感測器數據打包成 Characteristic 並透過 BLE 傳給手機:
ble_gatts_value_set(&characteristic_handle, &sensor_data);
搭配手機端 iOS App(用 CoreBluetooth)接收:
func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { // 取得感測器數據! }
整個 BLE 傳輸過程大致如下:
Sensor → nRF52840 (I2C) → BLE → iPhone → App UI
📊 顯示資料
你可以做個超簡單的 SwiftUI 畫面把資料秀出來(溫度、濕度、光照即時變動,超有成就感):
Text("🌡️ 溫度:\(temperature) °C") Text("💧 濕度:\(humidity) %") Text("💡 光照:\(light) lux")
💡 開發心得 & 中毒警告
- 硬體 Debug 比你想像中難(線插錯一根就黑屏,還以為壞了)
- 看 datasheet 是一種修行(I2C timing chart 看到眼睛脫窗)
- 成功連線 → 資料正確顯示那一刻,真的爽炸 🎉
現在我已經在規劃要不要加個風扇、LED 顯示器、甚至用 BLE 發送指令控制小馬達了...
🧪 下一步?
- 做個 BLE 中樞 App 控制多個感測器板子
- 整合 HomeKit、MQTT,把資料送到雲端
- 用 nRF5340 試試雙核心架構(再升一階?)
結語
當你能自己打造 BLE 裝置並用手機接收資料時,這不只是開發了,是在創造一個屬於你的物聯網生態圈 🌍。
別說我沒警告你——BLE 是一條越走越深的技術中毒路。
但說真的,滿好玩的。
iOS App 客製化 上架。
iOS 軟體開發、修改、維護既有App
IT/程式 > iPhone/iPad/Mac應用程式開發
$ 10000

$ 10000

0 / 1000