【ESP32-315MHz】| 使用315Mhz接发模块实现无线射频通信

注意事项/前要

在本项目中,我们将使用乐鑫ESP32开发板和RCSwitch库来实现两个ESP32之间315MHz频段的无线通信。

一个ESP32将作为发送端,另一个ESP32将作为接收端。该项目演示了如何使用RCSwitch库进行简单的无线数据传输。

  • 两块乐鑫ESP32开发板
  • 315MHz无线发射模块
  • 315MHz无线接收模块
  • 若干连接线

315MHz模块与开发板接线

发送模块引脚

Arduino ESP32 引脚

DATA

GPIO 17

接收模块引脚

Arduino ESP32 引脚

DATA

GPIO 16

VCC

3.3V

GND

GND

完整代码-发送端

RCSwitch库:此库用于处理无线遥控信号的发送和接收,库文件可以在Arduino IDE的库管理器中直接下载。

通过串口输入数据,ESP32 会读取该数据并通过315MHz发射模块发送出去。

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();
const int TRANSMIT_PIN = 17; // 发送引脚定义

void setup() {
  Serial.begin(9600);
  mySwitch.enableTransmit(TRANSMIT_PIN); // 设置发送引脚
  Serial.println("羡林i: 315MHz发射模块初始化完成");
  Serial.println("羡林i: 请输入要发送的数据 (整数类型): ");
}

void loop() {
  if (Serial.available() > 0) {
    String input = Serial.readStringUntil('\n'); // 读取串口输入直到换行符
    unsigned long data = input.toInt(); // 将输入转换为整数
    mySwitch.send(data, 24); // 发送24位数据
    Serial.print("已发送数据 '");
    Serial.print(data);
    Serial.println("'");
    Serial.println("请输入要发送的数据 (整数类型): ");
  }
}

完整代码-接收端

RCSwitch库:此库用于处理无线遥控信号的发送和接收,库文件可以在Arduino IDE的库管理器中直接下载。

程序会持续接收射频信号,接收到不为0的数据则会打印到串口

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();
const int RECEIVE_PIN = 16; // 接收引脚定义

void setup() {
  Serial.begin(9600);
  mySwitch.enableReceive(RECEIVE_PIN); // 设置接收引脚
  Serial.println("羡林i: 315MHz接收模块初始化完成");
}

void loop() {
  if (mySwitch.available()) {
    int value = mySwitch.getReceivedValue();
    if (value == 0) {
      Serial.println("接收到无效数据");
    } else {
      Serial.print("接收到数据: ");
      Serial.println(value);
    }
    mySwitch.resetAvailable(); // 重置接收状态
  }
}

开发环境:Arduino IDE、ESP32 Dev Module

代码辅助:ChatGPT-4o

作者:羡林i

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值