ESP32-C3 物聯網工程開發實戰

樂鑫科技

  • 出版商: 電子工業
  • 出版日期: 2022-09-01
  • 售價: $588
  • 貴賓價: 9.5$559
  • 語言: 簡體中文
  • 頁數: 388
  • ISBN: 7121442973
  • ISBN-13: 9787121442971
  • 相關分類: ESP32物聯網 IoT
  • 立即出貨 (庫存=1)

買這商品的人也買了...

商品描述

ESP32-C3是搭載了開源指令集RISC-V的32位低功耗、低成本、安全的物聯網芯片,本書也是該芯片原廠樂鑫科技的官方作品。本書從物聯網工程開發的必備知識入手,循序漸進地介紹了硬件設計、外設驅動、ESP-IDF開發環境搭建、Wi-Fi網絡配置、本地和雲端控制、OTA升級原理、電源管理、低功耗優化、設備安全功能、固件版本管理和量產測試等方面的內容。物聯網工程開發涉及的知識點很多,本書根據所涉及的知識點將全書分為4篇,分別是準備篇(第1~4章)、硬件與驅動開發篇(第5~6章)、無線通信與控制篇(第7~11章)、優化與量產篇(第12~15章),可幫助讀者更好地掌握相關的知識點。

作者簡介

樂鑫科技是一家全球化的無晶圓廠半導體公司,成立於2008 年,在中國、捷克、印度、新加坡和巴西均設有辦公地,團隊來自約30 個國家和地區。樂鑫多年來深耕AIoT 領域軟硬件產品的研發與設計,專注於研發高集成、低功耗、性能卓越、安全穩定、高性價比的無線通信SoC,現已發布ESP8266、ESP32、ESP32-S、ESP32-C 和ESP32-H 系列芯片、模組和開發板,成為物聯網應用的理想選擇。我們致力於提供安全、穩定、節能的AIoT 解決方案。同時,我們堅持技術開源,助力開發者們用樂鑫的方案開發智能產品,打造萬物互聯的智能世界。

目錄大綱

第1篇準備篇
第1章淺談物聯網 2
1.1 物聯網的體系結構 2
1.2 物聯網應用之智能家居 4

第2章物聯網工程項目的介紹和實戰 6
2.1 典型的物聯網工程項目介紹 6
2.1.1 常見物聯網設備的基本模塊 6
2.1.2 用戶端應用程序基本模塊 7
2.1.3 常見的物聯網雲平台簡介 7
2.2 實戰:智能照明工程 8
2.2.1 工程框架 9
2.2.2 工程功能 9
2.2.3 硬件準備 10
2.2.4 開發步驟 11
2.3 本章總結 11

第3章ESP RainMaker介紹 12
3.1 什麼是ESP RainMaker 12
3.2 ESP RainMaker的實現原理 13
3.2.1 Claiming服務 14
3.2.2 RainMaker設備側代理程序 15
3.2.3 雲後端 16
3.2.4 客戶端 16
3.3 實戰:ESP RainMaker開發要點 18
3.4 ESP RainMaker功能摘要 19
3.4.1 賬戶管理功能 19
3.4.2 對終端用戶開放的功能 19
3.4.3 對管理員用戶開放的功能 20
3.5 本章總結 20

第4章開發環境的搭建與詳解 21
4.1 ESP-IDF概述 21
4.1.1 ESP-IDF版本介紹 21
4.1.2 ESP-IDF Git工作流程 22
4.1.3 選擇一個合適的版本 23
4.1.4 ESP-IDF SDK目錄總覽 23
4.2 ESP-IDF開發環境安裝詳解 26
4.2.1 在Linux系統下安裝ESP-IDF開發環境 27
4.2.2 在Windows系統下安裝ESP-IDF開發環境 29
4.2.3 在Mac系統下安裝ESP-IDF開發環境 34
4.2.4 VS Code代碼編輯工具的安裝 35
4.2.5 第三方開發環境簡介 35
4.3 ESP-IDF編譯系統詳解 36
4.3.1 編譯系統基本概念 36
4.3.2 工程文件結構 36
4.3.3 編譯系統默認的構建規範 38
4.3.4 編譯腳本詳解 38
4.3.5 常用命令詳解 39
4.4 實戰: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 本章總結 49

第2篇硬件與驅動開發篇
第5章ESP32-C3的智能照明產品的硬件設計 52
5.1 智能照明產品的功能及組成 52
5.2 ESP32-C3最小硬件系統設計 55
5.2.1 電源 58
5.2.2 上電時序與復位 58
5.2.3 SPI Flash 59
5.2.4 時鐘源 59
5.2.5 射頻及天線 60
5.2.6 Strapping引腳 62
5.2.7 GPIO和PWM功能 62
5.3 實戰:使用ESP32-C3構建智能照明系統 63
5.3.1 模組選用 63
5.3.2 PWM信號的GPIO配置 63
5.3.3 固件燒錄和調試接口 65
5.3.4 射頻設計要求 67
5.3.5 供電電源設計要求 68
5.4 本章總結 68

第6章驅動開發 70
6.1 驅動開發過程 70
6.2 ESP32-C3外設應用 71
6.3 LED驅動基礎 72
6.3.1 色彩空間 72
6.3.2 LED驅動器 76
6.3.3 LED調光 76
6.3.4 PWM介紹 77
6.4 LED調光驅動開發 78
6.4.1 非易失性存儲 78
6.4.2 LED PWM控制器 79
6.4.3 LED PWM編程 81
6.5 實戰:智能照明工程中的驅動開發 84
6.5.1 按鍵驅動 84
6.5.2 LED調光驅動 85
6.6 本章總結 89

第3篇無線通信與控制篇
第7章Wi-Fi網絡配置和連接 92
7.1 Wi-Fi基礎知識 92
7.1.1 什麼是Wi-Fi 92
7.1.2 IEEE 802.11的發展歷程 92
7.1.3 Wi-Fi相關術語 93
7.1.4 Wi-Fi連接的過程 95
7.2 藍牙基礎知識 102
7.2.1 什麼是藍牙 102
7.2.2 藍牙相關術語 103
7.2.3 藍牙連接的過程 105
7.3 Wi-Fi配網 108
7.3.1 Wi-Fi配網導讀 109
7.3.2 SoftAP配網 109
7.3.3 一鍵配網 111
7.3.4 藍牙配網 112
7.3.5 其他配網方式 114
7.4 Wi-Fi編程 116
7.4.1 ESP-IDF中的Wi-Fi組件 116
7.4.2 牛刀小試:Wi-Fi連接初體驗 117
7.4.3 大顯身手:Wi-Fi連接智能化 121
7.5 實戰:智能照明工程中實現Wi-Fi配置 131
7.5.1 智能照明工程Wi-Fi連接實例 132
7.5.2 Wi-Fi智能化配置實例 133
7.6 本章總結 134

第8章設備的本地控制 135
8.1 本地控制的介紹 135
8.1.1 本地控制的使用條件 136
8.1.2 本地控制的適用場景 137
8.1.3 本地控制的優勢 137
8.1.4 通過智能手機發現被控設備 137
8.1.5 智能手機與被控設備的數據通信 138
8.2 常見的本地發現方法 138
8.2.1 廣播 139
8.2.2 組播 144
8.2.3 廣播與組播對比 150
8.2.4 本地發現之組播應用協議mDNS 150
8.3 常見的本地數據通信協議 153
8.3.1 TCP協議 153
8.3.2 HTTP協議 158
8.3.3 UDP協議 162
8.3.4 CoAP協議 165
8.3.5 藍牙通信協議 170
8.3.6 數據通信協議總結 175
8.4 數據安全性的保證 176
8.4.1 TLS協議介紹 178
8.4.2 DTLS協議介紹 183
8.5 實戰:基於ESP-IDF組件快速實現智能燈本地控制模塊 186
8.5.1 創建基於Wi-Fi的本地控制服務器端 186
8.5.2 使用腳本驗證本地控制功能 190
8.5.3 創建基於藍牙的本地控制服務器端 191
8.6 本章總結 193

第9章設備的雲端控制 194
9.1 遠程控制的介紹 194
9.2 常見的雲端數據通信協議 195
9.2.1 MQTT協議介紹 195
9.2.2 MQTT協議原理 195
9.2.3 MQTT消息格式 197
9.2.4 協議對比 200
9.2.5 基於Windows或Linux搭建MQTT Broker 201
9.2.6 基於ESP-IDF創建MQTT客戶端 202
9.3 保證MQTT數據安全性 204
9.3.1 證書的含義與作用 205
9.3.2 本地生成證書 206
9.3.3 配置MQTT Broker 209
9.3.4 配置MQTT客戶端 209
9.4 實戰:通過ESP RainMaker實現智能照明工程的遠程控制 211
9.4.1 ESP RainMaker的基本概念 211
9.4.2 節點與雲後端通信協議 212
9.4.3 客戶端與雲後端通信方法 216
9.4.4 用戶體系 219
9.4.5 基礎服務介紹 220
9.4.6 智能燈示例 222
9.4.7 RainMaker App與第三方集成 228
9.5 本章總結 233

第10章智能手機App開發 234
10.1 智能手機App開發技術介紹 234
10.1.1 智能手機App開發概述 234
10.1.2 Android項目的結構 235
10.1.3 iOS項目的結構 236
10.1.4 Android Activity的生命週期 237
10.1.5 iOS ViewController的生命週期 238
10.2 新建智能手機App項目 239
10.2.1 Android開發的準備 239
10.2.2 新建Android項目 239
10.2.3 添加MyRainmaker項目所需的依賴 241
10.2.4 Android權限申請 241
10.2.5 iOS開發的準備 242
10.2.6 新建iOS項目 242
10.2.7 添加RainMaker所需的依賴 243
10.2.8 iOS權限的申請 245
10.3 App功能需求分析 245
10.3.1 項目功能需求分析 245
10.3.2 用戶登錄註冊需求分析 245
10.3.3 設備配網和綁定需求分析 247
10.3.4 遠程控制需求分析 248
10.3.5 定時需求分析 248
10.3.6 用戶中心需求分析 249
10.4 用戶登錄註冊功能的開發 249
10.4.1 RainMaker項目接口說明 250
10.4.2 智能手機如何發起通信請求 250
10.4.3 賬號註冊 250
10.4.4 賬號登錄 253
10.5 設備配網功能的開發 256
10.5.1 掃描設備 257
10.5.2 連接設備 258
10.5.3 生成私鑰 261
10.5.4 獲取設備的節點ID 261
10.5.5 設備配網 264
10.6 設備控制功能的開發 266
10.6.1 雲端綁定賬號與設備 266
10.6.2 獲取用戶的所有設備 268
10.6.3 獲取設備當前狀態 271
10.6.4 修改設備狀態 273
10.7 定時功能和用戶中心功能的開發 275
10.7.1 實現定時功能 275
10.7.2 實現用戶中心功能 278
10.7.3 更多雲端接口 280
10.8 本章總結 282

第11章固件更新與版本管理 283
11.1 固件更新 283
11.1.1 分區表概述 284
11.1.2 固件啟動流程 285
11.1.3 OTA升級原理概述 287
11.2 固件版本管理 290
11.2.1 固件標記 290
11.2.2 回滾與防回滾功能 291
11.3 實戰:OTA升級使用示例 292
11.3.1 利用本地主機完成固件更新 292
11.3.2 利用ESP RainMaker完成固件更新 295
11.4 本章總結 302

第4篇優化與量產篇
第12章電源管理和低功耗優化 304
12.1 ESP32-C3電源管理 304
12.1.1 動態調頻 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 電源管理和低功耗調試 316
12.3.1 日誌調試 316
12.3.2 GPIO調試 318
12.4 實戰:在智能照明工程中添加電源管理 319
12.4.1 配置電源管理功能 320
12.4.2 使用電源管理鎖 321
12.4.3 驗證功耗表現 322
12.5 本章總結 322

第13章增強設備的安全功能 323
13.1 物聯網設備數據安全概述 323
13.1.1 為什麼要保護物聯網設備數據的安全 324
13.1.2 保護物聯網設備數據安全的基本要求 325
13.2 數據完整性保護 325
13.2.1 完整性校驗方法簡介 325
13.2.2 固件數據的完整性校驗 326
13.2.3 示例 327
13.3 數據機密性保護 327
13.3.1 數據加密簡介 327
13.3.2 Flash加密方案概述 329
13.3.3 存儲Flash加密方案的密鑰 331
13.3.4 Flash加密的工作模式 332
13.3.5 Flash加密的一般工作流程 333
13.3.6 NVS加密方案簡介 334
13.3.7 Flash加密方案和NVS加密方案的示例 335
13.4 數據合法性的保護 338
13.4.1 數字簽名簡介 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 實戰:在量產中批量使用安全功能 346
13.5.1 Flash加密方案與Secure Boot方案的關係 346
13.5.2 使用量產工具批量使用Flash加密方案與Secure Boot方案 347
13.5.3 在智能照明系統中使用Flash加密方案與Secure Boot方案 348
13.6 本章總結 348

第14章量產的固件燒錄和測試 349
14.1 量產固件燒錄 349
14.1.1 定義數據區 349
14.1.2 固件燒錄 351
14.2 量產測試 352
14.3 實戰:智能照明工程中的量產數據 353
14.4 本章總結 354

第15章ESP Insights遠程監察平台 355
15.1 ESP Insights組件的簡介 355
15.2 ESP Insights組件的使用 358
15.2.1 在esp-insights工程中使用ESP Insights組件 358
15.2.2 在esp-insights工程中運行示例diagnostics_smoke_test 360
15.2.3 上報Coredump信息 361
15.2.4 定制感興趣的日誌 361
15.2.5 上報設備重啟原因 362
15.2.6 上報自定義的指標值 362
15.3 實戰:基於智能燈示例使用ESP Insights組件 365
15.4 本章總結 366
參考文獻 367