Posted on 一月 19, 2017 作者:MakerPRO技術顧問/柯大 由於LoRa無線技術具備長距離、高穿透、抗干擾等特性,足以填補BT/Wi-Fi到2G/4G之間的許多特性缺口,因此其發展潛力備受看好。國內Wireless SiP專業廠商群登(Acsip)也推出一系列LoRa晶片組及LoRa+MCU整合的晶片產品,其中的LoRa晶片來自於Semtech,MCU(微控制器)來自於STMicro。 為了方便物聯網應用開發商及Maker開發人員,該公司特別推出因應不同需求的開發模組EVK,透過簡便的建置動作即能完成LoRa節點的佈建,同時也針對所研發的LoRa模組系列提供完整的SDK/HDK套件,且相容於LoRaWAN,讓使用者更容易實現各種應用開發。 看起來產品種類繁多,該如何來應用呢?簡單來區分,這些模組可分為不帶MCU的收發器(Transceiver)模組,以及內嵌入MCU的獨立式(Standalone)模組兩種,前者讓使用者可自選MCU,開發上較有彈性,但需使用SPI介面來串接MCU;後者因已內嵌MCU,又有Acsip自建的GUI開發環境,因此開發上較為容易,使用者可依自己的需求來選擇。 本系列文章將以不具備MCU的LoRa模組(即CW1276SL-915)以及具備MCU的LoRa模組(即AI1276-401H)為例,分別介紹如何用Maker熟悉的方式來實作LoRa通訊環境,並介紹這一套GUI 模擬測試工具軟體。 系統架構規劃本實作案例是利用Arduino Nano MCU連接DHT11溫溼度感測器及PMS5003 PM2.5細懸浮粒子感測器,以偵測空氣品質,再與入門款的EVK模組 EK-CW1276SL-915以SPI介面連接,來做為LoRa Node,如系統架構圖的左區所示。 收集到的感測值資料利用LoRa長距離低功耗的特性來傳送到LoRa Gateway,資料格式為JSON,JSON 資料範例: { “PM25″:25,”Temp”:24.00,”Humi”:52}。接收端的LoRa Gateway則以Ameba為主控板,同樣透過SPI介面與EK-CW1276SL-915連接。 整個系統架構圖如下: CW1276SL-195是一顆沒有MCU的晶片組,其功能方塊圖如下: 做為LoRa Node的傳送端以Arduino Nano MCU與CW1276SL-915 模組利用 SPI 介面及5V連接CON1,接線方式如下: 做為LoRa Gateway的接收端以Realtek Ameba開發板(MCU為RTL8195)與CW1276SL-915 模組利用 SPI 介面及5V連接CON1,接線方式如下: 其中NSS、NRESET及 DIO0 接腳可以程式庫之 LoRa.setPins(ss, reset, dio0) 函式來變更使用的接腳。DIO0 接腳若需使用receive callback mode 時,可接支援中斷功能的Arduino 或Ameba Pin腳。 接收端接收LoRa傳送的JSON資料,利用Arduino JSON Library parse 資料後,將資料顯示於0.96”OLED disiplay ,並依PM2.5的值以RGB LED 顯示不同值的空氣品質顔色,同時利用Ameba內建WiFi功能將資料再分別以RESTful API或MQTT格式上傳ThingSpeak IoT平台及QNAP NAS MQTT Server ,並可再利用NAS Server 提供的Node-RED container 來接收以儀表板顯示數值及曲數。 LoRa SPI程式Library可由Github 下載:https://github.com/sandeepmistry/arduino-LoRa Arduino LoRa SPI Library 提供的程式庫函式如下: 啟始設定:
傳送方式:
接收方式:
其餘函式功能請參閱API.me。 實機測試ThingSpeak平台接收料曲線及儀表板如下: 利用QNAP NAS Server 提供的Node-RED container 來接收以儀表板顯示數值及曲數如下: 對於較不熟悉SPI控制方式的使用者,可選擇群登具有MCU+LoRa晶片模組,即EK-AI1276XX或EK-1278XX系列,請見下一篇文章中的介紹。
*以上資料來源 (MAKERPRO 自造達人社群/媒體/平台) |
