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

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