搜索代码

从13英里(21公里)外开启设备 - 终极离网LoRa项目,配备WiFi LoRa 32!

本课是……的一部分: WiFi LoRa简介

从13英里(21公里)外开启设备 - 终极离网LoRa项目,配备WiFi LoRa 32!

想象一下能够切换一个风扇、加热器、门锁或遥控系统从上到21公里(13英里)远离完全离网,没有Wi-Fi,和没有SIM卡在本教程中,您将学习如何构建一个安全的长距离无线中继控制器。Heltec WiFi LoRa 32 V3模块和Robojax_HeltecLoRa32库。本项目实现了加密的LoRa通信,以安全地在远距离触发继电器。

项目概况

该系统由两个LoRa32开发板组成:

  • 发射器 (TX)一个按键触发通过LoRa发送的加密命令("开"或"关")。

  • 接收器 (RX)监听并解密命令,然后相应地控制连接到GPIO4的继电器模块。

您有两个发射器代码版本:

  • 简单长按按钮时发送ON,释放时发送OFF。

  • 切换每次按下都会更改状态。


安装 Heltec ESP32 开发板

将此路径添加到您的Arduino IDE的首选项中,如视频所示:https://resource.heltec.cn/download/package_heltec_esp32_index.json

必需的库

您必须安装该Robojax_HeltecLoRa32库。从本文下面的链接下载。

在上传任何代码之前,请通过Arduino IDE安装此ZIP库。

接线说明

发射器布线:

  • 用户按钮连接到GPIO0

  • 可选:OLED显示屏使用默认引脚(SCL/SDA)

接收器接线:

  • 继电器(或蜂鸣器)控制引脚连接到GPIO4

  • 5V 继电器模块通过电路板的 5V 和 GND 供电

使用LoRa控制负载

接线图显示了带继电器和负载的LoRa32接收器。

Helte_Wifi_LoRA_蜂鸣器

显示LoRa32蜂鸣器的接线图。

安全交易代码说明

在两个TX草图中,启用了加密。setSecurityKey()来自 Robojax 库的方法。例如:

const char *userKey = "hyhT676#h~_876s";
robojaxDevice.setSecurityKey(userKey);

Relay_Secure_TX_Simple.ino在GPIO0上,高电平信号发送“ON”,而低电平发送“OFF”:

if(digitalRead(0) == HIGH){
  robojaxDevice.sendSecureMessage("ON");
} else {
  robojaxDevice.sendSecureMessage("OFF");
}

Relay_Secure_TX_Toggle.ino每次按钮按下都会在打开和关闭之间切换:

if(buttonPressed){
  status = !status;
  String message = status ? "ON" : "OFF";
  robojaxDevice.sendSecureMessage(message);
}

安全RX代码说明

接收器草图使用相同的加密密钥并监听安全消息:

robojaxDevice.setSecurityKey("hyhT676#h~_876s");
String message = robojaxDevice.receiveSecureMessage();

然后相应地控制GPIO4:

if(message == "ON"){
  digitalWrite(RELAY_CONTROL_PIN, HIGH);
} else if(message == "OFF"){
  digitalWrite(RELAY_CONTROL_PIN, LOW);
}

OLED显示屏显示接收状态和“RX”标签。

章节索引

  1. [00:00] 项目介绍和范围展示

  2. 用例:风扇,取暖器,门,灯

  3. [00:20] 使用的硬件

  4. 接线概述

  5. [01:00] 安装 Robojax 库

  6. [01:20] TX代码(简单版本)

  7. [01:40] TX 代码(切换版本)

  8. [02:00] RX代码说明

  9. [02:20] 现场演示

本教程提供了一种在长距离无线控制设备的稳健和安全的方法。所有代码和所需的库都在本文下方提供。观看完整视频以便跟随学习!

图像

Heltec_WiFi_LoRa_32_V3_N35-1-package
Heltec_WiFi_LoRa_32_V3_N35-1-package
没有附加代码。

Common Course Files

文件📁

其他文件