技能誌

【開發筆記】藍牙玩上癮,我買了 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
iOS App 客製化 上架。
$ 10000
iOS App 客製化 上架。
0 / 1000
回到文章列表