解決問題一 (如何減少硬體成本及功耗):
在初接觸LoRa模組的人中有需多會先使用既有廠商開發的UART模組,其原因是可以加快開發時間及人力成本。但其中會碰到兩個問題為UART模組中必定有一顆微處理器MCU,而外部也必須再外接一顆MCU來處理系統流程如下圖。
圖1
當使用兩個MCU時就必須考慮到多一顆MCU就是多一個價格成本,除此之外還有多一個功率消耗。當然曾經有廠商開發可以在其模組可開發自有程式的產品,但是因為其需要較大的技術支援所以會有最小採購需要MOQ的限制或是NRE工程费用的產生。此次方案我們就是介紹如何自行使用ATMEGA328來處理感測器的信號後將其資料由SX1276傳送出去及接收。如此可讓使用LoRa的工程師有另一個選擇。
解決問題二 (使用LoRa改善傳輸技術改善通訊能力):
對於大樓建築、工廠或是農場以至於如歐美之家庭之安全需求是一大需求,對於此類安防之系統架構一般都是使用實體有線、FSK(頻率偏移調變)、Zigbee、Bluetooth或是Wifi等傳輸模式來做為通訊方式。但這些通訊方式或多或少都有其先天的限制,下面為我約略做的整理比較表
圖2
依上表來看,如果我們要在此等警告系統中使用上列技術的話會有點挑戰性。所以我們以本方案來提出使用LoRa方式來解決如下問題
距離: LoRa 可提供高至-148 dB 的感度,可提供長距離及高穿透性的應用。
抗干擾: 使用展頻技術可提供高抗雜訊。
省電: 低至0.1uA之耗電可提供長時間不需更換電池使用。
方案特色說明
本方案之特色為提供LoRa開發人員除了在使用市場現有已經內含LoRa協議的模組外有另一個選擇! 可以在ATMEGA328 MCU上同時有自己的應用程式及LoRa協議,這個特色可以使產品可以降低成本和減少電池功耗及增加待機和工作的時間的優勢。
工作原理描述說明
在此方案中我們是以Semtech出品的SX1276RF1KAS模組來當SPI模組的範例,其相同的模組在市面上有許多公司在生產銷售。我們這裡就是使用該模組再加上廣為使用在Arduino開發環境上的Atmega328來示範。我們先使用Arduino 來連接SX1276 的SPI介面、Reset、DIO0和電源接腳,之後再在主程式中呼叫程式庫來執行SX1276參數設定及傳送接收功能。
如何使用SX1276RF1KAS SPI模組開發
一 SX1276RF1KAS架構解析
該SX1276RF1KAS為Semtech LoRa開發平台Eiger Platform中的SPI模組,其主要的組成為做為核心的LoRa芯片SX1276、記憶參數的24AA128 EEPROM(在本方案中不會使用)、高頻通道切換芯片PE4259及匹配迴路如圖三如下。
圖3
二 如何連接SX12761KAS與ATMEGA328硬體架構
- 圖四中所示當我們使用SX1276時我們需要連結其中的SPI (MOSI、MISO、NSS及SCK),Reset、DIO0及電源等接線如下。下圖為SX1276RF1KAS之接腳圖
圖4
2. 在圖五中為我們在這個方案中所使用的Arduino Pro-Mini開發板中的接腳圖,其中除了MISO、MOSI、SCK為固定腳位外其他NSS、DIO0及Reset皆可以按需求在程式庫中改變其腳位。
圖5
圖6 SX1276及Arduino ProMini 接腳對照圖
安裝Arduino開發環境及操作說明
步驟一 (環境安裝):
示範如何安裝 Arduino (影片演示)
步驟二 (軟體開發及上傳至MCU):
按下面連接以觀看如何開啟程式、組譯及燒錄至IC (影片演示)
如何在在Arduino下使用Library開發LoRa
步驟一: 尋找及安裝程式庫
在網路上我們可以找到各式各樣的程式庫,在這個方案中我們使用的是由Sandeep Mistry所提供的LoRa程式庫;其版權為根據MIT License來授權使用。
我們會使用Sandeep的程式庫是其API簡潔易用,其次可以簡單的描述來設定如頻率、展頻因子、頻寬等等參數。詳細API說明可參考如下
https://github.com/sandeepmistry/arduino-LoRa/blob/master/API.md
圖7 Sandeep Mistry 程式庫相關資料
步驟二: 如何安裝Sandeep LoRa 程式庫 (影片演示)
步驟三: 開啟範例測試SPI溝通
圖8
步驟四: 開啟發送及接收程式範例:
圖9
基本程式結構
一 傳送
圖10
二 接收
圖11
成果演示
一 測試環境解說
圖12 測試環境佈置
二 使用Semtech 開發工具驗證所開發之方案傳送功能
三 使用Semtech 開發工具驗證所開發之方案接收功能
►場景應用圖
►產品實體圖
►展示板照片
►方案方塊圖
►MQ2 Sensor
►Arduino Pro Mini
►核心技術優勢
SX1276 晶片為具有LoRa®遠程調製解調器,可提供超長距離擴頻通信和高抗干擾性,同時將電流消耗降至最低。 Semtech的專利LoRa調製技術SX1276可以使用低成本的震盪晶體和材料清單來實現-148dBm以上的靈敏度。高靈敏度與高達+ 20dBm功率放大器相結合,產生了業界領先的鏈路預算,使其成為物聯網應用的最佳選擇之一。 與傳統的調製技術相比,LoRa提供了優異的抗干擾性和低耗能之間的最佳方案。
►方案規格
芯片組 ~ SEMTECH LoRa SX1276系列 頻率 ~ 862-1020MHz(型號:LM-230H) 傳輸功率 ~ 100mW(MAX。) 傳輸媒體 ~ UART UART波特率 ~ 1200/2400/4800/9600/19200/38400/57600bps 電流消費 ~ 接收:13 mA(典型值),發射:120 mA(典型值),睡眠:2.2uA(典型值) 傳輸距離 ~ 1KM〜10KM(0.81Kbps) 接收靈敏度 ~ -132dBm@0.81Kbps 工作溫度 ~ -40°C~85°C 尺寸 ~ 尺寸25毫米x 18毫米x T2.6毫米:身份驗證和加密 感測器主要特點 檢出氣體:可燃氣體,煙氣 檢測強度:300〜10000ppm(可燃氣體) 工作電壓:5.0V±0.1V AC或DC 預熱時間:≥2分鐘