物聯網技術開發實戰——ESP32+Arduino/MicroPython

蔡建平,霍梅梅

  • 出版商: 電子工業
  • 出版日期: 2025-11-01
  • 售價: $348
  • 語言: 簡體中文
  • 頁數: 256
  • ISBN: 712152001X
  • ISBN-13: 9787121520013
  • 相關分類: ESP32
  • 下單後立即進貨 (約4週~6週)

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

相關主題

商品描述

本書以 ESP32 微控制器為核心,結合 Arduino 和 MicroPython 兩種流行的開發環境,系統介紹物聯網技術的基礎知識、關鍵技術及實際應用。內容涵蓋物聯網的基本概念、ESP32 硬件特性、開發環境搭建、傳感器應用、通信協議(如 Wi-Fi、MQTT、WebSocket)以及數據可視化等多個方面,通過理論講解與實驗操作相結合的方式,幫助讀者快速入門物聯網開發,掌握從硬件連接到軟件編程、從傳感器數據采集到雲端交互的完整開發流程。書中還介紹了基於 Node-RED、微信小程序等現代工具的物聯網應用開發,幫助讀者緊跟技術發展趨勢,構建功能豐富的物聯網系統。本書適合高等院校計算機類、電子信息類或通信類專業學生以及對物聯網技術感興趣的初學者和開發者閱讀。

目錄大綱

第 1 章 物聯網概述與 ESP32 入門···················································································.1
1.1 物聯網概述·············································································································.1
1.1.1 物聯網的基本概念···························································································.1
1.1.2 物聯網的應用場景···························································································.1
1.1.3 物聯網的關鍵技術···························································································.2
1.2 ESP32 硬件簡介·······································································································.2
1.2.1 ESP32 的基本架構···························································································.3
1.2.2 ESP32 的核心功能···························································································.4
1.2.3 常見開發板介紹······························································································.4
1.3 ESP32 開發環境準備·································································································.5
1.4 ESP32 的 Arduino IDE 編程環境準備·············································································.6
1.4.1 安裝 Arduino IDE ····························································································.6
1.4.2 配置 ESP32 開發板··························································································.8
1.4.3 測試開發環境·······························································································.10
1.4.4 常見問題及解決方法······················································································.10
1.5 ESP32 的 MicroPython 編程環境準備···········································································.11
1.5.1 硬件準備·····································································································.11
1.5.2 軟件準備·····································································································.11
1.5.3 安裝 Thonny IDE···························································································.12
1.5.4 下載 MicroPython 固件 ···················································································.12
1.5.5 燒錄 MicroPython 固件到 ESP32 ·······································································.14
1.5.6 測試開發環境·······························································································.16
1.5.7 常見問題及解決方法······················································································.18
1.6 本章小結··············································································································.18
第 2 章 ESP32 基礎應用································································································.19
2.1 GPIO 控制與 PWM ·································································································.19
2.2 傳感器應用開發·····································································································.20
2.2.1 光敏電阻·····································································································.21
2.2.2 溫濕度傳感器·······························································································.24
2.2.3 超聲波傳感器·······························································································.27
2.2.4 陀螺儀與加速度傳感器···················································································.31
2.3 執行器應用開發·····································································································.49
·V·
物聯網技術開發實戰——ESP32+Arduino/MicroPython
2.3.1 PWM 呼吸燈································································································.49
2.3.2 PWM 舵機···································································································.52
2.3.3 OLED 顯示屏·······························································································.56
2.4 本章小結··············································································································.78
第 3 章 ESP32 網絡通信實踐·························································································.79
3.1 網絡通信基礎········································································································.79
3.1.1 網絡通信概述·······························································································.79
3.1.2 網絡通信的基本原理······················································································.80
3.1.3 網絡通信的關鍵協議······················································································.80
3.1.4 網絡通信的分層結構······················································································.81
3.1.5 網絡通信的挑戰與發展···················································································.82
3.2 ESP32 的 Wi-Fi 通信 ·······························································································.82
3.2.1 ESP32 的 STA 模式(客戶端模式) ··································································.82
3.2.2 ESP32 的 AP 模式(接入點模式) ····································································.83
3.2.3 ESP32 的 AP+STA 模式(同時工作模式)··························································.83
3.2.4 ESP32 的 Wi-Fi 通信實驗示例··········································································.83
3.3 ESP32 的藍牙通信··································································································.90
3.3.1 經典藍牙·····································································································.90
3.3.2 低功耗藍牙··································································································.91
3.3.3 藍牙雙模·····································································································.92
3.3.4 藍牙的工作模式····························································································.92
3.3.5 ESP32 的藍牙通信實驗示例·············································································.92
3.4 ESP32 的 TCP 協議通信···························································································.99
3.4.1 TCP 協議基礎 ······························································································.99
3.4.2 TCP 協議的工作原理 ·····················································································.99
3.4.3 TCP 協議的特性 ··························································································.101
3.4.4 TCP 協議與 UDP 協議的比較··········································································.101
3.4.5 TCP 協議中的常見問題及解決 ········································································.101
3.4.6 ESP32 的 TCP 協議通信實驗示例·····································································.102
3.5 ESP32 的 HTTP 協議實踐························································································.110
3.5.1 HTTP 協議基礎 ···························································································.110
3.5.2 HTTP 協議的工作原理 ··················································································.110
3.5.3 HTTP 與 HTTPS 的區別·················································································.111
3.5.4 HTTP 響應狀態碼及其含義 ············································································.112
3.5.5 ESP32 的 HTTP 協議實驗示例·········································································.113
3.6 本章小結·············································································································.128
第 4 章 物聯網協議與 MQTT·························································································.129
4.1 物聯網協議··········································································································.129
·VI·
目 錄
4.1.1 物聯網協議的分類························································································.129
4.1.2 常見的物聯網協議························································································.129
4.2 MQTT 協議··········································································································.130
4.2.1 MQTT 協議的特點 ·······················································································.130
4.2.2 MQTT 協議的組成部分 ·················································································.130
4.2.3 MQTT 協議的 QoS 級別 ················································································.131
4.2.4 MQTT 消息傳遞流程 ····················································································.131
4.2.5 MQTT 主題組件 ··························································································.132
4.2.6 MQTT 消息通配符 ·······················································································.132
4.2.7 MQTT 中間件 ·····························································································.133
4.3 MQTT 消息發布與訂閱···························································································.134
4.3.1 安裝 MQTT 客戶端與連接公共服務器·······························································.134
4.3.2 安裝自己的 MQTT 中間件··············································································.136
4.3.3 使用 MQTT 通配符實現消息訂閱與發布····························································.138
4.3.4 共享單車平臺的 MQTT 消息主題設計示例·························································.138
4.4 MQTT 消息抓包····································································································.141
4.4.1 抓包工具····································································································.141
4.4.2 MQTT 抓包步驟 ··························································································.142
4.4.3 抓包分析示例······························································································.143
4.5 WebSocket 與 MQTT 實時通信 ·················································································.146
4.5.1 WebSocket 協議的特點··················································································.146
4.5.2 WebSocket 與 MQTT 的結合···········································································.146
4.6 本章小結·············································································································.147
第 5 章 物聯網多端應用開發·························································································.148
5.1 背景與需求··········································································································.148
5.2 微信小程序開發····································································································.149
5.2.1 微信小程序概述···························································································.149
5.2.2 微信小程序基礎···························································································.152
5.2.3 物聯網微信小程序示例··················································································.156
5.3 Node-RED 應用開發·······························································································.161
5.3.1 Node-RED 簡介 ···························································································.161
5.3.2 Node-RED 的安裝運行 ··················································································.162
5.3.3 Node-RED 基礎入門 ·····················································································.166
5.3.4 Node-RED 的 MQTT 發布訂閱客戶端設計 ·························································.167
5.3.5 Node-RED 可視化 ························································································.168
5.4 WebSocket 實時通信 ······························································································.175
5.4.1 WebSocket 基礎知識·····················································································.175
5.4.2 WebSocket 在物聯網中的應用·········································································.177
5.4.3 實現 WebSocket 連接與消息傳遞 ·····································································.178
·VII·
物聯網技術開發實戰——ESP32+Arduino/MicroPython
5.4.4 WebSocket 連接 MQTT 服務示例·····································································.179
5.5 本章小結·············································································································.186
第 6 章 實戰項目與案例開發·························································································.187
6.1 溫濕度環境監測系統······························································································.187
6.1.1 項目概述····································································································.187
6.1.2 系統構成····································································································.187
6.1.3 硬件介紹····································································································.188
6.1.4 技術介紹····································································································.189
6.1.5 方案實現····································································································.190
6.2 智能路燈系統·······································································································.200
6.2.1 項目概述····································································································.200
6.2.2 系統構成····································································································.200
6.2.3 硬件介紹····································································································.201
6.2.4 技術介紹····································································································.202
6.2.5 方案實現····································································································.203
6.3 智能拐杖系統·······································································································.219
6.3.1 項目概述····································································································.219
6.3.2 硬件設計與組件說明·····················································································.220
6.3.3 功能實現邏輯······························································································.220
6.3.4 數據庫表設計與建表腳本···············································································.221
6.3.5 系統功能演示與交互流程···············································································.223
6.3.6 各端部分核心功能代碼實現············································································.227
6.4 本章小結·············································································································.234
第 7 章 實驗 ·················································································································.236
實驗一 ESP32 基礎實驗 實驗報告 ·················································································.236
實驗二 OLED 顯示實驗 實驗報告 ·················································································.237
實驗三 MPU6050 加速度傳感器實驗 實驗報告·································································.238
實驗四 ESP32 Wi-Fi 基礎實驗 實驗報告 ·········································································.239
實驗五 ESP32 HTTP 實驗 實驗報告···············································································.240
實驗六 ESP32 一鍵配網實驗 實驗報告 ···········································································.241
實驗七 MQTT 協議基礎實驗 實驗報告···········································································.242
實驗八 MQTT 規則引擎與數據存儲實驗 實驗報告····························································.243
實驗九 MQTT 客戶端設計實驗 實驗報告········································································.245
實驗十 WebSocket 連接 MQTT 服務實驗 實驗報告 ···························································.246
實驗十一 IoT 微信小程序實驗 實驗報告·········································································.247
實驗十二 物聯網數據可視化實驗 實驗報告 ·····································································.248
實驗十三 MQTT 協議分析實驗 實驗報告········································································.249