文章

顯示從 7月, 2018 起發佈的文章

[模組] LoRa 模組範例測試通訊距離

圖片
測試模組的傳輸距離         根據前一篇 文章 ,拿兩個Arduino MKRWAN 模組分別 接上兩顆AA電池,再外接天線,如下圖。如果沒有外接天線,接收的RSSI訊號不強,點對點的傳輸距離大概幾公尺左右。傳輸距離的測試實驗中,我們分別將LoRaSender和LoRaReciver程式碼上傳到模組上,再測試三種頻率433MHz、868MHz和915MHz,結果發現其中的433MHz接收訊號最差,915MHz的RSSI最好。         距離測試以915MHz為主,過程中LoRaSender的位置離水平面約1.5公尺高,然後LoRaReciever沿著直線距離緩慢地移動,傳輸的直線距離(無障礙物)大約是 250~300公尺 ,250公尺就會逐漸出現通訊不穩的情況,這距離似乎比想像的還短很多,疑問LoRa 不是 號稱可傳數公里遠嗎? ( 模組沒有強波設計?!)另外,測試過程使用了兩種不同的天線,如下圖所示,結果是左邊天線的接收效果比較好。 LoRa 連線測試 測試過程的兩種天線 參考資料 長距離低功耗無線通訊技術

[模組] LoRa - Arduino MKRWAN 1300 通訊模組

圖片
        最近從網上買了兩個Arduino MKRWAN,屬於LoRa開發板的一種,可以拿來研究物聯網的通訊傳輸,一個用來當發送端,另一個用來當接收端。首先瞭解開發板的架構,Arduino MKR WAN 1300開發板是由ATMEL SAMD晶片,再搭配 LoRa 模組所組成,系統方塊圖如下所示。         在下圖的左邊,ATMEL SAMD就是Arduino Zero開發板的控制器,以Cortex-M0為核心的晶片。而在下圖的右邊,LoRa模組是由Murata公司製作的通訊模組,該模組內部包含一顆STM32L系列的控制器和一顆SX1276 LoRa晶片。在市面上容易買到單獨SX1276/78晶片的LoRa模組,這種必須仔細了解SX1276內部暫存器的設定才能順利開發與運用。另外,也有一類模組還包含一顆控制器,通常這種模組是用 AT command 方式來控制 LoRa 傳輸,很多複雜的控制命令已經被封裝成 AT 指令了,對初次接觸LoRa開發的人來說會方便許多。 Arduino MKRWAN 1300 方塊圖         這塊開發板的編譯環境是用 Arduino IDE,然後再從 開發板管理員 選單中找尋相關的板卡,如下圖所示。一般我們常用的是AVR為控制器的Arduino板子,但是MKRWAN 1300是以ATMEL SAMD為核心控制器,所以要下載圖中最底下的開發套件,然後IDE自動會將套件安裝完畢。 下載Arduino SAMD的開發套件                  前面下載的說明是板子的開發套件,主要用來編譯我們設計的程式原碼。接下來,我們要從 程式庫管理員 裡面找尋LoRa相關的函式庫,如下圖所示,使用這些前人已開發的函式庫可以縮短我們摸索的時間,順便也能仔細研究其代碼怎麼設計與控制LoRa晶片。底下的函式庫列出兩個,MKRWAN開發者提供LoRaWAN的函式調用接口,如OTAA、ABP接入模式。另一個LoRa開發者提供SX1276...的函式調用接口,能讓我們設計點對點或點對多的LoRa通訊連接。上述的兩個程式碼除了這裡下載,也可以從 GitHub 取得,如果開發過程遇到問題,歡迎上 GitHub 提問。 下載 LoRa 模組的函式庫         在準