搜索代码

使用Heltec WiFi LoRa 32 V3通过DHT22传输温度到1.4公里

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

使用Heltec WiFi LoRa 32 V3通过DHT22传输温度到1.4公里

在本教程中,我们将探讨如何使用 Heltec WiFi LoRa 32 V3 模块通过 DHT22 传感器传输温度数据,传输距离可达 1.4 公里。此功能得益于 LoRa 技术的应用,该技术支持低功耗、远距离通信。到本指南结束时,您将拥有一个可以无线发送温度读数的工作系统。

Wifi LoRa 32 V3 内部 Meshnology N30 发送和接收

我们将首先概述本项目涉及的硬件组件,包括 Heltec WiFi LoRa 32 V3 模块和 DHT22 传感器。之后,我们将进行接线说明,在这里你将学习如何连接这些组件。最后,我们将逐步展示使该系统运行所需的代码。有关视觉指导,请参考视频中的各个时间戳(在视频中的 00:00)。

硬件说明

本项目的主要组件是Heltec WiFi LoRa 32 V3模块和DHT22温湿度传感器。Heltec模块配备ESP32微控制器,具有Wi-Fi和蓝牙功能,同时支持LoRa通信。这使得数据传输选项更加灵活。

Wifi LoRa 32 V3 在 Meshnology N30 内部作为温度传输器

DHT22传感器是一种数字传感器,能够提供准确的温度和湿度读数。它通过一个数字输出引脚与ESP32通信,使其易于在项目中连接和使用。这些组件共同构成了一个强大的无线温度监测系统。

数据表详细信息

制造商 赫尔特克自动化
零件编号 WiFi LoRa 32 V3
逻辑/输入输出电压 3.3 伏
供电电压 3.7-4.2 V
输出电流(每个通道) ~1 A
峰值电流(每通道) ~2 A
PWM频率指导 1 kHz(典型)
输入逻辑阈值 0.7 伏 (高), 0.3 伏 (低)
电压降 / RDS(开)/ 饱和度 0.3 V(最大)
热限制 85 °C (最高)
包裹 PCB模块
备注 / 变体 可选择多种频率选项(例如,433 MHz、868 MHz、915 MHz)

  • 确保DHT22供电为3.3V,而不是5V。
  • 在ESP32和DHT22之间进行通信时,使用适当的逻辑电平。
  • 考虑在长时间以高电流运行时进行散热。
  • 检查LoRa的天线连接,以最大化范围。
  • 请注意您所在地区的LoRa频率规定。

接线说明

Heltec_WiFi_loRa_32V3_DHT22_wiring

将 Heltec WiFi LoRa 32 V3 与 DHT22 传感器连接,首先将传感器的 VCC 引脚连接到 Heltec 模块的 3.3V 引脚。接下来,将 DHT22 的 GND 引脚连接到 Heltec 上的一个 GND 引脚。DHT22 的数据引脚应连接到 Heltec 的 GPIO 引脚 3。

确保在数据引脚和VCC之间使用一个拉升电阻(大约10kΩ),以获得稳定的读数。此外,确保LoRa天线牢固连接,以增强传输范围。如果您使用外部电源,请确保Heltec模块正确供电,以避免任何操作问题。

安装 Heltec ESP32 开发板

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

代码示例与操作指南

以下代码片段说明如何设置Heltec模块以从DHT22传感器读取温度数据并通过LoRa传输。代码初始化显示器并设置DHT传感器。

#include 
#define DHTPIN 3         // GPIO pin for DHT22
#define DHTTYPE DHT22    // Define DHT type
DHT dht(DHTPIN, DHTTYPE);
void setup() {
  Serial.begin(115200);
  dht.begin(); // Initialize DHT sensor
}

在这个代码片段中,我们定义了DHT22传感器连接的引脚并对其进行初始化。setup()函数。TheSerial.begin(115200)该行用于调试输出。

void loop() {
  float tempC = dht.readTemperature(); // Read temperature in Celsius
  float tempF = dht.convertCtoF(tempC); // Convert to Fahrenheit
  sendData(tempC, tempF); // Function to send temperature data
}

该摘录展示了如何读取温度数据。loop()函数。该sendData()函数被调用以通过LoRa传输温度读数。

void sendData(float tempC, float tempF) {
  String data = "Temperature: " + String(tempC) + "°C"; // Create data string
  Radio.Send(data.c_str(), data.length()); // Send data
}

这里,我们创建包含温度的数据字符串并使用它发送。Radio.Send()方法。这将无线传输数据到接收模块。

请参阅文章下方加载的完整代码以获取详细实现。

演示 / 期待什么

一旦一切设置完成,并且代码已上传到 Heltec 模块,您应该会在 OLED 屏幕上看到温度读数。系统将传输温度数据,另一个配置为读取数据的 Heltec 模块可以接收这些数据。您可以通过将接收器移动得更远来测试范围,以确认达到的最大距离(视频中在 1:30)。

注意常见的陷阱,例如接线不正确、电源供应不足或使用错误的LoRa频率。确保DHT22正常工作,并且天线已连接,以最大化范围。

视频时间戳

  • 00:00 开始
  • 3:51 规格
  • 8:32 文档页面
  • 9:52 包装和电池
  • 12:58 第一次启动
  • 16:37 正在安装库
  • 18:19 发射器基本代码
  • 19:43 接收器基本代码
  • 20:39 演示发送接收文本
  • 23:02 OLED 演示代码
  • 24:06 OLED显示代码的基础文本
  • 26:26 OLED演示的基础文本
  • 26:58 使用DHT22读取温度
  • 28:49 LoRa发射器温度和显示
  • 30:07 LoRa接收器温度和显示
  • 32:13 温度升高时触发LED
  • 22:26 LoRa传输范围测试
  • 35:01 dBm 和毫瓦

图像

Heltec_WiFi_loRa_32V3_DHT22_wiring
Heltec_WiFi_loRa_32V3_DHT22_wiring
Wifi LoRa 32 V3 inside Meshnology N30 as transmitter of Temperature
Wifi LoRa 32 V3 inside Meshnology N30 as transmitter of Temperature
meshnology-N30-LoRa-v3-red-black
meshnology-N30-LoRa-v3-red-black
Wifi LoRa 32 V3 inside Meshnology N30 RX and TX
Wifi LoRa 32 V3 inside Meshnology N30 RX and TX
563-Printing Simple Text on the screen of WiFi LoRa 32 V3
语言: C++
This code has not been parsed yet. Please return to the admin panel to parse it.
773-Transmitter Code for Heltec WiFi LoRa 32 V3 to send temperature using DHT11, DHT22
语言: C++
This code has not been parsed yet. Please return to the admin panel to parse it.
867-Receiver Code for Heltec WiFi LoRa 32 to receive and display Temperature
语言: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Common Course Files

文件📁

其他文件