找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1980

积分

0

好友

255

主题
发表于 12 小时前 | 查看: 0| 回复: 0

一. 硬件介绍

ESP32-C3FH4 是乐鑫科技推出的一款低功耗、高性能的 MCU 系统级芯片(SoC),集成了 Wi-Fi 和低功耗蓝牙功能,适用于物联网(IoT)应用,其主要特性如下:

  1. 处理器:采用单核 32 位 RISC-V 处理器,主频最高可达 160MHz,支持 8 位、16 位和 32 位指令集。
  2. 存储配置:内置 400KB SRAM 用于数据和指令存储,384KB ROM 用于启动和核心功能,4MB 嵌入式 Flash(FH4 即表示 4MB Flash),还有 8KB RTC SRAM 在低功耗模式下可用。
  3. 无线连接:Wi-Fi 方面,支持 IEEE 802.11 b/g/n(2.4GHz),数据速率最高 150Mbps,支持 Station、SoftAP 和 Station + SoftAP 模式,采用 1T1R(1 个发射,1 个接收)架构;蓝牙方面,支持 Bluetooth Low Energy(BLE)5.0,支持 BLE Mesh,数据速率最高 2Mbps。
  4. 安全性能:支持 AES、SHA、RSA 等多种加密算法,具备安全启动和 Flash 加密功能,可保障物联网设备的数据安全。
  5. 功耗表现:深度睡眠模式下电流仅 5μA,Wi-Fi 发射时电流约 300mA,Modem-sleep 模式下为 15mA(Wi-Fi 开启,CPU 运行),低功耗特性适合电池供电设备。
  6. 工作温度:工作温度范围为 -40°C 至 +125°C,能适应各种严苛环境。
  7. 封装形式:采用 QFN32(5×5mm)紧凑封装,节省电路板空间。
  8. 通信接口:具备丰富的接口,包括 GPIO、I2C、I2S、SPI、JTAG、UART、USB 等,可方便连接各种外设。
  9. 应用领域:广泛应用于智能家居、工业物联网、消费电子等领域,如智能照明控制系统、工业传感器数据采集、可穿戴设备等。

本模块正是使用 ESP32-C3FH4 芯片设计的支持 WiFi-蓝牙的多功能模块,其核心功能是将无线信号转为串口信号,方便连接到 MCU 或 FPGA 上使用。其电路原理图和 PCB 布局图如下所示:

ESP32-C3 模块电路原理图

ESP32-C3 模块 PCB 布局图

可以看到,模块尺寸小巧(12.3mm × 19.1mm),非常适合 SMT 集成到用户的自有设计中。除了使用预置的 AT 指令固件,也支持提供源码进行二次开发,以便添加自定义功能。

二. AT 指令使用

在使用 AT 指令前,请注意状态指示灯的反馈:所有 AT 命令发送执行成功后,状态指示灯会闪一下。发送或执行失败后,状态指示灯会闪 10 下。这为你快速判断指令执行情况提供了直观依据。

1. 连接 XBOX 蓝牙手柄

首先,你需要获取 Xbox 手柄的蓝牙地址。将手柄连接到电脑,然后在 Windows 的设备管理器中查看其蓝牙设备属性。

Windows设备管理器中查看XBOX手柄蓝牙地址

如图,手柄的蓝牙地址为 14cb65fcee25e。接着,通过串口依次发送以下三条 AT 指令:

  1. 设置手柄地址(注意格式):AT+XBOX_MAC=14:cb:65:fc:e2:5e
  2. 复位模块:AT+RESET=1
  3. 使能 XBOX 模式:AT+XBOX=ENABLE

将 XBOX 手柄切换到配对模式,模块会自动与其完成配对。配对成功后,模块会以固定频率通过串口输出 28 字节的手柄状态信息,格式为:XBOX: [28字节数据] OVER!

数据解析顺序如下(每个按键/摇杆对应1字节,除非另有说明):

  • btnY, btnX, btnB, btnA
  • btnLB, btnRB, btnSelect, btnStart
  • btnXbox, btnShare, btnLS, btnRS
  • btnDirUp, btnDirRight, btnDirDown, btnDirLeft
  • joyLHori (2字节), joyLVert (2字节)
  • joyRHori (2字节), joyRVert (2字节)
  • trigLTt (2字节), trigRTt (2字节)

2. 连接热点(STA 模式)

首先,需要将模块的 WiFi 模式设置为 STA(站点)模式。通过串口发送指令:AT+MODE=STA。模块会回显指令并反馈设置结果。

设置WiFi为STA模式

模式设置成功后,就可以连接目标 WiFi 热点了。使用命令 AT+CWJAP=WiFi名称,WiFi密码。连接成功后会反馈模块获取到的 IP 地址。

连接指定WiFi热点

3. 作为热点(AP 模式)

你也可以让模块自己创建一个 WiFi 热点。首先设置模式为 AP:AT+MODE=AP

然后,设置热点的名称和密码:AT+FSTA=热点名称,连接密码。开启成功后,模块会反馈其作为热点的 IP 地址(通常是 192.168.4.1)。

设置模块为AP热点

设置完成后,用电脑或手机就能搜索并连接到这个热点了。

电脑扫描到模块创建的WiFi热点

4. UDP 通信

在模块成功连接 WiFi(STA 模式)或开启热点(AP 模式)后,即可进行网络通信。首先开启 UDP 服务,指令为 AT+UDP=端口号,例如 AT+UDP=8888。开启成功后,模块会进入数据透传模式,并反馈其 IP 地址。

开启UDP服务

在电脑上打开网络调试助手(如 ZLAN 调试工具),工作模式选择 UDP,填写模块的 IP 地址和刚才设置的端口号。

网络调试助手设置UDP连接

设置完成后,即可进行双向透传测试:从网络助手发送的数据会通过串口输出;从串口发送的数据也会通过网络 UDP 包发送出去。

UDP双向数据透传测试

5. 连接 TCP 服务器通信

模块可以作为 TCP 客户端,连接到指定的服务器。连接指令为 AT+TCPClient=服务器IP地址,服务器端口,例如 AT+TCPClient=192.168.1.179,8080

注意:执行此命令前,请确保目标 IP 和端口上的 TCP 服务器已开启,否则连接会失败。

连接TCP服务器指令

连接成功后,模块同样进入数据透传状态。此时,模块串口与 TCP 服务器之间的数据可以互相转发。

TCP客户端数据透传测试

6. 作为 TCP 服务器与客户端通信

模块也可以作为 TCP 服务器,等待其他客户端连接。设置指令为 AT+TCPServer=1。模块会返回其作为服务器的 IP 地址和监听的端口号。

设置模块为TCP服务器

随后,模块进入监听和透传状态。此时,可以用网络调试助手以 TCP 客户端模式连接模块的 IP 和端口,进行数据传输测试。

TCP服务器模式数据透传测试

7. BLE 蓝牙通信

除了 WiFi 和 XBOX 专用协议,模块也支持标准的 BLE 透传。首先通过指令设置蓝牙名称:AT+BLE=蓝牙名称,例如 AT+BLE=ESP32C3_BLE

设置BLE蓝牙名称

设置完成后,使用手机上的 BLE 调试 APP(如 LightBlue)即可搜索并连接到该蓝牙设备。

手机BLE调试APP连接模块

连接后,找到可读写的特征值(Characteristic),即可与模块进行数据透传。向特征值写入数据,数据会从模块串口输出;从串口输入数据,则可以在 APP 中读取到。

手机与模块通过BLE进行数据读写

串口接收到的BLE数据


总结

以上便是这款基于 ESP32-C3 的 WiFi-蓝牙模块的主要功能演示,涵盖了从游戏手柄控制、无线网络连接到多种协议的数据透传。其小巧的尺寸和丰富的接口,使其非常适用于四驱车、平衡车、远程控制器等需要无线通信的嵌入式项目。对于物联网开发者和硬件爱好者而言,这无疑是一个功能强大且易于集成的解决方案。

欢迎在 云栈社区 交流更多关于嵌入式开发和无线通信技术的实践心得。




上一篇:Linux用户态SPI通信详解:从spidev配置到硬件环回测试
下一篇:Tailwind CSS进阶指南:从新手到专业的5个高效实践
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-28 18:09 , Processed in 0.258678 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表