ESP32-C3物聯(lián)網(wǎng)工程開發(fā)實(shí)戰(zhàn)
定 價(jià):98 元
- 作者:樂鑫科技
- 出版時(shí)間:2022/9/1
- ISBN:9787121442971
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP393.4;TP18
- 頁(yè)碼:388
- 紙張:
- 版次:01
- 開本:16開
ESP32-C3是搭載了開源指令集RISC-V的32位低功耗、低成本、安全的物聯(lián)網(wǎng)芯片,本書也是該芯片原廠樂鑫科技的官方作品。本書從物聯(lián)網(wǎng)工程開發(fā)的必備知識(shí)入手,循序漸進(jìn)地介紹了硬件設(shè)計(jì)、外設(shè)驅(qū)動(dòng)、ESP-IDF開發(fā)環(huán)境搭建、Wi-Fi網(wǎng)絡(luò)配置、本地和云端控制、OTA升級(jí)原理、電源管理、低功耗優(yōu)化、設(shè)備安全功能、固件版本管理和量產(chǎn)測(cè)試等方面的內(nèi)容。物聯(lián)網(wǎng)工程開發(fā)涉及的知識(shí)點(diǎn)很多,本書根據(jù)所涉及的知識(shí)點(diǎn)將全書分為4篇,分別是準(zhǔn)備篇(第1~4章)、硬件與驅(qū)動(dòng)開發(fā)篇(第5~6章)、無(wú)線通信與控制篇(第7~11章)、優(yōu)化與量產(chǎn)篇(第12~15章),可幫助讀者更好地掌握相關(guān)的知識(shí)點(diǎn)。
樂鑫科技是一家全球化的無(wú)晶圓廠半導(dǎo)體公司,成立于 2008 年,在中國(guó)、捷克、印度、新加坡和巴西均設(shè)有辦公地,團(tuán)隊(duì)來(lái)自約 30 個(gè)國(guó)家和地區(qū)。樂鑫多年來(lái)深耕 AIoT 領(lǐng)域軟硬件產(chǎn)品的研發(fā)與設(shè)計(jì),專注于研發(fā)高集成、低功耗、性能卓越、安全穩(wěn)定、高性價(jià)比的無(wú)線通信 SoC,現(xiàn)已發(fā)布 ESP8266、ESP32、ESP32-S、ESP32-C 和 ESP32-H 系列芯片、模組和開發(fā)板,成為物聯(lián)網(wǎng)應(yīng)用的理想選擇。我們致力于提供安全、穩(wěn)定、節(jié)能的 AIoT 解決方案。同時(shí),我們堅(jiān)持技術(shù)開源,助力開發(fā)者們用樂鑫的方案開發(fā)智能產(chǎn)品,打造萬(wàn)物互聯(lián)的智能世界。
目 錄
第1篇 準(zhǔn)備篇
第1章 淺談物聯(lián)網(wǎng) 2
1.1 物聯(lián)網(wǎng)的體系結(jié)構(gòu) 2
1.2 物聯(lián)網(wǎng)應(yīng)用之智能家居 4
第2章 物聯(lián)網(wǎng)工程項(xiàng)目的介紹和實(shí)戰(zhàn) 6
2.1 典型的物聯(lián)網(wǎng)工程項(xiàng)目介紹 6
2.1.1 常見物聯(lián)網(wǎng)設(shè)備的基本模塊 6
2.1.2 用戶端應(yīng)用程序基本模塊 7
2.1.3 常見的物聯(lián)網(wǎng)云平臺(tái)簡(jiǎn)介 7
2.2 實(shí)戰(zhàn):智能照明工程 8
2.2.1 工程框架 9
2.2.2 工程功能 9
2.2.3 硬件準(zhǔn)備 10
2.2.4 開發(fā)步驟 11
2.3 本章總結(jié) 11
第3章 ESP RainMaker介紹 12
3.1 什么是ESP RainMaker 12
3.2 ESP RainMaker的實(shí)現(xiàn)原理 13
3.2.1 Claiming服務(wù) 14
3.2.2 RainMaker設(shè)備側(cè)代理程序 15
3.2.3 云后端 16
3.2.4 客戶端 16
3.3 實(shí)戰(zhàn):ESP RainMaker開發(fā)要點(diǎn) 18
3.4 ESP RainMaker功能摘要 19
3.4.1 賬戶管理功能 19
3.4.2 對(duì)終端用戶開放的功能 19
3.4.3 對(duì)管理員用戶開放的功能 20
3.5 本章總結(jié) 20
第4章 開發(fā)環(huán)境的搭建與詳解 21
4.1 ESP-IDF概述 21
4.1.1 ESP-IDF版本介紹 21
4.1.2 ESP-IDF Git工作流程 22
4.1.3 選擇一個(gè)合適的版本 23
4.1.4 ESP-IDF SDK目錄總覽 23
4.2 ESP-IDF開發(fā)環(huán)境安裝詳解 26
4.2.1 在Linux系統(tǒng)下安裝ESP-IDF開發(fā)環(huán)境 27
4.2.2 在Windows系統(tǒng)下安裝ESP-IDF開發(fā)環(huán)境 29
4.2.3 在Mac系統(tǒng)下安裝ESP-IDF開發(fā)環(huán)境 34
4.2.4 VS Code代碼編輯工具的安裝 35
4.2.5 第三方開發(fā)環(huán)境簡(jiǎn)介 35
4.3 ESP-IDF編譯系統(tǒng)詳解 36
4.3.1 編譯系統(tǒng)基本概念 36
4.3.2 工程文件結(jié)構(gòu) 36
4.3.3 編譯系統(tǒng)默認(rèn)的構(gòu)建規(guī)范 38
4.3.4 編譯腳本詳解 38
4.3.5 常用命令詳解 39
4.4 實(shí)戰(zhàn):Blink示例程序編譯 40
4.4.1 Blink示例程序分析 40
4.4.2 Blink示例程序的編譯過程 42
4.4.3 Blink示例程序的燒錄過程 46
4.4.4 Blink示例程序的串口Log分析 46
4.5 本章總結(jié) 49
第2篇 硬件與驅(qū)動(dòng)開發(fā)篇
第5章 ESP32-C3的智能照明產(chǎn)品的硬件設(shè)計(jì) 52
5.1 智能照明產(chǎn)品的功能及組成 52
5.2 ESP32-C3最小硬件系統(tǒng)設(shè)計(jì) 55
5.2.1 電源 58
5.2.2 上電時(shí)序與復(fù)位 58
5.2.3 SPI Flash 59
5.2.4 時(shí)鐘源 59
5.2.5 射頻及天線 60
5.2.6 Strapping引腳 62
5.2.7 GPIO和PWM功能 62
5.3 實(shí)戰(zhàn):使用ESP32-C3構(gòu)建智能照明系統(tǒng) 63
5.3.1 模組選用 63
5.3.2 PWM信號(hào)的GPIO配置 63
5.3.3 固件燒錄和調(diào)試接口 65
5.3.4 射頻設(shè)計(jì)要求 67
5.3.5 供電電源設(shè)計(jì)要求 68
5.4 本章總結(jié) 68
第6章 驅(qū)動(dòng)開發(fā) 70
6.1 驅(qū)動(dòng)開發(fā)過程 70
6.2 ESP32-C3外設(shè)應(yīng)用 71
6.3 LED驅(qū)動(dòng)基礎(chǔ) 72
6.3.1 色彩空間 72
6.3.2 LED驅(qū)動(dòng)器 76
6.3.3 LED調(diào)光 76
6.3.4 PWM介紹 77
6.4 LED調(diào)光驅(qū)動(dòng)開發(fā) 78
6.4.1 非易失性存儲(chǔ) 78
6.4.2 LED PWM控制器 79
6.4.3 LED PWM編程 81
6.5 實(shí)戰(zhàn):智能照明工程中的驅(qū)動(dòng)開發(fā) 84
6.5.1 按鍵驅(qū)動(dòng) 84
6.5.2 LED調(diào)光驅(qū)動(dòng) 85
6.6 本章總結(jié) 89
第3篇 無(wú)線通信與控制篇
第7章 Wi-Fi網(wǎng)絡(luò)配置和連接 92
7.1 Wi-Fi基礎(chǔ)知識(shí) 92
7.1.1 什么是Wi-Fi 92
7.1.2 IEEE 802.11的發(fā)展歷程 92
7.1.3 Wi-Fi相關(guān)術(shù)語(yǔ) 93
7.1.4 Wi-Fi連接的過程 95
7.2 藍(lán)牙基礎(chǔ)知識(shí) 102
7.2.1 什么是藍(lán)牙 102
7.2.2 藍(lán)牙相關(guān)術(shù)語(yǔ) 103
7.2.3 藍(lán)牙連接的過程 105
7.3 Wi-Fi配網(wǎng) 108
7.3.1 Wi-Fi配網(wǎng)導(dǎo)讀 109
7.3.2 SoftAP配網(wǎng) 109
7.3.3 一鍵配網(wǎng) 111
7.3.4 藍(lán)牙配網(wǎng) 112
7.3.5 其他配網(wǎng)方式 114
7.4 Wi-Fi編程 116
7.4.1 ESP-IDF中的Wi-Fi組件 116
7.4.2 牛刀小試:Wi-Fi連接初體驗(yàn) 117
7.4.3 大顯身手:Wi-Fi連接智能化 121
7.5 實(shí)戰(zhàn):智能照明工程中實(shí)現(xiàn)Wi-Fi配置 131
7.5.1 智能照明工程Wi-Fi連接實(shí)例 132
7.5.2 Wi-Fi智能化配置實(shí)例 133
7.6 本章總結(jié) 134
第8章 設(shè)備的本地控制 135
8.1 本地控制的介紹 135
8.1.1 本地控制的使用條件 136
8.1.2 本地控制的適用場(chǎng)景 137
8.1.3 本地控制的優(yōu)勢(shì) 137
8.1.4 通過智能手機(jī)發(fā)現(xiàn)被控設(shè)備 137
8.1.5 智能手機(jī)與被控設(shè)備的數(shù)據(jù)通信 138
8.2 常見的本地發(fā)現(xiàn)方法 138
8.2.1 廣播 139
8.2.2 組播 144
8.2.3 廣播與組播對(duì)比 150
8.2.4 本地發(fā)現(xiàn)之組播應(yīng)用協(xié)議mDNS 150
8.3 常見的本地?cái)?shù)據(jù)通信協(xié)議 153
8.3.1 TCP協(xié)議 153
8.3.2 HTTP協(xié)議 158
8.3.3 UDP協(xié)議 162
8.3.4 CoAP協(xié)議 165
8.3.5 藍(lán)牙通信協(xié)議 170
8.3.6 數(shù)據(jù)通信協(xié)議總結(jié) 175
8.4 數(shù)據(jù)安全性的保證 176
8.4.1 TLS協(xié)議介紹 178
8.4.2 DTLS協(xié)議介紹 183
8.5 實(shí)戰(zhàn):基于ESP-IDF組件快速實(shí)現(xiàn)智能燈本地控制模塊 186
8.5.1 創(chuàng)建基于Wi-Fi的本地控制服務(wù)器端 186
8.5.2 使用腳本驗(yàn)證本地控制功能 190
8.5.3 創(chuàng)建基于藍(lán)牙的本地控制服務(wù)器端 191
8.6 本章總結(jié) 193
第9章 設(shè)備的云端控制 194
9.1 遠(yuǎn)程控制的介紹 194
9.2 常見的云端數(shù)據(jù)通信協(xié)議 195
9.2.1 MQTT協(xié)議介紹 195
9.2.2 MQTT協(xié)議原理 195
9.2.3 MQTT消息格式 197
9.2.4 協(xié)議對(duì)比 200
9.2.5 基于Windows或Linux搭建MQTT Broker 201
9.2.6 基于ESP-IDF創(chuàng)建MQTT客戶端 202
9.3 保證MQTT數(shù)據(jù)安全性 204
9.3.1 證書的含義與作用 205
9.3.2 本地生成證書 206
9.3.3 配置MQTT Broker 209
9.3.4 配置MQTT客戶端 209
9.4 實(shí)戰(zhàn):通過ESP RainMaker實(shí)現(xiàn)智能照明工程的遠(yuǎn)程控制 211
9.4.1 ESP RainMaker的基本概念 211
9.4.2 節(jié)點(diǎn)與云后端通信協(xié)議 212
9.4.3 客戶端與云后端通信方法 216
9.4.4 用戶體系 219
9.4.5 基礎(chǔ)服務(wù)介紹 220
9.4.6 智能燈示例 222
9.4.7 RainMaker App與第三方集成 228
9.5 本章總結(jié) 233
第10章 智能手機(jī)App開發(fā) 234
10.1 智能手機(jī)App開發(fā)技術(shù)介紹 234
10.1.1 智能手機(jī)App開發(fā)概述 234
10.1.2 Android項(xiàng)目的結(jié)構(gòu) 235
10.1.3 iOS項(xiàng)目的結(jié)構(gòu) 236
10.1.4 Android Activity的生命周期 237
10.1.5 iOS ViewController的生命周期 238
10.2 新建智能手機(jī)App項(xiàng)目 239
10.2.1 Android開發(fā)的準(zhǔn)備 239
10.2.2 新建Android項(xiàng)目 239
10.2.3 添加MyRainmaker項(xiàng)目所需的依賴 241
10.2.4 Android權(quán)限申請(qǐng) 241
10.2.5 iOS開發(fā)的準(zhǔn)備 242
10.2.6 新建iOS項(xiàng)目 242
10.2.7 添加RainMaker所需的依賴 243
10.2.8 iOS權(quán)限的申請(qǐng) 245
10.3 App功能需求分析 245
10.3.1 項(xiàng)目功能需求分析 245
10.3.2 用戶登錄注冊(cè)需求分析 245
10.3.3 設(shè)備配網(wǎng)和綁定需求分析 247
10.3.4 遠(yuǎn)程控制需求分析 248
10.3.5 定時(shí)需求分析 248
10.3.6 用戶中心需求分析 249
10.4 用戶登錄注冊(cè)功能的開發(fā) 249
10.4.1 RainMaker項(xiàng)目接口說明 250
10.4.2 智能手機(jī)如何發(fā)起通信請(qǐng)求 250
10.4.3 賬號(hào)注冊(cè) 250
10.4.4 賬號(hào)登錄 253
10.5 設(shè)備配網(wǎng)功能的開發(fā) 256
10.5.1 掃描設(shè)備 257
10.5.2 連接設(shè)備 258
10.5.3 生成私鑰 261
10.5.4 獲取設(shè)備的節(jié)點(diǎn)ID 261
10.5.5 設(shè)備配網(wǎng) 264
10.6 設(shè)備控制功能的開發(fā) 266
10.6.1 云端綁定賬號(hào)與設(shè)備 266
10.6.2 獲取用戶的所有設(shè)備 268
10.6.3 獲取設(shè)備當(dāng)前狀態(tài) 271
10.6.4 修改設(shè)備狀態(tài) 273
10.7 定時(shí)功能和用戶中心功能的開發(fā) 275
10.7.1 實(shí)現(xiàn)定時(shí)功能 275
10.7.2 實(shí)現(xiàn)用戶中心功能 278
10.7.3 更多云端接口 280
10.8 本章總結(jié) 282
第11章 固件更新與版本管理 283
11.1 固件更新 283
11.1.1 分區(qū)表概述 284
11.1.2 固件啟動(dòng)流程 285
11.1.3 OTA升級(jí)原理概述 287
11.2 固件版本管理 290
11.2.1 固件標(biāo)記 290
11.2.2 回滾與防回滾功能 291
11.3 實(shí)戰(zhàn):OTA升級(jí)使用示例 292
11.3.1 利用本地主機(jī)完成固件更新 292
11.3.2 利用ESP RainMaker完成固件更新 295
11.4 本章總結(jié) 302
第4篇 優(yōu)化與量產(chǎn)篇
第12章 電源管理和低功耗優(yōu)化 304
12.1 ESP32-C3電源管理 304
12.1.1 動(dòng)態(tài)調(diào)頻 305
12.1.2 電源管理配置 306
12.2 ESP32-C3低功耗模式 306
12.2.1 Modem-sleep模式 307
12.2.2 Light-sleep模式 309
12.2.3 Deep-sleep模式 314
12.2.4 不同功耗模式下的功耗 315
12.3 電源管理和低功耗調(diào)試 316
12.3.1 日志調(diào)試 316
12.3.2 GPIO調(diào)試 318
12.4 實(shí)戰(zhàn):在智能照明工程中添加電源管理 319
12.4.1 配置電源管理功能 320
12.4.2 使用電源管理鎖 321
12.4.3 驗(yàn)證功耗表現(xiàn) 322
12.5 本章總結(jié) 322
第13章 增強(qiáng)設(shè)備的安全功能 323
13.1 物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)安全概述 323
13.1.1 為什么要保護(hù)物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)的安全 324
13.1.2 保護(hù)物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)安全的基本要求 325
13.2 數(shù)據(jù)完整性保護(hù) 325
13.2.1 完整性校驗(yàn)方法簡(jiǎn)介 325
13.2.2 固件數(shù)據(jù)的完整性校驗(yàn) 326
13.2.3 示例 327
13.3 數(shù)據(jù)機(jī)密性保護(hù) 327
13.3.1 數(shù)據(jù)加密簡(jiǎn)介 327
13.3.2 Flash加密方案概述 329
13.3.3 存儲(chǔ)Flash加密方案的密鑰 331
13.3.4 Flash加密的工作模式 332
13.3.5 Flash加密的一般工作流程 333
13.3.6 NVS加密方案簡(jiǎn)介 334
13.3.7 Flash加密方案和NVS加密方案的示例 335
13.4 數(shù)據(jù)合法性的保護(hù) 338
13.4.1 數(shù)字簽名簡(jiǎn)介 338
13.4.2 Secure Boot方案概述 339
13.4.3 軟Secure Boot介紹 339
13.4.4 硬Secure Boot介紹 341
13.4.5 示例 344
13.5 實(shí)戰(zhàn):在量產(chǎn)中批量使用安全功能 346
13.5.1 Flash加密方案與Secure Boot方案的關(guān)系 346
13.5.2 使用量產(chǎn)工具批量使用Flash加密方案與Secure Boot方案 347
13.5.3 在智能照明系統(tǒng)中使用Flash加密方案與Secure Boot方案 348
13.6 本章總結(jié) 348
第14章 量產(chǎn)的固件燒錄和測(cè)試 349
14.1 量產(chǎn)固件燒錄 349
14.1.1 定義數(shù)據(jù)區(qū) 349
14.1.2 固件燒錄 351
14.2 量產(chǎn)測(cè)試 352
14.3 實(shí)戰(zhàn):智能照明工程中的量產(chǎn)數(shù)據(jù) 353
14.4 本章總結(jié) 354
第15章 ESP Insights遠(yuǎn)程監(jiān)察平臺(tái) 355
15.1 ESP Insights組件的簡(jiǎn)介 355
15.2 ESP Insights組件的使用 358
15.2.1 在esp-insights工程中使用ESP Insights組件 358
15.2.2 在esp-insights工程中運(yùn)行示例diagnostics_smoke_test 360
15.2.3 上報(bào)Coredump信息 361
15.2.4 定制感興趣的日志 361
15.2.5 上報(bào)設(shè)備重啟原因 362
15.2.6 上報(bào)自定義的指標(biāo)值 362
15.3 實(shí)戰(zhàn):基于智能燈示例使用ESP Insights組件 365
15.4 本章總結(jié) 366
參考文獻(xiàn) 367