From 7d44d7265358c6f761d89ef1b4cbd4673c156d46 Mon Sep 17 00:00:00 2001 From: Natsume1710 <162396185+Natsume1710@users.noreply.github.com> Date: Mon, 16 Jun 2025 13:59:02 +0800 Subject: [PATCH] Add files via upload --- 06-NetworkIot/06_Network_IoT.md | 119 ++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 06-NetworkIot/06_Network_IoT.md diff --git a/06-NetworkIot/06_Network_IoT.md b/06-NetworkIot/06_Network_IoT.md new file mode 100644 index 0000000..254ae04 --- /dev/null +++ b/06-NetworkIot/06_Network_IoT.md @@ -0,0 +1,119 @@ + +# 🟣 第六层:网络通信与物联网协议(Network & IoT) + +本模块聚焦于嵌入式系统中的通信机制和物联网协议栈,涵盖串口通信、无线模块、MQTT 等协议到云平台对接,适用于 IoT 产品开发全流程。 + +--- + +## 🔹 串口通信与 Socket 通信 + +### ✅ 串口通信(UART / USART) +- 串口基础:波特率、校验位、停止位、数据位 +- 应用:模块通信、调试信息输出 +- 中断方式与 DMA 模式接收 +```c +// 基本 UART 初始化 +USART1->BRR = 0x1A1; // 设置波特率 +USART1->CR1 |= USART_CR1_TE | USART_CR1_RE | USART_CR1_UE; // 使能收发 +``` + +### ✅ Socket 网络通信 +- Socket 基础:TCP/UDP 区别、连接建立过程 +- 在 ESP32 等模块中使用 LWIP 实现 TCP 客户端/服务器 +```c +// TCP 客户端基础逻辑 (伪代码) +socket(); +connect(); +send(); +recv(); +``` + +--- + +## 🔹 无线通信协议 + +### ✅ Wi-Fi +- ESP32 支持 STA / AP 模式,常用于联网或热点传输 +- SmartConfig、ESP-NOW、HTTP Server 应用 + +### ✅ BLE(蓝牙低功耗) +- GATT 协议模型:服务、特征值、通知机制 +- 使用 nRF52、ESP32 等平台进行广播、连接和数据交互 + +### ✅ LoRa / ZigBee +- 长距离通信:适用于室外传感器 +- 使用 Semtech SX1278 / ZigBee 模块通信帧格式解析 + +--- + +## 🔹 物联网协议栈 + +### ✅ MQTT +- 轻量级发布-订阅协议,常用于设备与云平台交互 +- QoS 等级、主题结构、客户端连接 +- 常见平台支持:EMQX、OneNet、阿里云 IoT + +### ✅ HTTP / HTTPS +- 常用于配置、RESTful 通信 +- ESP32、STM32 上使用 HTTP Client 实现 OTA 下载等 + +### ✅ CoAP / LwM2M +- 适合低功耗终端的简化协议,UDP 传输,可压缩 +- 用于 NB-IoT、LwIP 等网络栈中 + +--- + +## 🔹 云平台接入 & OTA 实现 + +### ✅ 云平台对接 +- 主流平台:阿里云 IoT、腾讯连连、OneNet、ThingsBoard +- 认证方式:三元组 / MQTT 密钥 / TLS 证书 + +### ✅ OTA 升级机制 +- 本地或远程固件更新,防止刷写失败 +- 双分区设计(bootA / bootB) +- 签名验证与版本控制 + +```c +// OTA 示例流程 +1. 下载固件至指定 Flash 区域 +2. 校验 MD5 / 签名 +3. 更新启动地址 / 重启 +``` + +--- + +## 📁 文件结构建议 + +``` +06_Network_IoT/ +├── 01_Serial_Networking/ # 串口与 Socket 基础 +├── 02_BLE_WiFi_LoRa/ # 无线通信协议实现 +├── 03_MQTT_HTTP_CoAP/ # IoT 协议栈示例 +├── 04_Cloud_OTA/ # 云平台对接与 OTA 实现 +├── examples/ # 示例代码 +└── README.md # 模块说明文档 +``` + +--- + +## ✅ 推荐学习顺序 + +1. 学习 UART 通信与基本网络 socket 原理 +2. 掌握 Wi-Fi / BLE 开发流程(推荐 ESP32/nRF52) +3. 理解 MQTT 协议与平台接入逻辑 +4. 实践 OTA 升级流程,构建远程维护能力 + +--- + +## 📌 常见问题 FAQ + +| 问题 | 解答 | +|------|------| +| MQTT 断线如何重连? | 设置心跳机制与 reconnect 回调逻辑 | +| OTA 更新失败怎么办? | 回退机制 + 双镜像分区设计 | +| CoAP 和 MQTT 有何区别? | CoAP 基于 UDP,适合低功耗设备;MQTT 基于 TCP,稳定性好 | + +--- + +本章节为嵌入式通信开发的重要组成部分,推荐结合实际模块进行测试练习。