Update README.md

This commit is contained in:
Natsume1710
2025-06-28 14:56:10 +08:00
committed by GitHub
parent b0b5c9592a
commit 218bff6978
+55 -9
View File
@@ -109,17 +109,63 @@ Socket 通信是构建大多数网络应用(如网页浏览、文件传输、
## 无线通信协议
### Wi-Fi
- ESP32 支持 STA / AP 模式,常用于联网或热点传输
- SmartConfig、ESP-NOW、HTTP Server 应用
### 1. Wi-Fi
**Wi-Fi** 是一种基于 IEEE 802.11 标准的无线局域网技术,广泛应用于家庭、办公室和公共场所,为设备提供高速、可靠的无线网络连接。在嵌入式领域,Wi-Fi 模块使得设备能够直接连接互联网或作为局部热点。
### BLE(蓝牙低功耗)
- GATT 协议模型:服务、特征值、通知机制
- 使用 nRF52、ESP32 等平台进行广播、连接和数据交互
#### **ESP32 支持 STA / AP 模式,常用于联网或热点传输**
### LoRa / ZigBee
- 长距离通信:适用于室外传感器
- 使用 Semtech SX1278 / ZigBee 模块通信帧格式解析
* **STA (Station) 模式:** 在这种模式下,ESP32 模块就像我们家里的手机或电脑一样,作为一个**客户端**连接到现有的 Wi-Fi 路由器(AP,Access Point),从而接入互联网。这让嵌入式设备能够上传数据到云端、接收远程指令,实现物联网功能。
* **AP (Access Point) 模式:** 在这种模式下,ESP32 模块会**创建自己的 Wi-Fi 网络**,充当一个**热点**。其他设备(如手机、电脑)可以连接到这个热点,与 ESP32 进行点对点通信。这常用于设备配网(让手机连接 ESP32 设置其连接家里的 Wi-Fi)、设备调试、或者构建一个不依赖外部路由器的本地控制网络。
* **STA + AP 共存模式:** ESP32 还可以同时运行 STA 和 AP 模式。例如,它既可以连接到家里的路由器联网,同时又提供一个临时的热点供手机连接进行本地控制。
#### **Wi-Fi 应用场景**
* **SmartConfig:** 这是一种**智能配网技术**,允许用户通过手机 App 快速配置 ESP32 连接到家里的 Wi-Fi 网络,而无需在设备上输入复杂的 Wi-Fi 密码。手机 App 将 Wi-Fi 凭证通过特定方式(如广播或多播)发送,ESP32 侦听到并解析这些凭证完成配网。
* **ESP-NOW:** 这是乐鑫(Espressif)推出的一种**无连接**的 Wi-Fi 通信协议。它允许 ESP32 设备在**没有路由器的情况下**,直接与其他 ESP32 设备进行短距离、快速、低功耗的数据交换。非常适合需要设备间直接通信,且对网络基础设施依赖度低的场景,如智能家居中的灯控、传感器网络等。
* **HTTP Server 应用:** ESP32 可以搭建一个**轻量级的 HTTP 服务器**。当 ESP32 处于 AP 模式时,其他设备连接到它,就可以通过浏览器访问 ESP32 提供的网页界面,进行设备配置、状态监控或远程控制。当 ESP32 处于 STA 模式时,也可以作为 HTTP 客户端与远程服务器进行数据交互(如上传传感器数据到服务器,或从服务器获取控制指令)。
### 2. BLE(蓝牙低功耗)
**BLE (Bluetooth Low Energy)** 是蓝牙技术联盟在蓝牙 4.0 版本中推出的一种**超低功耗无线技术**。它专为物联网设备设计,特点是功耗极低、成本低廉,适用于电池供电、数据传输量小且不频繁的场景。
#### **GATT 协议模型:服务、特征值、通知机制**
BLE 的核心是 **GATT (Generic Attribute Profile) 协议**,它定义了数据组织和交互的方式:
* **Service (服务):** 服务是**相关数据的集合**。例如,一个心率监测器可能提供一个“心率服务”,一个温度传感器可能提供一个“环境传感服务”。每个服务都有一个唯一的 **UUID (Universally Unique Identifier)**。
* **Characteristic (特征值):** 特征值是**服务中的具体数据项**。它是设备可读写的最小数据单元。例如,在“心率服务”中,可能有一个“心率测量值”的特征值;在“环境传感服务”中,可能有一个“温度”特征值。每个特征值也拥有唯一的 UUID。特征值有不同的属性,如可读 (Read)、可写 (Write)、可通知 (Notify) 等。
* **Descriptor (描述符):** 描述符是对特征值的进一步描述,例如单位、范围等。
* **通知机制 (Notification):** 订阅方(通常是手机或网关)可以订阅特征值。当设备端(如传感器)的某个特征值发生变化时,它会自动将最新的值**推送**给所有订阅了该特征值的客户端,而无需客户端主动轮询。这大大降低了功耗。
#### **使用 nRF52、ESP32 等平台进行广播、连接和数据交互**
* **广播 (Advertising):** BLE 设备可以通过广播发送少量数据包,而无需建立连接。这常用于设备发现、发送传感器快照数据、或作为信标(Beacon)。
* **连接 (Connection):** 当需要进行更频繁或双向的数据交换时,BLE 设备会建立一个连接。一个设备作为**主机 (Master)**,另一个作为**从机 (Slave)**。连接建立后,双方可以根据 GATT 协议模型进行数据交互。
* **数据交互:** 通过读写特征值,或者通过订阅通知/指示 (Indication) 来实现数据的双向传输。例如,手机 App 读取温度传感器的温度特征值,或者订阅其温度变化的通知。
* **平台选择:**
* **Nordic nRF52 系列:** 在低功耗 BLE 领域非常流行,功耗表现和 RF 性能优异,SDK 和开发工具链成熟。
* **ESP32 系列:** 除了 Wi-Fi,ESP32 也集成了强大的 BLE 功能,可以同时支持 Wi-Fi 和 BLE,在物联网应用中具有成本和集成度优势。
### 3. LoRa / ZigBee
这两种协议都属于低功耗广域网(LPWAN)或低功耗短距离无线网络,主要用于传感器网络和远程数据采集。
#### **LoRa (Long Range) - 长距离通信:适用于室外传感器**
* **特点:** LoRa 是一种**物理层**的调制技术,它允许数据在极低的功耗下实现**超长距离(数公里到数十公里)**的传输,通常用于室外环境。LoRaWAN 是基于 LoRa 物理层之上的一套完整网络协议,定义了设备、网关和网络服务器之间的通信规则。
* **优势:** 功耗极低、传输距离远、抗干扰能力强。
* **劣势:** 传输速率低,不适合传输大量数据。
* **应用:** 智慧农业(土壤温湿度监测)、智慧城市(停车位监测、垃圾桶液位监测)、工业监测(偏远区域设备状态监控)等。
* **使用 Semtech SX1278 / LoRa 模块通信:** Semtech 是 LoRa 技术的核心提供商,其 SX127x 系列芯片是 LoRa 模块中常用的收发器。在嵌入式开发中,通常使用集成这些芯片的 LoRa 模块(如基于 SX1278 的模块)通过 SPI 或 UART 接口与主控器(如 STM32、ESP32)通信,进行数据的发送和接收。需要关注 LoRaWAN 协议栈的实现。
#### **ZigBee - 短距离、低功耗、网状网络:适用于室内传感器**
* **特点:** ZigBee 是一种基于 IEEE 802.15.4 标准的**低功耗、短距离、自组织、网状网络**协议。它适合在室内或有限区域内构建大量的节点网络。
* **优势:**
* **自组织、自愈合的网状网络:** 节点之间可以相互转发数据,扩大通信范围,即使部分节点故障,网络也能自我修复。
* **超低功耗:** 适合电池供电的传感器,电池寿命可达数年。
* **设备容量大:** 一个 ZigBee 网络可以支持大量的设备。
* **劣势:** 传输距离相对有限(几十到几百米)、传输速率低。
* **应用:** 智能家居(灯控、门锁、窗帘)、工业无线传感器网络、医疗监测等。
* **使用 ZigBee 模块通信:** 通常使用集成了 ZigBee 协议栈的模块(如 TI 的 CC2530 系列、NXP 的 JN5169 系列)。这些模块通常通过串口(UART)与主控器通信。开发者需要了解 ZigBee 网络的**组网方式(协调器、路由器、终端设备)、地址分配、数据传输(点对点、广播)和通信帧格式解析**等。例如,发送或接收一个数据帧时,需要构建或解析其头部信息(目标地址、源地址、命令类型等)和有效载荷。
---