155 lines
3.0 KiB
Markdown
155 lines
3.0 KiB
Markdown
|
|
# 433MHz模块使用指南
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
|
|||
|
|
本文档介绍如何使用ESP32上集成的RTM300-433M模块进行433MHz无线通信。该模块基于CMT2300A芯片,支持FSK调制,可用于各类433MHz无线设备的控制和数据接收。
|
|||
|
|
|
|||
|
|
## 硬件连接
|
|||
|
|
|
|||
|
|
RTM300-433M模块通过以下引脚连接到ESP32:
|
|||
|
|
|
|||
|
|
| 模块引脚 | ESP32引脚 | 功能描述 |
|
|||
|
|
|---------|----------|---------|
|
|||
|
|
| CSB | GPIO48 | 主片选(寄存器控制) |
|
|||
|
|
| FCSB | GPIO47 | FIFO片选(数据控制) |
|
|||
|
|
| SCLK | GPIO9 | SPI时钟线 |
|
|||
|
|
| SDIO | GPIO4 | SPI双向数据线 |
|
|||
|
|
| IO3 | GPIO37 | 接收中断引脚 |
|
|||
|
|
| IO1 | GPIO36 | 辅助状态引脚 |
|
|||
|
|
|
|||
|
|
## 功能特性
|
|||
|
|
|
|||
|
|
- 工作频率:433.92MHz
|
|||
|
|
- 调制方式:FSK
|
|||
|
|
- 数据速率:1.2Kbps
|
|||
|
|
- FIFO大小:32字节
|
|||
|
|
- 通信方式:HTTP API接口
|
|||
|
|
|
|||
|
|
## HTTP API接口
|
|||
|
|
|
|||
|
|
### 1. 获取模块状态
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
GET /api/rf433/status
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应示例:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"ready": true,
|
|||
|
|
"version": "1.0.0",
|
|||
|
|
"mode": "receive"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 发送数据
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
POST /api/rf433/send
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**请求体:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"data": "A55A01020304" // 十六进制字符串
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应示例:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"success": true,
|
|||
|
|
"length": 6,
|
|||
|
|
"message": "数据发送成功"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 设置接收模式
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
POST /api/rf433/receive
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**请求体:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"enable": true // true启用接收模式,false禁用
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应示例:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"success": true,
|
|||
|
|
"mode": "receive",
|
|||
|
|
"message": "接收模式已启用"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. 读取寄存器(调试用)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
GET /api/rf433/register?addr=0x00
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应示例:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"address": "0x00",
|
|||
|
|
"value": "0x05",
|
|||
|
|
"description": "控制寄存器"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 使用示例
|
|||
|
|
|
|||
|
|
### Python测试脚本
|
|||
|
|
|
|||
|
|
项目根目录下提供了`test_433mhz.py`脚本,用于测试433MHz模块的基本功能:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 使用默认IP地址(192.168.1.3)
|
|||
|
|
python test_433mhz.py
|
|||
|
|
|
|||
|
|
# 指定设备IP地址
|
|||
|
|
python test_433mhz.py --ip 192.168.1.100
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 发送自定义数据
|
|||
|
|
|
|||
|
|
可以使用任何HTTP客户端(如curl、Postman等)发送自定义数据:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST http://192.168.1.3/api/rf433/send \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d '{"data": "A55A01020304"}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 常见问题
|
|||
|
|
|
|||
|
|
1. **模块初始化失败**
|
|||
|
|
- 检查硬件连接是否正确
|
|||
|
|
- 确认ESP32固件已正确烧录
|
|||
|
|
- 重启设备尝试重新初始化
|
|||
|
|
|
|||
|
|
2. **发送数据失败**
|
|||
|
|
- 确认数据格式正确(十六进制字符串)
|
|||
|
|
- 数据长度不能超过32字节
|
|||
|
|
- 检查模块状态是否就绪
|
|||
|
|
|
|||
|
|
3. **无法接收数据**
|
|||
|
|
- 确认已启用接收模式
|
|||
|
|
- 检查发送设备是否工作在相同频率
|
|||
|
|
- 确认发送设备与接收设备距离适当
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. 433MHz模块初始化在单独的任务中进行,不会阻塞主系统运行
|
|||
|
|
2. 模块初始化有3秒超时保护,超时后系统会继续运行
|
|||
|
|
3. 中断处理已优化,不会导致串口监视器卡顿
|
|||
|
|
4. 使用433MHz功能时,请遵守当地无线电管理规定
|
|||
|
|
|
|||
|
|
## 技术支持
|
|||
|
|
|
|||
|
|
如有问题或需要技术支持,请联系项目维护人员。
|