目錄
- LoRa 子產品LoRa32u4 II介紹
-
- LoRa32u4 II 資料下載下傳
- LoRa32u4 II 規格介紹
- LoRa32u4 II 腳位說明
- 編譯環境介紹
-
- 電腦系統
- 編譯軟體
- Arduino需求庫
- 編譯環境搭建及測試
-
- LoRa32u4 II 測試硬體接線圖
- 編譯環境搭建說明
LoRa 子產品LoRa32u4 II介紹
産品圖檔
LoRa32u4 II 資料下載下傳
連結: https://pan.baidu.com/s/1r9Y6BlBPdMJ0OjWSuVJn5g 提取碼: 5z2z
LoRa32u4 II 規格介紹
特性
- 使用 LoRa 協定進行長距離通信
- 超低功耗
- 闆載 LiPo 電池充電和管理
- Arduino IDE 相容性
一般規格
- MCU:Atmega® 32u4 3.3V @ 8MHz
- ROM:32K
- RAM:2K
- 邏輯電平:3.3V
電源規格
- 工作電壓:3.3V – 5.0V
- JST PHR 2.0mm 間距電池連接配接器
- 超低壓差 600mA 3.3V 穩壓器 - 專用 LiPo 充電和控制 IC
- 發射電流:128mA for 70mS
- 無睡眠接收電流:14mA
- 電流 空閑 + 監聽:11mA
- 電流 接收 + 睡眠:1mA
- 目前超級睡眠:300uA
- LiPo 充電電流:100mA(預設設定)1000mA(最大值)
- 電池電壓監控通道
LoRa 規格
- 晶片組:Semtech® SX1276
- 天線插座:uFL (IPEX)
- 允許使用線天線的針孔
- 與 MCU 的硬體 SPI 通信
- 發射功率:+20dBm
-
接收靈敏度:
-139dBm LoRa 62.5Khz SF12 146bps
-13162dBh LoRa SF12 293bps
-118dBm LORA 125KHZ SF6 9380bps
-123dBm FSK 5KHZ 1.2Kbps
-117dBm FSK 5KHZ 4.8Kbps
-110dBm FSK 20KHZ 38.4Kbps
- FIFO:64位元組•資料速率:FSK 1.2K〜300Kbps的LORA 0.018K〜37.5Kbps
- 調變:FSK ,MSK,GFSK,GMSK,LoRa,OOK
- 工作頻率:868MHz - 915MHz
- 數字 RSSI 功能
- 自動頻率校正
- 自動增益控制
- RF 喚醒功能
- 低電壓檢測和溫度傳感器
- 快速喚醒和跳頻
- 高度 可配置的資料包處理
- 天線分集和 TX/RX 切換控制
LoRa32u4 II 腳位說明
編譯環境介紹
電腦系統
- Windows 10 64位 系統版本沒有要求,此版本為此次測試版本
編譯軟體
-
Arduino 1.8.13 版本沒有要求,此版本為此次測試版本
官網連結:https://www.arduino.cc/en/software
Arduino需求庫
- LoRa 庫檔案 0.8.0
編譯環境搭建及測試
LoRa32u4 II 測試硬體接線圖
編譯環境搭建說明
1. 安裝Arduino IDE,從官網下載下傳對應的系統的軟體
官網連結:https://www.arduino.cc/en/software
2. 安裝LoRa32u4 II USB驅動 adafruit_drivers.exe ,安裝檔案已共享在百度網盤
連結: https://pan.baidu.com/s/1r9Y6BlBPdMJ0OjWSuVJn5g 提取碼: 5z2z
注:
必須安裝usb串行(VCP,虛拟Com端口)的驅動程式。這僅适用于Windows,Mac OSX和Linux使用者不必安裝驅動程式(在大多數情況下)。
3. 安裝LoRa32u4 II 開發闆檔案
把BSFrance檔案夾放入 : Documents/Arduino/hardware(此處為Arduino的安裝目錄裡面,如下圖)
參考Github連結:https://github.com/BSFrance/BSFrance-avr
注:
Documents/Arduino是預設位置,如果使用其他位置,則原則仍然相同。如果Documents/Arduino中沒有任何硬體檔案夾,請建立它并解壓縮其中的BSFrance存儲庫。如果您已經有一個BSFrance檔案夾,您可以直接将STM32檔案夾放入其中
4、LoRa庫檔案安裝
啟動Arduino IDE,在“項目-庫管理器”裡安裝LoRa庫檔案(如下圖)
5、打開一個例程并選擇對應的闆子燒錄測試一下
下載下傳完庫後會有對應例程,可以嘗試打開示例測試一下,此次使用的是LoRaReciver例程測試,打開後在工具/闆菜單中選擇BS32U4/LoRa32u4II闆,在工具/端口菜單中選擇正确的串行端口。(如下圖)
6、兩個闆子分别燒錄“LoRaSender”和“LoRaReciver”程式并測試
注
此例程在百度網盤資料裡,不能直接使用LoRa庫裡的例程
連結: https://pan.baidu.com/s/1r9Y6BlBPdMJ0OjWSuVJn5g 提取碼: 5z2z
LoRaSender源碼
#include <SPI.h>
#include <LoRa.h>
//LoRa32u4II (868MHz-915MHz) ports
#define SS 8
#define RST 4
#define DI0 7
#define BAND 868E6 //915E6
int counter = 0;
void setup() {
Serial.begin(9600);
delay(200);
//while (!Serial); // comment if LoRa32u4 USB port is not used
LoRa.setPins(SS,RST,DI0);
Serial.println("LoRa Sender");
if (!LoRa.begin(BAND)) {
Serial.println("Starting LoRa failed!");
while (1);
}
Serial.print("Sending packet: ");
}
void loop() {
Serial.print("Sending packet: ");
Serial.println(counter);
// send packet
LoRa.beginPacket();
LoRa.print("hello ");
LoRa.print(counter);
LoRa.endPacket();
counter++;
delay(1000);
}
發送端序列槽輸出
LoRaReciver源碼
#include <SPI.h>
#include <LoRa.h>
//LoRa32u4II (868MHz-915MHz) ports
#define SS 8
#define RST 4
#define DI0 7
#define BAND 868E6 //915E6
void setup() {
Serial.begin(9600);
delay(200);
while (!Serial);// comment if LoRa32u4 USB port is not used
Serial.println("LoRa Receiver");
LoRa.setPins(SS,RST,DI0);
if (!LoRa.begin(BAND)) {
Serial.println("Starting LoRa failed!");
while (1);
}
}
void loop() {
// try to parse packet
int packetSize = LoRa.parsePacket();
if (packetSize) {
// received a packet
Serial.print("Received packet '");
// read packet
while (LoRa.available()) {
Serial.print((char)LoRa.read());
}
// print RSSI of packet
Serial.print("' with RSSI ");
Serial.println(LoRa.packetRssi());
}
}
接收端序列槽輸出