Datalogger IoT 擴展板實戰:
LoRa 與 SD 卡 SPI 腳位分離設計與程式庫安裝

Datalogger IoT 擴展板實戰:
LoRa 與 SD 卡 SPI 腳位分離設計與程式庫安裝

硬體/軟體 SPI 雙管齊下,打造最穩定的遠距數據記錄器

📌 第一部分:LoRa 與 SD Card 的 SPI 腳位配置

在 Datalogger IoT 的「LoRa 擴展板」設計中,為了避免 SD 卡與 LoRa 通訊模組(RFM96W)共用同一個 SPI 匯流排時發生訊號干擾或當機,硬體上刻意將這兩個模組的通訊腳位分開配置。LoRa 使用主板的高速「硬體 SPI」,而 SD 卡則透過其他數位腳位運行「軟體 SPI (Software SPI)」

📡 LoRa 模組腳位 (硬體 SPI)

直接對接主板預設的高速硬體 SPI (SPI0):

  • SPI_SCLK (時脈): Pin 19
  • SPI_MISO (主入從出): Pin 16
  • SPI_MOSI (主出從入): Pin 17
  • LORA_NSS (片選 CS): Pin 10
  • LORA_RST (重置): Pin 9
  • LORA_DIO0 (中斷): Pin 5

💾 SD Card 模組腳位 (軟體 SPI)

利用 SdFat 程式庫的軟體模擬 SPI 進行驅動:

  • SOFT_SCK_PIN (軟體時脈): Pin 8
  • SOFT_MISO_PIN (軟體 MISO): Pin 15
  • SOFT_MOSI_PIN (軟體 MOSI): Pin 14
  • SD_CS_PIN (片選 CS): Pin 11
Datalogger 主板 SPI 雙軌分流設計 LoRa 模組 硬體 SPI SCK: 19 | MISO: 16 MOSI: 17 | CS: 10 RST: 9 | DIO0: 5 SD Card 插槽 軟體 SPI (SoftSpi) SCK: 8 | MISO: 15 MOSI: 14 | CS: 11

▲ 圖 1:擴展板將 LoRa 的硬體 SPI 與 SD 卡的軟體 SPI 分流,確保資料讀寫與無線傳輸同時進行時不當機。


💻 第二部分:LoRa 程式庫安裝說明

為了在 Arduino IDE 中順利驅動 RFM96W LoRa 模組,我們需要安裝社群中最穩定且被廣泛支援的開源程式庫。請依照以下步驟進行安裝:

  1. 開啟 Arduino IDE,點擊左側導覽列的 「程式庫管理員 (Library Manager)」 圖示(或按下快捷鍵 Ctrl + Shift + I)。
  2. 在搜尋框中輸入關鍵字:LoRa
  3. 在眾多搜尋結果中,向下捲動並尋找由 Sandeep Mistry 所提供的版本。
  4. 選擇版本 0.8.0,然後點擊 「安裝 (Install)」 按鈕。
Arduino IDE - 程式庫管理員 (Library Manager) 🔍 LoRa LoRa 提供者: Sandeep Mistry An Arduino library for sending and receiving data using LoRa radios. Supports Semtech... 0.8.0 已安裝 務必認明 Sandeep Mistry 版本!

▲ 圖 2:在程式庫管理員中搜尋並安裝由 Sandeep Mistry 開發的 LoRa 通訊庫 (建議版本 0.8.0)。

💡 實戰開發小叮嚀:
在編寫程式時,如果您的專案需要同時使用 LoRa 與 SD 卡(例如:將收到的感測器封包儲存進記憶卡),請務必宣告 SoftSpiDriver 來初始化 SD 卡,並呼叫硬體 SPI 的引腳 LoRa.setPins(10, 9, 5) 來初始化 LoRa。這樣做能確保這兩個關鍵元件在 Datalogger 主板上能完美並行運作!