乐鑫自主研发的 ESP-TOUCH 协议采⽤的是 Smart Config(智能配置)技术,帮助用户将采用 ESP8266 和 ESP32 的设备(以下简称“设备”)连接至 Wi-Fi 网络。用户只需在⼿机上进行简单操作即可实现智能配置。

由于设备一开始尚未联网,ESP-TOUCH 应用无法直接向设备发送信息。通过 ESP-TOUCH 通信协议,具有 Wi-Fi 网络接入能力的设备(例如智能手机)可以向 Wi-Fi 接入点 (AP) 发送一系列 UDP 数据包,其中每一包的长度(即 Length 字段)都按照 ESP- TOUCH 通信协议进⾏编码,SSID 和密码就包含在 Length 字段中,随后设备便能够接收这些 UDP 数据包,并从中解析出所需的信息。
数据包结构如下表所示:
| 字段 | 长度(字节) | 描述 |
|---|---|---|
| DA | 6 | 目标 MAC 地址 |
| SA | 6 | 源 MAC 地址 |
| Length | 2 | 包含 SSID 和密钥 |
| LLC | 3 | 逻辑链路控制 |
| SNAP | 5 | 子网接入协议 |
| DATA | Variable | 载荷 |
| FCS | 4 | 帧校验序列 |
重要注意事项
ESP-TOUCH 的通信模型可以抽象为某种错误率的单向通道,但这种错误率又根据带宽的不同而有所不同。通常:
假设所需要传递信息的最大长度为 104 字节,在这种情况下,若不采用纠错算法,则难以保证在有限的传递次数内完成信息的发送。
为了解决这一问题,ESP-TOUCH 采用了累积纠错算法,以确保在有限的次数内完成信息发送。该算法的理论基础是:在多轮数据发送过程中,同一位数据出错的概率非常低。因此可以累积多轮数据传递结果进行分析,在某一轮中发生错误的数据位可能在其他轮中找到其对应的正确值,从而保证在有限的次数内完成信息的发送。
信息发送的成功率可以通过以下公式表示:
成功率 = [1 – (1 – P)k]l
其中:
典型场景分析:
以下表格显示了采用累积纠错算法时,信息发送的成功率和发送时间的不同情况。
表:20 MHz 带宽分析
| 轮次 | 时间(秒) – 104 字节 | 成功率 – 104 字节 | 时间(秒) – 72 字节 | 成功率 – 72 字节 |
|---|---|---|---|---|
| 1 | 4.68 | 0.0048 | 3.24 | 0.0249 |
| 2 | 9.36 | 0.771 | 6.48 | 0.835 |
| 3 | 14.04 | 0.987 | 9.72 | 0.991 |
| 4 | 18.72 | 0.9994 | 12.90 | 0.9996 |
| 5 | 23.40 | 0.99997 | 16.20 | 0.99998 |
| 6 | 28.08 | 0.999998 | 19.40 | 0.99999 |
表:40 MHz 带宽分析
| 轮次 | 时间(秒) – 104 字节 | 成功率 – 104 字节 | 时间(秒) – 72 字节 | 成功率 – 72 字节 |
|---|---|---|---|---|
| 1 | 4.68 | 3.84e-9 | 3.24 | 1.49e-6 |
| 2 | 9.36 | 0.0474 | 6.48 | 0.121 |
| 3 | 14.04 | 0.599 | 9.72 | 0.701 |
| 4 | 18.72 | 0.917 | 12.90 | 0.942 |
| 5 | 23.40 | 0.985 | 16.20 | 0.989 |
| 6 | 28.08 | 0.997 | 19.40 | 0.998 |
MQTT协议是一个应用层协议,他要求使用的传输层协议能提供有序的,可靠的双向字节流传输服务。
本节主要讲解FreeRTOS任务间如何使用消息队列和事件组进行通信。
本节主要讲解Task类,FreeRTOS多任务的使用。
本节主要讲解Timer类,FreeRTOS定时器的使用。
本节主要讲解舵机驱动类和用按键控制舵机。
本节主要讲解执行器件类型和用按键控制继电器。
本小节主要讲解红外接收和遥控器件,以及遥控操作LED。
本小节讲解模拟量传感器使用,旋转电位器,DHT11温湿度传感器和实现自定义传感器类。
本小节讲解Sensor类及派生类、数字量传感器使用和传感器的推荐交互流程。
本小节讲解ESP32内置触摸引脚的用法,
本小节主要介绍按键信号转换、Button类及派生类、和Button交互推荐流程。