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
▲ 圖 1:擴展板將 LoRa 的硬體 SPI 與 SD 卡的軟體 SPI 分流,確保資料讀寫與無線傳輸同時進行時不當機。
💻 第二部分:LoRa 程式庫安裝說明
為了在 Arduino IDE 中順利驅動 RFM96W LoRa 模組,我們需要安裝社群中最穩定且被廣泛支援的開源程式庫。請依照以下步驟進行安裝:
- 開啟 Arduino IDE,點擊左側導覽列的 「程式庫管理員 (Library Manager)」 圖示(或按下快捷鍵
Ctrl + Shift + I)。 - 在搜尋框中輸入關鍵字:
LoRa。 - 在眾多搜尋結果中,向下捲動並尋找由 Sandeep Mistry 所提供的版本。
- 選擇版本 0.8.0,然後點擊 「安裝 (Install)」 按鈕。
▲ 圖 2:在程式庫管理員中搜尋並安裝由 Sandeep Mistry 開發的 LoRa 通訊庫 (建議版本 0.8.0)。
💡 實戰開發小叮嚀:
在編寫程式時,如果您的專案需要同時使用 LoRa 與 SD 卡(例如:將收到的感測器封包儲存進記憶卡),請務必宣告SoftSpiDriver來初始化 SD 卡,並呼叫硬體 SPI 的引腳LoRa.setPins(10, 9, 5)來初始化 LoRa。這樣做能確保這兩個關鍵元件在 Datalogger 主板上能完美並行運作!