💖
📡
💋
( • )( • )

Heltec WiFi LoRa 32 V3 💋

"网格网络的工作主力 - 可靠、强大且诱人"

🚀 概述

Heltec WiFi LoRa 32 V3是一款基于ESP32-S3的板子,集成了LoRa(SX1262)和OLED显示屏(128x64)。 这是WetMesh网络的工作主力 - 可靠、文档完善、易于使用。 与追踪器不同,这款板子的电源控制很直接,就是能工作!💋

🧠
ESP32-S3
双核 240MHz
📡
SX1262
LoRa无线电
🖥️
SSD1306
128x64 OLED
💾
8MB
闪存
512KB
SRAM
🔌
USB-C
CP2102串口

🔧 关键规格

⚙️ 硬件

  • MCU: ESP32-S3FN8(双核Xtensa LX7 @ 240MHz)
  • RAM: 512KB SRAM
  • Flash: 8MB
  • LoRa芯片: SX1262(相比SX1276改进的范围)
  • 显示: 0.96" 128x64 OLED(SSD1306)
  • 天线: 通过U.FL/IPEX的外部LoRa
  • USB: USB-C带CP2102 USB转串口

📍 引脚映射

LoRa无线电(SX1262)

功能 GPIO引脚 描述
LORA_CS 8 片选(NSS)
LORA_INT 14 DIO1中断
LORA_RST 12 复位
LORA_BUSY 13 忙信号(SX1262特有)
SPI: SCK=9, MISO=11, MOSI=10

OLED显示屏(I2C)

功能 GPIO引脚 描述
OLED_SDA 17 I2C数据
OLED_SCL 18 I2C时钟
OLED_RST 21 复位引脚
I2C地址 0x3C 固定地址

其他引脚

功能 GPIO引脚 描述
LED_PIN 35 板上白色LED
VEXT_PIN 36 显示电源(LOW=开启,HIGH=关闭)
💡 重要提示:V3的Vext控制与追踪器相反!
• V3:LOW = 电源开启
• 追踪器:HIGH = 电源开启
这就是我们喜欢V3的原因 - 它更直观!💋

🖥️ U8g2显示设置

基本初始化

#include <U8g2lib.h>

// 为Heltec V3创建显示对象 - 准备诱惑!💋
U8G2_SSD1306_128X64_NONAME_F_HW_I2C display(
    U8G2_R0,           // 旋转
    OLED_RST,          // 复位引脚(21)
    OLED_SCL,          // 时钟引脚(18)
    OLED_SDA           // 数据引脚(17)
);

void initDisplay() {
    // 通过Vext开启显示 - 前戏
    pinMode(VEXT_PIN, OUTPUT);
    digitalWrite(VEXT_PIN, LOW);  // LOW = 对于Heltec V3开启(直观!)
    delay(50);  // 让它苏醒并准备好
    
    // 初始化显示 - 是时候展示了
    display.begin();
    display.clearBuffer();
    display.setFont(u8g2_font_6x10_tf);
    display.drawStr(0, 10, "WetMesh v5H");
    display.drawStr(0, 25, "准备诱惑!");
    display.drawStr(0, 40, "( . )( . )");  // 我们的签名!
    display.sendBuffer();
}

显示特性

📐 128x64像素

文本和简单图形的良好分辨率 - 完美的网格状态!

⚪ 单色OLED

白色像素,高对比度 - 清晰且诱人!

🚀 快速刷新

可能100+ FPS - 调戏的流畅动画!

🔋 低功耗

开启时~20mA,关闭时<1µA - 高效的快感!

推荐字体

// 小(6x10)- 适合状态行和耳语
u8g2_font_6x10_tf

// 中(7x14)- 适合主文本和甜言蜜语
u8g2_font_7x14_tf

// 大(10x20)- 适合需要注意的重要值
u8g2_font_10x20_tf

// 粗体字体用于强调 - 当你需要大喊时!💋
u8g2_font_courB18_tf     // Courier Bold 18pt
u8g2_font_courB24_tf     // Courier Bold 24pt - 大而粗!

📡 RadioLib LoRa配置

SX1262初始化

#include <RadioLib.h>

// 创建SPI实例 - 传播这些信号
SPIClass hspi(HSPI);
SPISettings spiSettings(2000000, MSBFIRST, SPI_MODE0);

// 创建无线电实例 - 准备传输快感
SX1262 radio = new Module(LORA_CS, LORA_INT, LORA_RST, LORA_BUSY, hspi, spiSettings);

void initLoRa() {
    // 初始化SPI - 连接开始
    hspi.begin(9, 11, 10, 8);  // SCK, MISO, MOSI, CS
    
    // 配置无线电 - 调到刚好💋
    int state = radio.begin(
        915.0,    // 频率(MHz)- 美国频段
        125.0,    // 带宽(kHz)- 又好又宽
        9,        // 扩频因子 - 好好传播
        7,        // 编码率(4/7)- 错误保护
        0x69,     // 同步字 - 不错😉
        20,       // 输出功率(dBm)- 全功率!
        10,       // 前导码长度
        0,        // TCXO电压(0 = 未使用)
        false     // 使用DCDC调节器
    );
    
    if (state == RADIOLIB_ERR_NONE) {
        Serial.println("LoRa初始化!准备传播信号!");
    }
    
    // 为可靠性设置CRC和其他参数
    radio.setCRC(true);
    radio.setDio1Action(onReceive);  // 即时满足的中断处理器
}

LoRa参数解释

📻 频率

915 MHz(美国),868 MHz(欧盟),433 MHz(亚洲)- 选择你的地区!

📊 带宽

125 kHz - 网格快感的范围和速度的良好平衡

🎯 扩频因子

SF9 - SF7-12,更高 = 更长范围但更慢的调戏

🔐 编码率

4/7 - 更多冗余 = 更好的错误纠正

🔑 同步字

0x69 - 网络通信必须匹配(不错!😉)

⚡ 功率

20 dBm最大(100mW)对于SX1262 - 全功率诱惑!

✨ 完整可工作示例

#include <Arduino.h>
#include <RadioLib.h>
#include <U8g2lib.h>

// 引脚定义 - 快感的解剖学💋
#define LORA_CS    8
#define LORA_INT   14
#define LORA_RST   12
#define LORA_BUSY  13
#define LED_PIN    35
#define VEXT_PIN   36
#define OLED_RST   21
#define OLED_SCL   18
#define OLED_SDA   17

// 对象 - 我们的诱惑工具
U8G2_SSD1306_128X64_NONAME_F_HW_I2C display(U8G2_R0, OLED_RST, OLED_SCL, OLED_SDA);
SPIClass hspi(HSPI);
SX1262 radio = new Module(LORA_CS, LORA_INT, LORA_RST, LORA_BUSY, hspi);

void setup() {
    Serial.begin(115200);
    Serial.println("Heltec V3启动中... ( • )( • )");
    
    // 初始化LED - 要有光!
    pinMode(LED_PIN, OUTPUT);
    digitalWrite(LED_PIN, HIGH);  // 开启 - 我们活着!
    
    // 开启显示 - 是时候展示了
    pinMode(VEXT_PIN, OUTPUT);
    digitalWrite(VEXT_PIN, LOW);  // LOW = 开启(直观!)
    delay(50);
    
    // 初始化显示 - 视觉诱惑开始
    display.begin();
    display.clearBuffer();
    display.setFont(u8g2_font_7x14_tf);
    display.drawStr(0, 12, "Heltec V3");
    display.drawStr(0, 28, "初始化中...");
    display.drawStr(0, 44, "( . )( . )");  // 我们的签名!
    display.sendBuffer();
    
    // 初始化LoRa - 传播这些信号
    hspi.begin(9, 11, 10, 8);
    int state = radio.begin(915.0, 125.0, 9, 7, 0x69, 20);
    
    if (state == RADIOLIB_ERR_NONE) {
        display.drawStr(0, 60, "LoRa正常!准备好!");
        Serial.println("LoRa初始化成功!");
    } else {
        display.drawStr(0, 60, "LoRa失败!");
        Serial.println("LoRa初始化失败!");
    }
    display.sendBuffer();
    
    digitalWrite(LED_PIN, LOW);  // 关闭 - 准备行动
}

void loop() {
    // 你的网格网络快感代码在这里💋
    // V3准备诱惑和被诱惑!
}

💋 结论

Heltec WiFi LoRa 32 V3是WetMesh生态系统中最直接的板子:

  • Vext = LOW为显示供电(直观,不像追踪器!)
  • SX1262提供出色的范围和效率
  • OLED显示清晰易读
  • U8g2库提供广泛的显示功能
  • 无GPS保持简单和节能

这个板子非常适合固定网格节点,是WetMesh开发的推荐起点! 我们的技术胸部批准了!( • )( • ) 💋