本方案是設定應用於精緻農業的場域,主要是使用來監測並紀錄溫室的溫溼度。其目的是讓我們可以將長時間的環境紀錄數據與作物的產出來做分析比較,在其中獲得最佳的環境曲線來得到最大的產出和效率。而進一步的應用是可以從溫溼度紀錄中獲得啟動排風、遮陽和灌溉的時機來節省所需電力與水資源。
市場所佔優勢
解決問題一 (如何減少硬體成本及功耗):
在初接觸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協議的模組外提供另一個選擇。這個TLM906-P01A模組是專為SPI介面所開發的,其核心為Semtech SX1276IMLTRT 半雙工LoRa收發晶片和經過專業調校下的高頻匹配迴路來提供非高頻設計者能有一個高信賴及性能表現的LoRa模組來加速開發。另外本方案使用市面上常見之ATMEL出品之ATMEGA328 MCU在ARDUINO開發平台上設計自己的應用程式及LoRa協議,這個優勢可以供開發人員在開放的平台上設計產品及降低產品需要兩個微處理器的成本和消耗來增加待機和工作的時間的優勢。
另外在方案中我們是採用DHT11溫濕度傳感器,該感測器具有經過校準的數字信號輸出。DHT11傳感器將電阻元件、濕式NTC溫度測量元件與高性能的8位微控制器整合一起。此技術提高可靠性與出色的長期穩定性。該傳感器具有優良的品質,快速的響應,抗干擾能力和高性能。每個DHT11傳感器均具有極其精確的濕度校準功能,而其校準係數也存儲在OTP程序存儲器中。
工作原理描述說明
我們這裡就是使用奇邑科技TLM906-P01A模組再加上市場上廣為使用的Atmega328微處理器在Arduino開發環境上來示範。本方案中我們是以微處理器作為核心,其主要的功能為接收及處理DHT11送來的資料和控制SX1276的收發。當Atmel328接收到從HDT11接收到的1 wire溫溼度串列資料後,再將其資料經過處理後轉換為可以判讀的相對應數據。下一步微處理器將該數據經驅動程式由SPI通訊埠之MOSI、MISO、SS、SCLK 介面至SX1276 傳送至空中。
如何使用TLM906-P01A SPI模組開發
一 TLM906-P01A架構解析
該TLM906-P01A為Semtech LoRa開發平台Eiger Platform中的SPI模組,其主要的組成為做為核心的LoRa芯片SX1276、記憶參數的24AA128 EEPROM(在本方案中不會使用)、高頻通道切換芯片PE4259及匹配迴路如圖三如下。
圖3
二 如何連接SX12761KAS與ATMEGA328硬體架構
- 圖四中所示當我們使用SX1276時我們需要連結其中的SPI (MOSI、MISO、NSS及SCK),Reset、DIO0及電源等接線如下。下圖為SX1276RF1KAS之接腳圖
圖4
- 在圖五中為我們在這個方案中所使用的Arduino Nano開發板中的接腳圖,其中除了MISO、MOSI、SCK為固定腳位外其他NSS、DIO0及Reset皆可以按需求在程式庫中改變其腳位。
圖5
圖6 TLM906-P01A及Arduino Nano 接腳對照圖
安裝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 接收端
►場景應用圖
►產品實體圖
►展示板照片
►方案方塊圖
►核心技術優勢
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毫米:身份驗證和加密 感測器主要特點 檢出種類:環境的濕度和溫度 檢測範圍:濕度20%-95%(測量誤差 +-5%) 溫度0度-50度 (測量誤差 +-2度) 工作電壓:3.3V~5V 輸出類型:1線式數位輸出