www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

首頁(yè) > 評(píng)測(cè) > 來(lái)自Arduino的小巧的LoRa開(kāi)發(fā)板——MKR WAN 1300開(kāi)發(fā)板評(píng)測(cè)

來(lái)自Arduino的小巧的LoRa開(kāi)發(fā)板——MKR WAN 1300開(kāi)發(fā)板評(píng)測(cè)

Arduino    LoRa    MKR WAN    Atmel   SAMD21   Murata    CMWX1ZZABZ   
  • 作者:SATURN
  • 來(lái)源:21ic
  • [導(dǎo)讀]
  • LoRa的優(yōu)勢(shì)在于低功耗和遠(yuǎn)距離,理論上來(lái)說(shuō),相比于BLE和WiFi更具優(yōu)勢(shì)。不過(guò)在可穿戴領(lǐng)域,依舊是BLE一枝獨(dú)秀;而WiFi則一直獨(dú)霸著局域網(wǎng)無(wú)線通信領(lǐng)域。相對(duì)來(lái)說(shuō),LoRa在工業(yè)應(yīng)用方面正逐漸顯露自己獨(dú)特的優(yōu)勢(shì)。市面上LoRa產(chǎn)品不少,大多以模塊的方式提供給用戶,借助三方MCU來(lái)實(shí)現(xiàn)自己的遠(yuǎn)程通信功能。

rId31.png

這里是專門為了本次測(cè)試而建立的一個(gè)應(yīng)用程序,應(yīng)用程序一般包括APP EUI及APP KEY兩個(gè)要素,用來(lái)區(qū)別不同的應(yīng)用程序。

建立好應(yīng)用程序之后,要為該應(yīng)用程序綁定一個(gè)或多個(gè)設(shè)備,也就是將MKR1300和應(yīng)用程序?qū)?yīng)起來(lái),方便接收及處理數(shù)據(jù)。

rId32.png

圖中可以看到,注冊(cè)設(shè)備時(shí)一般要提供設(shè)備的EUI信息,EUI可以理解為網(wǎng)絡(luò)設(shè)備中的MAC地址,在設(shè)備出廠時(shí)就已固化在設(shè)備內(nèi)部,每個(gè)設(shè)備的Device EUI都是不同的。

如何獲取設(shè)備的EUI呢,一般情況下,例如網(wǎng)卡及WiFi設(shè)備都會(huì)使用不干膠貼紙寫出并貼在設(shè)備上。而對(duì)于MKR1300來(lái)說(shuō),要獲取設(shè)備的EUI,需要運(yùn)行配套程序提供的代碼,通過(guò)Arduino的串口監(jiān)視器來(lái)獲取,如下

rId33.png

這里看到的Your device EUI is: a8610xxx就是設(shè)備的EUI。

支持庫(kù)里的FirstConfiguration程序還可以用來(lái)測(cè)試與TTN的連接情況,不過(guò)需要指定幾個(gè)參數(shù):激活方式,使用OTTA還是使用ABP;應(yīng)用程序EUI,區(qū)分不同的應(yīng)用程序;APP KEY,該值類似一些REST API中的授權(quán)機(jī)制,以免數(shù)據(jù)被濫用。

rId34.png

這是指定連接(激活)方式后再指定APP EUI及APP KEY后連接成功的情況。

配套的庫(kù)文件還提供了一個(gè)發(fā)送及接收數(shù)據(jù)的示例LoRaSendAndReceive.ino文件,演示了如何通過(guò)LoRa來(lái)發(fā)送及接收數(shù)據(jù)的例子,關(guān)鍵代碼如下

LoRaModem modem;

...

int err;

modem.beginPacket();

modem.print(msg);

err = modem.endPacket(true);

if (err > 0) {

Serial.println("Message sent correctly!");

} else {

Serial.println("Error sending message :(");

Serial.println("(you may send a limited amount of messages per minute, depending on the signal strength");

Serial.println("it may vary from 1 message every couple of seconds to 1 message every minute)");

}

delay(1000);

if (!modem.available()) {

Serial.println("No downlink message received at this time.");

return;

}

String rcv;

rcv.reserve(64);

while (modem.available()) {

rcv += (char)modem.read();

}

Serial.print("Received: " + rcv + " - ");

for (unsigned int i = 0; i < rcv.length(); i++) {

Serial.print(rcv[i] >> 4, HEX);

Serial.print(rcv[i] & 0xF, HEX);

Serial.print(" ");

}

通過(guò)modem.print()來(lái)發(fā)送數(shù)據(jù),通過(guò)modem.read()來(lái)讀取數(shù)據(jù)。

其實(shí)我們都知道,LoRa通信中一般需要指定具體的能數(shù),如使用868MHz還是使用915MHz來(lái)進(jìn)行通信,另外還有SF、CR等參數(shù)的設(shè)置,這些都可以通過(guò)moderm實(shí)例來(lái)進(jìn)行設(shè)置。

另外還要提一下的是還需要在代碼中指定APP EUI及APP KEY兩個(gè)值,否則通信是不會(huì)成功的。

將修改后的代碼編譯并上傳到MKR1300開(kāi)發(fā)板,找開(kāi)串口監(jiān)視器

rId35.png

從串口監(jiān)視中可以看到,我們發(fā)送了字符串"Hello, MKR1300!",同時(shí)看到信息發(fā)送成功的提示。

在TTN的控制臺(tái)上,我們也可以看到類似的信息,如下

rId36.png

注意Payload字段的值,與我們?cè)贏rduino串口監(jiān)視器上看到的信息是一致的,只不過(guò)只里只顯示了二進(jìn)制的表示形式。

另外我們也可以看到通信的具體參數(shù)設(shè)置,例如頻段為867.7,調(diào)制方式為L(zhǎng)ORA,data_rate的值為SF12BW125,還有CR的值為4/5等,其它的一些信息則是網(wǎng)關(guān)傳遞過(guò)來(lái)的信息,如timestamp等信息,別忘了,這些信息都是通過(guò)網(wǎng)關(guān)轉(zhuǎn)發(fā)過(guò)來(lái)的!

除了上行信息,也可以控制下發(fā)信息,不過(guò)目前TTN還只提供了簡(jiǎn)單的機(jī)制來(lái)實(shí)現(xiàn)信息的下發(fā),參考下圖

rId37.png

這里我們指定下發(fā)的信息為三個(gè)字節(jié):65 66 67,這個(gè)下發(fā)的動(dòng)作是自動(dòng)觸發(fā)的,一旦收到數(shù)據(jù),自動(dòng)下發(fā)指定的三個(gè)字節(jié)!

再次運(yùn)行客戶端程序,重新發(fā)送一次一次數(shù)據(jù),得到如下的結(jié)果

rId38.png

這里我們看到了接收到的三個(gè)字節(jié):65 66 67,對(duì)應(yīng)的ASCII字符為efg。

如果我們要在粒度控制上獲取更好的控制效果應(yīng)該怎么辦呢?TTN提供了數(shù)據(jù)的編、解碼機(jī)制和Integration來(lái)增強(qiáng)其功能,詳情請(qǐng)參考TTN的相關(guān)文檔。

總的來(lái)說(shuō),MKR1300集Arduino Zero與LoRa通信功能于一身,體積小巧但是功能強(qiáng)大,結(jié)合Arduino的簡(jiǎn)單易用,確實(shí)是LoRa入門者首選開(kāi)發(fā)板!

最后有個(gè)疑問(wèn),據(jù)Arduino官方文檔介紹,該開(kāi)發(fā)板支持LoRa 433/868/915通信頻段,但是從ABZ官方的文檔中得知,該模塊只支持868/915通信頻段,本次測(cè)試只測(cè)試了868頻段的通信,其它兩個(gè)頻段都沒(méi)有測(cè)試,留下了一個(gè)小困惑!

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評(píng)論

  • 聯(lián)系人:巧克力娃娃
  • 郵箱:board@21ic.com
  • 我要投稿
  • 歡迎入駐,開(kāi)放投稿

熱門標(biāo)簽
項(xiàng)目外包 more+