首頁(yè) > 評(píng)測(cè) > 完整的LoRa體驗(yàn),有這一套就夠了!——LoRa IoT Kit體驗(yàn)
完整的LoRa體驗(yàn),有這一套就夠了!——LoRa IoT Kit體驗(yàn)
- [導(dǎo)讀]
- 如果想要完整的LoRa體驗(yàn),至少需要一個(gè)LoRa網(wǎng)關(guān)和一個(gè)LoRa節(jié)點(diǎn)。而除了這兩者必須部件之外,Dragino的套件中還提供了更多驚喜。所以想要完整的LoRa體驗(yàn)究竟要花多少銀子?這或許是很多LoRa入門開(kāi)發(fā)者最關(guān)心的問(wèn)題。我們認(rèn)為Dragino在這一方面做的不錯(cuò)。
開(kāi)發(fā)套件還包含一塊LoRa/GPS Shield,集成了GPS模塊,可以用來(lái)獲取GPS定位信息,順便也測(cè)試一下,具體燒寫(xiě)代碼的過(guò)程就不說(shuō)了,只看下結(jié)果
剛開(kāi)始放在室內(nèi),很久都沒(méi)有收到GPS信號(hào),扔到陽(yáng)臺(tái)上,很快就有信號(hào)了,檢測(cè)結(jié)果還算穩(wěn)定。這個(gè)庫(kù)用的是TinyGPS,很多項(xiàng)目上都使用的是這個(gè)。TinyGPS庫(kù)輸出的信息比直接通過(guò)串口獲取原始的GPS信息可讀性更好,市面上大多數(shù)的串口GPS模塊輸出數(shù)據(jù)都遵循NMEA格式標(biāo)準(zhǔn),需要進(jìn)一步處理才能得到最終的數(shù)據(jù)。
接下來(lái)是時(shí)候體驗(yàn)LoRa與Internet結(jié)合的時(shí)候了,將與LoRa結(jié)點(diǎn)收集到的傳感器數(shù)據(jù)推送到云。畢竟網(wǎng)關(guān)的另一大作用是連接到Internet。
現(xiàn)在IoT云服務(wù)的提供商比較多,很多都是免費(fèi)的,例如TTN,ThingSpeak,百度等,雖然對(duì)免費(fèi)用戶來(lái)說(shuō)會(huì)存在一定的限制,如數(shù)據(jù)刷新率等,但對(duì)于大部分IoT服務(wù)來(lái)說(shuō)已夠用。每個(gè)服務(wù)商提供的服務(wù)都對(duì)應(yīng)一整套API,這些API除了服務(wù)端的接口外,還提供了客戶端的API調(diào)用,官方示例程序使用的是ThingSpeak提供的服務(wù),因此先要下載ThingSpeak的API并解壓到Arduino的庫(kù)目錄,下載地址為https://github.com/mathworks/thingspeak-arduino。
要使用ThingSpeak提供的服務(wù),需要先到該站點(diǎn)注冊(cè)一個(gè)用戶帳號(hào),每個(gè)帳號(hào)有一個(gè)唯一的ID,接下來(lái)需要?jiǎng)?chuàng)建服務(wù),ThingSpeak稱之為Channel,每個(gè)Channel對(duì)應(yīng)一個(gè)服務(wù),在每個(gè)Channel內(nèi)可以新建多個(gè)Field,對(duì)應(yīng)不同的數(shù)據(jù)類型,如溫度、濕度值等。這里建立兩個(gè)Field,分別對(duì)應(yīng)溫度及濕度值,如下
為了安全,Channel還有對(duì)應(yīng)的API Key,分為讀/寫(xiě)兩種類型,要上傳數(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號(hào)及對(duì)應(yīng)Channel的API Key,需要用戶自行替換自己的ID及API Key。
接下來(lái)需要在網(wǎng)關(guān)及結(jié)點(diǎn)上分別上傳對(duì)應(yīng)的程序代碼,本次使用的兩個(gè)代碼如下
其中dht11_server代碼編譯后上傳到網(wǎng)關(guān),而dht11_client則上傳到LoRa結(jié)點(diǎn)。
代碼上傳后準(zhǔn)備一個(gè)DHT11溫濕度傳感器,連接到Arduino的A0,確認(rèn)連接無(wú)誤后,打開(kāi)LoRa結(jié)點(diǎn)的串口,可以看到串口輸出信息如下
輸出信息表明與網(wǎng)關(guān)數(shù)據(jù)交換成功,此時(shí)打開(kāi)ThingSpeak的可視化數(shù)據(jù)面板(WEB),用戶上傳的數(shù)據(jù)就會(huì)以可視化的形式呈現(xiàn)給用戶,如下
這里看到的只是濕度數(shù)據(jù)的圖形化顯示,除了數(shù)據(jù)之外,還有對(duì)應(yīng)數(shù)據(jù)的時(shí)間信息,這些數(shù)據(jù)會(huì)保存在云端,用戶可以導(dǎo)出成JSON或CSV格式保存,供后期分析之用。
這里還要提及一點(diǎn),官方的示例代碼有一個(gè)坑,就是代碼初始化設(shè)備時(shí),會(huì)等待串口設(shè)備的初始化,如果不打開(kāi)串口設(shè)備則會(huì)一直處于等待狀態(tài),不會(huì)接收及發(fā)送信息,在離線測(cè)試時(shí)很不方便,需要將相關(guān)的代碼注釋掉之后才能用。
最后一個(gè)測(cè)試是遠(yuǎn)程通信測(cè)試,因?yàn)檫h(yuǎn)程通信與低功耗才是LoRa吸引人的地方。LoRa使用擴(kuò)頻技術(shù)來(lái)實(shí)現(xiàn)遠(yuǎn)距離及低功耗,不同的調(diào)制參數(shù)適用不同的場(chǎng)合,例如不同的傳輸距離,典型的配置列表如下

在距離與速度之間,我們通常要做一個(gè)折衷,更遠(yuǎn)的傳輸距離意味著更多功耗,更低的數(shù)據(jù)傳輸率。Dragino默認(rèn)使用的設(shè)置為上表中的模式1,面向近距離通信同時(shí)提高較高的數(shù)據(jù)率(DR)。
測(cè)試時(shí)LoRa網(wǎng)關(guān)放在6樓的室內(nèi),移動(dòng)LoRa結(jié)點(diǎn),通過(guò)LED燈的閃爍來(lái)測(cè)試當(dāng)前連接是否正常,由于周圍都存在高大建筑物,在約300米外之后連接丟失。這個(gè)測(cè)試結(jié)果算是差強(qiáng)人意,不過(guò)比起WiFi來(lái)說(shuō),還是要好。按照LoRa官方的說(shuō)法,在該模式下,一般在城區(qū)的傳輸距離約2Km,這個(gè)應(yīng)該指的是室外的通信距離,加上周圍的干擾源及建筑物遮擋,實(shí)情距離應(yīng)該會(huì)更短。另外一點(diǎn)也說(shuō)明一下,在測(cè)試過(guò)程中發(fā)現(xiàn)LoRa的穿墻性能還是非常不錯(cuò)的。
總體來(lái)說(shuō),Dragino LoRa IoT Kit還是很不錯(cuò)的一款套件,除了提供兩個(gè)LoRa結(jié)點(diǎn)及一些簡(jiǎn)單的傳感器之外,更重要的是提供了一個(gè)LoRa網(wǎng)關(guān),畢竟沒(méi)有網(wǎng)關(guān)的LoRa應(yīng)用算不得完整。套件的官方報(bào)價(jià)為750元人民幣,相比國(guó)外Multitech Conduit一個(gè)LoRa網(wǎng)關(guān)至少是$469(ETH+LoRa),這個(gè)還算不錯(cuò)。配套的軟件例程也比較完整,從LoRa通信到IoT的完整應(yīng)用均有涉及,為用戶快速入門及后期的產(chǎn)品級(jí)應(yīng)用都具有極好的指導(dǎo)意義。官方的示例代碼及用戶手冊(cè)都比較詳細(xì),只是英文版看起來(lái)不爽!
參考資源:
Dragino: http://www.dragino.com/
LoRa網(wǎng)關(guān)及報(bào)價(jià):https://www.loriot.io/LoRa-gateways.html
Dragino LoRa IoT Kit: http://www.dragino.com/products/LoRa/item/120-LoRa-iot-kit.html
-
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評(píng)論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開(kāi)放投稿
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開(kāi)發(fā)
預(yù)算:¥1100000015小時(shí)前
- 12V汽車啟動(dòng)電源項(xiàng)目BMS設(shè)計(jì)
預(yù)算:¥50000023小時(shí)前
- 數(shù)據(jù)可視化軟件 開(kāi)發(fā)
預(yù)算:¥5000023小時(shí)前
- PLC項(xiàng)目調(diào)試修改
預(yù)算:¥100001天前
- 起動(dòng)電機(jī)控制器開(kāi)發(fā)
預(yù)算:¥1100001天前