天天看點

【LoRa32U4II】介紹以及基于Arduino IDE編譯環境搭建及測試LoRa 子產品LoRa32u4 II介紹編譯環境介紹編譯環境搭建及測試

目錄

  • LoRa 子產品LoRa32u4 II介紹
    • LoRa32u4 II 資料下載下傳
    • LoRa32u4 II 規格介紹
    • LoRa32u4 II 腳位說明
  • 編譯環境介紹
    • 電腦系統
    • 編譯軟體
    • Arduino需求庫
  • 編譯環境搭建及測試
    • LoRa32u4 II 測試硬體接線圖
    • 編譯環境搭建說明

LoRa 子產品LoRa32u4 II介紹

産品圖檔

【LoRa32U4II】介紹以及基于Arduino IDE編譯環境搭建及測試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 腳位說明

【LoRa32U4II】介紹以及基于Arduino IDE編譯環境搭建及測試LoRa 子產品LoRa32u4 II介紹編譯環境介紹編譯環境搭建及測試

編譯環境介紹

電腦系統

  • Windows 10 64位 系統版本沒有要求,此版本為此次測試版本

編譯軟體

  • Arduino 1.8.13 版本沒有要求,此版本為此次測試版本

    官網連結:https://www.arduino.cc/en/software

    【LoRa32U4II】介紹以及基于Arduino IDE編譯環境搭建及測試LoRa 子產品LoRa32u4 II介紹編譯環境介紹編譯環境搭建及測試

Arduino需求庫

  • LoRa 庫檔案 0.8.0

編譯環境搭建及測試

LoRa32u4 II 測試硬體接線圖

【LoRa32U4II】介紹以及基于Arduino IDE編譯環境搭建及測試LoRa 子產品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檔案夾放入其中

【LoRa32U4II】介紹以及基于Arduino IDE編譯環境搭建及測試LoRa 子產品LoRa32u4 II介紹編譯環境介紹編譯環境搭建及測試

4、LoRa庫檔案安裝

啟動Arduino IDE,在“項目-庫管理器”裡安裝LoRa庫檔案(如下圖)

【LoRa32U4II】介紹以及基于Arduino IDE編譯環境搭建及測試LoRa 子產品LoRa32u4 II介紹編譯環境介紹編譯環境搭建及測試

5、打開一個例程并選擇對應的闆子燒錄測試一下

下載下傳完庫後會有對應例程,可以嘗試打開示例測試一下,此次使用的是LoRaReciver例程測試,打開後在工具/闆菜單中選擇BS32U4/LoRa32u4II闆,在工具/端口菜單中選擇正确的串行端口。(如下圖)

【LoRa32U4II】介紹以及基于Arduino IDE編譯環境搭建及測試LoRa 子產品LoRa32u4 II介紹編譯環境介紹編譯環境搭建及測試

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);
}
           

發送端序列槽輸出

【LoRa32U4II】介紹以及基于Arduino IDE編譯環境搭建及測試LoRa 子產品LoRa32u4 II介紹編譯環境介紹編譯環境搭建及測試

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());
  }
}
           

接收端序列槽輸出

【LoRa32U4II】介紹以及基于Arduino IDE編譯環境搭建及測試LoRa 子產品LoRa32u4 II介紹編譯環境介紹編譯環境搭建及測試

繼續閱讀