當(dāng)前位置: 首頁 > 工業(yè)電子產(chǎn)品 > 其他電子產(chǎn)品 > IoT物聯(lián)網(wǎng) > IoT傳感器
發(fā)布日期:2022-05-25 點擊率:188
strong>[導(dǎo)讀]如果想要完整的LoRa體驗,至少需要一個LoRa網(wǎng)關(guān)和一個LoRa節(jié)點。而除了這兩者必須部件之外,Dragino的套件中還提供了更多驚喜。所以想要完整的LoRa體驗究竟要花多少銀子?這或許是很多LoRa入門開發(fā)者最關(guān)心的問題。我們認為Dragino在這一方面做的不錯。
不經(jīng)意間,IoT的熱門話題似乎已轉(zhuǎn)到了NB-IoT及LoRa之間。這中間自然免不了爭論:誰才是IoT遠距通信技術(shù)的皇太子?這個答案現(xiàn)在來講還為時過早,不過LoRa聯(lián)盟發(fā)布的NB-IoT vs LoRa技術(shù)白皮書上倒是指出了二者各有所長,在不同的領(lǐng)域或應(yīng)用中都將占有一席之地。這也應(yīng)了一句中國的古話:一花獨放不是春,百花齊放春滿園。
LoRa是Long Range的縮寫,屬于無線通信技術(shù)中的一種,典型特點是距離遠、功耗低。速率相對較低,可視為網(wǎng)絡(luò)通信中的物理層實現(xiàn),LoRa對應(yīng)的產(chǎn)品就是收發(fā)器(tranciever)芯片,例如semtech的SX1272/SX1276,主要處理二進制數(shù)據(jù)流。LoRaWAN是在LoRa物理層傳輸技術(shù)基礎(chǔ)之上的以MAC層為主的一套協(xié)議標(biāo)準(zhǔn),對應(yīng)OSI七層模型中的數(shù)據(jù)鏈路層(MAC層),LoRaWAN消除了具體硬件的不兼容性,同時還實現(xiàn)了多信道接入、頻率切換、自適應(yīng)速率、信道管理、定時收發(fā),節(jié)點接入認證與數(shù)據(jù)加密、漫游等特性。
一般市面上常見的LoRa模塊,通常實現(xiàn)的就是物理層的通信,要實現(xiàn)LoRaWAN功能,需要使用軟件來實現(xiàn)LoRaWAN協(xié)議,要實現(xiàn)網(wǎng)絡(luò)通信功能,還需要一個網(wǎng)關(guān)。
今天和大家一起來體驗的是Dragino的LoRa IoT Development Kit套件,這是一個完整的LoRa套件,包含一個LoRa網(wǎng)關(guān),兩個不同類型的LoRa結(jié)點及配套的傳感器,可以體驗完整的LoRa IoT功能。
一般來說,能稱得上Kit的東西,可不是一塊板子或一個模塊就可以稱得上的,Dragino的LoRa IoT Kit里面有些什么呢?一起來看看吧。

包裝比較素雅,中間是DRAGINO的Logo,左上角看到型號為LoRa IoT Kit字樣,在側(cè)面還有二維碼。

打開包裝盒,上面有防震泡沫保護,下面才是套件里的硬貨,呵,東西還真不少!

全部取出來看,一個LoRa網(wǎng)關(guān)兼作路由器,兩個LoRa結(jié)點,一個是LoRa Shield,另一個是LoRa/GPS Shield,與Arduino底板配合使用,還有一個DC電源,把天線都裝上去,看上去挺有感覺!

LoRa網(wǎng)關(guān)背部特寫,看到DC電源的要求為9-15V,另有兩個ETH接口,一個標(biāo)明WAN,一個標(biāo)明LAN,似乎是路由器的標(biāo)配,實際上這個LoRa網(wǎng)關(guān)是可以當(dāng)做路由器用的。

網(wǎng)關(guān)側(cè)面的USB 2.0接口,可以用來連接3G/4G模塊,也可以用來連接U盤。

配備的DC電源為12V/1A,極性為內(nèi)正外負。

這是LoRa/GPS Shield的特寫,該擴展板包含兩個模塊,一個是GPS模塊,另一個是LoRa BEE模塊,對應(yīng)的LoRa ISM頻段為868MHZ。

LoRa BEE使用可拆卸式設(shè)計,同時上面還標(biāo)明了支持的通信頻段,866MHz。另外模塊體積很小巧,與天線放在一起的效果,倒感覺天線是個龐然大物了。

拆下LoRa BEE模塊后的擴展板,可以看到GPS模塊是焊接在底板上的。

LoRa Shield上的LoRa模塊,型號為RF96,這是HopeRF產(chǎn)的模塊,旁邊的晶振是32M的。
本來以為這就是套件的全部了,其實還有驚喜。打開下面的隱藏空間,還發(fā)現(xiàn)一個小盒子,上面沒有任何標(biāo)注,如下

這里有什么驚喜呢?

除了杜邦線及ARDUINO數(shù)據(jù)線,還有好幾個傳感器,如溫濕度傳感器、超聲波傳感器。嗯,考慮得很周到,畢竟LoRa本就是為物聯(lián)網(wǎng)而生,體驗過程是少不了傳感器這些東西的,先不管最終的體驗如何,這份體貼、細致還是值得贊一個!
看到這么多好東西,筆者已有點迫不及待,只想快點好好體驗下傳說中的LoRa,親自上手,近距離感受下遠距離通信的感受:_)。
不過先不能著急,先要配置好網(wǎng)關(guān)。
什么是LoRa網(wǎng)關(guān)?LoRa網(wǎng)關(guān)又名集中器(Concentrator)是LoRaWAN系統(tǒng)中的中央結(jié)點,支持多通道、多信號的同時調(diào)制及解調(diào),網(wǎng)關(guān)使用不同的RF組件來實現(xiàn)高容量及多通道通信。另外網(wǎng)關(guān)使用IP通信與上層服務(wù)器連接,一個典型的LoRaWAN系統(tǒng)如下

簡單點說,一個LoRa網(wǎng)關(guān)應(yīng)該包括兩方面的功能:一是連接LoRa結(jié)點,二是通過TCP/IP與Internet相連。至于具體的配置,則依照實際情況來確定。
Dragino的網(wǎng)關(guān)LG01-P作為一款低價的LoRa網(wǎng)關(guān),并沒有實現(xiàn)多多通道通信功能,這算是一大遺憾,不過考慮到它的售價,也就釋然了。LG01-P與Internet連接的方式則非常豐富,可以使用ETH、WiFi或3G/4G蜂窩連接。
LG01-P內(nèi)置AR9331模塊,最高運行主頻為400MHz,并布署了OpenWRT系統(tǒng),從這點看,完全可以把LG01-P當(dāng)作一個路由器來使用。LoRa這一塊的通信,使用的是RF96 LoRa模塊,提供了高達168dB的鏈路預(yù)算,最高100mW的輸出,支持FSK, GFSK及LoRa等調(diào)制/解調(diào)功能。除了LoRa模塊,PCB上還集成一顆ATMEG328P的芯,通過SPI/UART分別與RF96及AR9331進行通信。下面是拆開網(wǎng)關(guān)之后看到的樣子

圖中紅色的PCB板包含了ATMEGA328P及LoRa模塊,它的下面就是Dragino HE Linux模塊,內(nèi)含AR9331。可以看到WIFI天線是內(nèi)置的,引出的天線接口連接到LoRa模塊上。另外可以看到LG01P內(nèi)部還預(yù)留了一個LoRa BEE模塊接口,只是沒有連接模塊,估計是作未來擴展功能之用。
LoRa模塊可以拆下來,拆下來看到下面的IoT模塊也就是Dragino HE Linux模塊

這就是實現(xiàn)網(wǎng)絡(luò)通信的模塊,金屬屏蔽罩內(nèi)部是AR9331模塊,配合OpenWRT與Internet連接。另外看到下面還有個叫SENSOR的接口,應(yīng)該可以用來連接外部傳感器。
LG01-P默認打開WIFI連接,沒有設(shè)置加密,可以使用WIFI設(shè)備如手機連接到網(wǎng)關(guān),網(wǎng)關(guān)默認的IP地址是10.130.1.1,開啟了DHCP服務(wù),移動WIFI設(shè)備可以直接獲取IP地址,如下是手機連接到網(wǎng)關(guān)后的信息
將LoRa網(wǎng)關(guān)的WAN口與上級路由器連接,可通過DHCP獲取WAN口獲取IP地址,這些都是默認設(shè)置,無需配置,下面是LoRa網(wǎng)關(guān)連接到路由器后使用瀏覽器登錄信息

默認密碼為dragino,使用過OpenWRT的用戶對這個界面應(yīng)該非常熟悉。如果使用3G/4G模塊連接Internet的話,需要在OpenWRT內(nèi)進行設(shè)置,這里直接使用WAN口連接,使用默認設(shè)置就行。

除了可以使用WEB配置,也可以使用SSH連接網(wǎng)關(guān)進行配置,下面是使用SSH連接到LoRa網(wǎng)關(guān)的配置界面

重點還是LoRa。
LoRa只是一種無線通信技術(shù),工作在物理層,不同設(shè)備會存在不兼容的情況。LoRaWAN是一種通信協(xié)議,基于LoRa技術(shù)實現(xiàn),除了消除硬件之間的不兼容,還在加密、動態(tài)切換等方面予以定義,實現(xiàn)的方法可能各不相同,但最終的LoRaWAN數(shù)據(jù)包消除了這些差異。LoRaWAN協(xié)議棧是軟件,通常結(jié)合MCU來具體實現(xiàn),Dragino的LoRaWAN協(xié)議棧通過ATMEG328P來實現(xiàn),一來是支持資源比較多,另一個也可能是出于成本的考慮。
DRAGINO LoRa IoT Kit里包含一個網(wǎng)關(guān),倆個不同類型的結(jié)點,其中一個帶GPS,下面來試試通信。
最基礎(chǔ)的LoRa通信需要兩個設(shè)備,彼此之間通過LoRa交換數(shù)據(jù),這里選擇LG01-P做為服務(wù)器,另外使用一個LoRa Shield做為結(jié)點。前面已經(jīng)說過,LoRa只負責(zé)RF信息交換,具體的數(shù)據(jù)信息交換需要使用協(xié)議棧來實現(xiàn),LoRa聯(lián)盟給出了一個規(guī)范,不過當(dāng)前很多廠商自己的實現(xiàn)并未完全遵守該規(guī)范,不過這并不影響實際的使用,只是不同廠商之間的設(shè)備進行信息交換時會存在兼容性問題。LoRaWAN不兼容的后果就是需要分別對網(wǎng)關(guān)及結(jié)點設(shè)備都加入自己的協(xié)議控制。本次的評估套件,不管是網(wǎng)關(guān)還是LoRa Shield,二者都是通過ATMEG328P來控制,所以使用ARDUINO IDE來作為開發(fā)環(huán)境就行。
啟動ARDUINO IDE,先添加IDE對Dragino的支持,在ARDUINO IDE的首選項對話框中添加DRAGINO硬件支持,如下

在Additional Boards Manager URLs中輸入的地址為:http://www.dragino.com/downloads/downloads/YunShield/package_dragino_yun_test_index.json,這里添加的只是板級支持及示例代碼,但是不包含底層的LoRa硬件庫文件,還要另外下載RF庫文件支持,下載地址為http://www.airspayce.com/mikem/arduino/RadioHead/RadioHead-1.63.zip,解壓后放到Arduino的庫文件目錄。
接下來就把網(wǎng)關(guān)或LoRa Shield當(dāng)成一個Arduino(Yun)設(shè)備來用就好了。先對網(wǎng)關(guān)燒寫代碼,下面是本次測試中要用到的兩個示例代碼,位于examples目錄下,其中Server運行在LG01-P上,Client運行在結(jié)點上。

需要注意一點,LG01-P沒有引出編程用的串口,可以使用網(wǎng)絡(luò)接口來對網(wǎng)關(guān)編程,配置好的設(shè)備型號及端口如下

現(xiàn)在可以編譯并上傳服務(wù)器端代碼,打開串口可以看到如下信息

服務(wù)器端開始監(jiān)聽結(jié)點信號,使用的頻段是868MHz,此時客戶端還未就緒,串口信息也沒有刷新,就一直等待。
接下來要給客戶端設(shè)備上傳代碼,基本過程類似,除了代碼不同外,還需要將開發(fā)板的型號設(shè)置為Arduino/Genuino UNO,然后開始上傳客戶端代碼。很快就可以看到串口輸出信息有變化

通信開始了!
確實很簡單,再想想底層使用的是LoRa,遠距離通信技術(shù),小激動。兩個設(shè)備放在一起挨得很近,RSSI的值看上去很好,不知道扔到兩公里外是什么狀況,小期待!
開發(fā)套件還包含一塊LoRa/GPS Shield,集成了GPS模塊,可以用來獲取GPS定位信息,順便也測試一下,具體燒寫代碼的過程就不說了,只看下結(jié)果

剛開始放在室內(nèi),很久都沒有收到GPS信號,扔到陽臺上,很快就有信號了,檢測結(jié)果還算穩(wěn)定。這個庫用的是TinyGPS,很多項目上都使用的是這個。TinyGPS庫輸出的信息比直接通過串口獲取原始的GPS信息可讀性更好,市面上大多數(shù)的串口GPS模塊輸出數(shù)據(jù)都遵循NMEA格式標(biāo)準(zhǔn),需要進一步處理才能得到最終的數(shù)據(jù)。
接下來是時候體驗LoRa與Internet結(jié)合的時候了,將與LoRa結(jié)點收集到的傳感器數(shù)據(jù)推送到云。畢竟網(wǎng)關(guān)的另一大作用是連接到Internet。
現(xiàn)在IoT云服務(wù)的提供商比較多,很多都是免費的,例如TTN,ThingSpeak,百度等,雖然對免費用戶來說會存在一定的限制,如數(shù)據(jù)刷新率等,但對于大部分IoT服務(wù)來說已夠用。每個服務(wù)商提供的服務(wù)都對應(yīng)一整套API,這些API除了服務(wù)端的接口外,還提供了客戶端的API調(diào)用,官方示例程序使用的是ThingSpeak提供的服務(wù),因此先要下載ThingSpeak的API并解壓到Arduino的庫目錄,下載地址為https://github.com/mathworks/thingspeak-arduino。
要使用ThingSpeak提供的服務(wù),需要先到該站點注冊一個用戶帳號,每個帳號有一個唯一的ID,接下來需要創(chuàng)建服務(wù),ThingSpeak稱之為Channel,每個Channel對應(yīng)一個服務(wù),在每個Channel內(nèi)可以新建多個Field,對應(yīng)不同的數(shù)據(jù)類型,如溫度、濕度值等。這里建立兩個Field,分別對應(yīng)溫度及濕度值,如下

為了安全,Channel還有對應(yīng)的API Key,分為讀/寫兩種類型,要上傳數(shù)據(jù)則需要在本地(一般是網(wǎng)關(guān))上設(shè)置用戶ID、API Key等信息,從而有效保證用戶安全。例如在dht11_server.ino文件中包含如下配置信息
unsigned long myChannelNumber = 20xx93;
const char * myWriteAPIKey = “B9ZxxxxxNVEBKIFY”;
uint16_t crcdata = 0;
uint16_t recCRCData = 0;
float frequency = 868.0;
前面兩行信息分別是用戶的ID號及對應(yīng)Channel的API Key,需要用戶自行替換自己的ID及API Key。
接下來需要在網(wǎng)關(guān)及結(jié)點上分別上傳對應(yīng)的程序代碼,本次使用的兩個代碼如下

其中dht11_server代碼編譯后上傳到網(wǎng)關(guān),而dht11_client則上傳到LoRa結(jié)點。
代碼上傳后準(zhǔn)備一個DHT11溫濕度傳感器,連接到Arduino的A0,確認連接無誤后,打開LoRa結(jié)點的串口,可以看到串口輸出信息如下

輸出信息表明與網(wǎng)關(guān)數(shù)據(jù)交換成功,此時打開ThingSpeak的可視化數(shù)據(jù)面板(WEB),用戶上傳的數(shù)據(jù)就會以可視化的形式呈現(xiàn)給用戶,如下

這里看到的只是濕度數(shù)據(jù)的圖形化顯示,除了數(shù)據(jù)之外,還有對應(yīng)數(shù)據(jù)的時間信息,這些數(shù)據(jù)會保存在云端,用戶可以導(dǎo)出成JSON或CSV格式保存,供后期分析之用。
這里還要提及一點,官方的示例代碼有一個坑,就是代碼初始化設(shè)備時,會等待串口設(shè)備的初始化,如果不打開串口設(shè)備則會一直處于等待狀態(tài),不會接收及發(fā)送信息,在離線測試時很不方便,需要將相關(guān)的代碼注釋掉之后才能用。
最后一個測試是遠程通信測試,因為遠程通信與低功耗才是LoRa吸引人的地方。LoRa使用擴頻技術(shù)來實現(xiàn)遠距離及低功耗,不同的調(diào)制參數(shù)適用不同的場合,例如不同的傳輸距離,典型的配置列表如下

在距離與速度之間,我們通常要做一個折衷,更遠的傳輸距離意味著更多功耗,更低的數(shù)據(jù)傳輸率。Dragino默認使用的設(shè)置為上表中的模式1,面向近距離通信同時提高較高的數(shù)據(jù)率(DR)。測試時LoRa網(wǎng)關(guān)放在6樓的室內(nèi),移動LoRa結(jié)點,通過LED燈的閃爍來測試當(dāng)前連接是否正常,由于周圍都存在高大建筑物,在約300米外之后連接丟失。這個測試結(jié)果算是差強人意,不過比起WiFi來說,還是要好。按照LoRa官方的說法,在該模式下,一般在城區(qū)的傳輸距離約2Km,這個應(yīng)該指的是室外的通信距離,加上周圍的干擾源及建筑物遮擋,實情距離應(yīng)該會更短。另外一點也說明一下,在測試過程中發(fā)現(xiàn)LoRa的穿墻性能還是非常不錯的。
總體來說,Dragino LoRa IoT Kit還是很不錯的一款套件,除了提供兩個LoRa結(jié)點及一些簡單的傳感器之外,更重要的是提供了一個LoRa網(wǎng)關(guān),畢竟沒有網(wǎng)關(guān)的LoRa應(yīng)用算不得完整。套件的官方報價為750元人民幣,相比國外Multitech Conduit一個LoRa網(wǎng)關(guān)至少是$469(ETH+LoRa),這個還算不錯。配套的軟件例程也比較完整,從LoRa通信到IoT的完整應(yīng)用均有涉及,為用戶快速入門及后期的產(chǎn)品級應(yīng)用都具有極好的指導(dǎo)意義。官方的示例代碼及用戶手冊都比較詳細,只是英文版看起來不爽!
參考資源:
Dragino: http://www.dragino.com/
LoRa網(wǎng)關(guān)及報價:https://www.loriot.io/LoRa-gateways.html
Dragino LoRa IoT Kit: http://www.dragino.com/products/LoRa/item/120-LoRa-iot-kit.html
下一篇: PLC、DCS、FCS三大控
上一篇: 銳米通信:支持高校物