首頁 > 評測 > 帶你飛越LoRa世界--Feather 32u4 LoRa開發(fā)板體驗

帶你飛越LoRa世界--Feather 32u4 LoRa開發(fā)板體驗

  • 作者:
  • 來源:21ic
  • [導(dǎo)讀]
  • 今天給大家介紹的Feather 32u4 LoRa開發(fā)板是Feather家族中的一員。從名字可以看出,這是一款用于學(xué)習(xí)及評估LoRa技術(shù)的開發(fā)板。相比LoRa在國外火爆的局面,國內(nèi)似乎還沒有掀起太大的波瀾,不過技術(shù)這東西,說火爆就火爆了,有時間還是了解下也好。

對于一個典型的IoT通信模型來說,傳感器收集到的信息,一般通過網(wǎng)關(guān)集中、篩選后再上傳到服務(wù)器;除了數(shù)據(jù)的上行,也可以通過服務(wù)器下發(fā)控制指令,實現(xiàn)遠程控制。

結(jié)點與網(wǎng)關(guān)交換信息的不同方式,又可以分為三類:

• Class A: 低功耗模式,必須實現(xiàn)

• Class B: 低延遲,可選實現(xiàn)

• Class C: 無延遲,可選實現(xiàn),功耗較大

先看一段簡單的硬件初始化代碼,如下

/* for feather32u4 */

#define RFM95_CS 8

#define RFM95_RST 4

#define RFM95_INT 7

#define RF95_FREQ 915.0

// Singleton instance of the radio driver

//RH_RF95 rf95;

RH_RF95 rf95(8, 7); // Rocket Scream Mini Ultra Pro with the RFM95W

首先指定MCU與LoRa模塊通信的一些基本配置,如片選、復(fù)位及中斷引腳,這里分別對應(yīng)于8、4及7號引腳,接下來是定義ISM頻段,前面提到這是一款900MHz的芯片,所以要設(shè)置為915。

接下來的代碼是使用硬件配置的引腳來初始化LoRa芯片,底層代碼通過SPI接口來指定相關(guān)的指令,如設(shè)置LoRa的配置參數(shù),設(shè)置發(fā)射功率等。LoRa使用擴頻技術(shù)來實現(xiàn)遠距離及低功耗,不同的調(diào)制參數(shù)適用不同的場合,例如不同的傳輸距離,典型的配置列表如下

不同的擴頻因子SF、帶寬BW及CR的組合,可以得到不同的傳輸速率,結(jié)合不同的發(fā)射功率,還可以選擇傳輸距離等

while (!rf95.init()) {

Serial.println("LoRa radio init failed");

while (1);

}

Serial.println("LoRa radio init OK!");

// Defaults after init are 434.0MHz, modulation GFSK_Rb250Fd250, +13dbM

if (!rf95.setFrequency(RF95_FREQ)) {

Serial.println("setFrequency failed");

while (1);

}

Serial.print("Set Freq to: "); Serial.println(RF95_FREQ);

// Defaults after init are 434.0MHz, 13dBm, Bw = 125 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on

// The default transmitter power is 13dBm, using PA_BOOST.

// If you are using RFM95/96/97/98 modules which uses the PA_BOOST transmitter pin, then

// you can set transmitter powers from 5 to 23 dBm:

rf95.setTxPower(23, false);

這一段代碼設(shè)置ISM頻率,使用默認的BW、CR及SF參數(shù),這些參數(shù)在LoRa每個結(jié)點上,這些參數(shù)要求保持一致。剩下的事情就是發(fā)送及接收數(shù)據(jù)的處理工作了,代碼就不詳細介紹了。

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

網(wǎng)友評論