HyLib 整合性圖書館自動化系統
借閱次數: 1

超圖解ESP32深度實作 = The defimitive guide to ESP32 /

  • 作者:趙英傑作
  • 出版者:旗標
  • 出版地:臺北市 :
  • 語文:中文
  • ISBN/ISSN/ISRC:9789863126607
  • 作者:趙英傑
  • 索書號:312.52

第 1 章 32 位元雙核心 ESP32 晶片以及軟體開發工具 1-1 ESP32 的特色與開發板介紹 1-2 ESP-IDF 程式開發框架及 menuconfig 工具簡介 1-3 使用 Arduino IDE 開發 ESP32 程式 1-4 在 Arduino IDE 中編譯 ESP-IDF 程式 1-5 ESP32 程式開發工具內含 FreeRTOS(即時作業系統) 第 2 章 ESP32 開發板與 Arduino 程式開發應用 2-1 EP32 開發板的接腳 2-2 ESP32 的 3 個 UART 序列通訊與 printf() 函式 2-3 輸出核心除錯訊息 2-4 數位輸出 / 入及電容觸控腳 2-5 類比輸入埠:讀取 MQ-2 煙霧 / 可燃性氣體感測值 動手做 2-1 偵測煙霧濃度 2-6 使用 ESP32 內建的霍爾效應感測器 動手做 2-2 磁石控制開關 2-7 PWM 輸出 動手做 2-3 調光器 2-8 調控 PWM 訊號的頻率:發出聲音 動手做 2-4 發出聲音 動手做 2-5 控制伺服馬達 2-9 字串處理:String 與 std::string 類型 第 3 章 物件導向程式設計與自製 Arduino 程式庫 3-1 模組化程式設計 動手做 3-1 可分辨「按一下」和 「長按」動作的開關 3-2 使用 enum 定義常數數字的集合 3-3 物件導向程式設計:自己寫程式庫 動手做 3-2 使用自製的 Switch 程式庫製作調光器 第 4 章 中斷處理以及 ESP32 記憶體配置 4-1 觸發中斷的時機與中斷服務常式 動手做 4-1 設定與取消硬體中斷 4-2 volatile 和主記憶體分區 4-3 分時多工與執行緒 4-4 解析 ESP32 的回溯(Backtrace)除錯訊息 4-5 微波感應偵測物體移動 動手做 4-2 人體移動警報器 4-6 計時器中斷 動手做 4-3 利用計時器定時閃爍 LED 動手做 4-4 用計時器定時閃爍 LED 之後刪除計時器物件 4-7 認識堆疊(stack)和堆積(heap)記憶體區域 第 5 章 OLED 顯示器以及 Python 中文轉換工具程式設計 5-1 使用 OLED 顯示器顯示文字訊息 動手做 5-1 使用 U8g2 程式庫操控 OLED 顯示器 動手做 5-2 在 OLED 顯示器呈現動態資料 5-2 全畫面及分頁暫存區(buffer) 5-3 產生顯示器用的點陣字體子集 5-4 使用 JavaScript 和 Python 取得字元編碼 動手做 5-3 在 OLED 螢幕顯示中文 5-5 點陣 VS 向量字體:使用 FontForge 軟體檢視 5-6 透過 Python 程式一氣呵成文字編碼和程式輸出 第 6 章 Wi-Fi 無線物聯網操控裝置 6-1 認識 Wi-Fi 無線網路 6-2 使用 ESP32 的 WiFi 程式庫連接無線網路 動手做 6-1 連線到 Wi-Fi 網路並顯示 IP 位址和電波訊號強度 動手做 6-2 建立 Wi-Fi 無線接入點(AP) 動手做 6-3 使用 WebServer 程式庫建立 HTTP 伺服器 動手做 6-4 處理 GET 或 POST 請求 6-3 在 ESP32 的快閃記憶體中儲存網頁檔案 6-4 透過 JavaScript(jQuery 程式庫)動態擷取 ESP32 資料 動手做 6-5 從 ESP32 輸出網頁的純文字更新資料 動手做 6-6 動態網頁調光器 第 7 章 擷取網路資料以及 Python OLED 圖像轉換工具 7-1 網路應用程式訊息交換格式:XML 與 JSON 動手做 7-1 讀取 JSON 格式的世界各地天氣資料 動手做 7-2 從 ESP32 讀取氣象網站資料 7-2 使用 ArduinoJson 程式庫處理 JSON 資料 7-3 在 OLED 螢幕顯示天氣概況 7-4 在 OLED 螢幕顯示開機畫面(點陣圖) 7-5 自動批次轉換點陣圖檔的 Python 程式 第 8 章 物聯網動態資料圖表網頁 8-1 從 ESP32 網站伺服器輸出 JSON 資料 動手做 8-1 從 ESP32 伺服器輸出 JSON 文件 8-2 使用 chart.js 在網頁繪製動態圖表 8-3 動態新增圖表資料 8-4 即時動態圖表 動手做 8-2 呈現即時動態數據圖表 第 9 章 使用 WebSocket 即時連線監控聯網裝置 9-1 使用 WebSocket 建立即時連線 9-2 使用 JavaScript 的 WebSocket 物件與 ESP32 伺服器連線 動手做 9-1 透過 WebSocket 從 ESP32 發送 JSON 資料 第 10 章 RTC 即時鐘以及網路和 GPS 精確對時 10-1 再談 struct(結構) 10-2 內建在 ESP32 晶片內部的月曆和時鐘:即時鐘(RTC) 動手做 10-1 透過網際網路更新時間 10-3 在 ESP32 的 Serial2 序列埠連接 GPS 衛星定位模組 動手做 10-2 連接 GPS 模組 10-4 認識 NMEA 標準格式與獲取 GPS 的經緯度值 10-5 解析 GPS 訊號的經緯度和日期時間資料 動手做 10-3: 使用 TinyGPS++ 程式庫解析 GPS 訊號 第 11 章 ESP32 的睡眠模式與喚醒方法 11-1 超低功耗的深度睡眠模式 11-2 定時喚醒微控器 動手做 11-1 觸控喚醒微控器 11-3 搭配網路時間的定時喚醒程式 11-4 認識 ThingSpeak 物聯網雲端平台 動手做 11-2 定時喚醒 ESP32 並上傳感測資料 11-5 在深度睡眠中維持接腳的狀態:控制 RTC_GPIO 接腳 動手做 11-3 在深度睡眠時維持數位 輸出狀態 11-6 外部喚醒:透過 GPIO 腳 動手做 11-4 透過 GPIO 腳從外部喚醒 ESP32 第 12 章 SPIFFS 檔案系統與 MicroSD 記憶卡 12-1 快閃記憶體的 SPIFFS 分區配置與操作 動手做 12-1 在 SPIFFS 中寫入與讀取檔案 動手做 12-2 使用 SPIFFS 紀錄執行狀態 12-2 透過網頁表單上傳檔案到ESP32 12-3 連接 microSD 記憶卡 動手做 12-3 使用 SD 記憶卡提供 ESP32 伺服器網頁 動手做 12-4 寫入 DHT11 溫濕度紀錄到 MicroSD 記憶卡 12-4 重複利用既有的程式碼:父類別、子類別與繼承 12-5 透過指標存取類別物件 第 13 章 設置區域網路域名、動態顯示 QR Code 以及 OTA 更新韌體 13-1 設置區域網路域名 動手做 13-1 替 ESP32 伺服器設定本地域名 13-2 用 QR Code 二維條碼呈現網址 動手做 13-2 在 OLED 螢幕顯示本機 IP 位址和 QR 碼 13-3 透過 OTA 更新 ESP32 的韌體 動手做 13-3 透過 Arduino IDE 進行 OTA 更新 動手做 13-4 透過網頁表單上傳檔案更新 ESP32 韌體 第 14 章 網路收音機、文字轉語音播報裝置與音樂播放器 14-1 I2S 序列音訊介面 14-2 製作網路收音機的前置作業 動手做 14-1 網路收音機 / Podcast 播放器 14-3 使用 Google 文字轉語音服務 動手做 14-2 氣溫語音播報服務 14-4 認識與解析 WAV 聲音檔案格式資料 14-5 驅動 I2S 週邊播放 WAV 音檔 14-6 兼具播放立體聲和單聲道 WAV 音源的程式 14-7 使用自訂結構解析 WAV 音檔標頭 第 15 章 典型藍牙以及 BLE 藍牙應用實作 15-1 藍牙立體聲接收器以及 ESP32 內部的 DAC 動手做 15-1 ESP32 藍牙立體聲播放器 15-2 ESP32 經典藍牙序列埠通訊程式 動手做 15-2 ESP32 藍牙序列埠通訊 15-3 使用 Serial Bluetooth Terminal 手機 App 連接藍牙 動手做 15-3 藍牙 SPP 一對一連線 15-4 開發 BLE 藍牙裝置 15-5 使用 nRF Connect 工具軟體檢測 BLE 藍牙裝置 15-6 製作 ESP32 BLE 藍牙序列通訊裝置 15-7 特徵回呼虛擬類別 15-8 提供 BLE 藍牙剩餘電量資訊服務 動手做 15-4 BLE 藍牙通知電量 15-9 偵測負載的電流量 動手做 15-5 測量負載的消耗電流 第 16 章 BLE 藍牙人機輸入裝置應用實作 16-1 旋轉編碼器 動手做 16-1 連接旋轉編碼器 動手做 16-2 結合 Switch 類別的旋轉編碼器程式 16-2 整合 BLE 藍牙鍵盤與滑鼠的程式庫 動手做 16-3 BLE 藍牙多媒體控制器旋鈕 16-3 BLE 藍牙多媒體鍵盤 動手做 16-4 連接 ESP32 與按鍵模組 動手做 16-5 整合滑鼠與多媒體鍵盤 16-4 電腦桌面自動切換器 動手做 16-6 使用 VL53L0X 飛時測距模組測量距離 動手做 16-7 電腦桌面自動切換器 16-5 人機介面裝置(HID)程式庫的原理說明 第 17 章 FreeRTOS 即時系統核心入門 17-1 認識 FreeRTOS 以及任務排程 動手做 17-1 第一個 FreeRTOS 程式 17-2 FreeRTOS 資料類型 17-3 FreeRTOS 任務的一生 17-4 任務的優先權與看門狗 17-5 動態調整任務優先權與刪除任務 17-6 ESP32 的可用記憶體容量以及任務的記憶體用量 17-7 傳遞參數給任務函式 第 18 章 FreeRTOS 即時系統核心應用 18-1 ESP32 Arduino 程式的起始點:app_main() 動手做 18-1 OLED 顯示器任務 18-2 透過佇列傳遞任務資料 動手做 18-2 讀取類比值並顯示在 OLED 螢幕 18-3 熱敏電阻 動手做 18-3 在佇列中傳遞結構資料 18-4 使用旗號(Semaphore)鎖定資源 動手做 18-4 由多工任務和中斷常式構成的投籃機 第 19 章 採用 HTTPS 加密連線的前端與 Web 伺服器 19-1 認識 HTTPS 加密連線 19-2 檢視與匯出網站的憑證 19-3 以 HTTPS 加密連線取得 ThingSpeak 資料 動手做 19-1 從 ESP32 以 HTTPS 加密連線 ThingSpeak 動手做 19-2 在 SPIFFS 中存放 CA 憑證檔 19-4 使用 OpenSSL 工具產生自簽的 SSL/TLS 憑證 19-5 在 ESP32 建立 HTTPS 加密連線的 Web 伺服器 19-6 在瀏覽器中匯入自簽憑證 第 20 章 使用 JavaScript 操控 ESP32 BLE 藍牙裝置 20-1 使用瀏覽器探索藍牙裝置 20-2 JavaScript 非同步程式設計 20-3 替 VS Code 程式編輯器安裝 Live Server 伺服器 20-4 透過 navigator.bluetooth 物件操控ESP32 藍牙裝置 20-5 讀取與寫入藍牙 UART 服務的 TX 和 RX 特徵值 20-6 ArrayBuffer(位元組陣列)與DataView(資料視圖) 20-7 使用 async/await 改寫藍牙網頁程式 20-8 藍牙遙控車的雙馬達驅動與控制電路 動手做 20-1 編寫馬達驅動程式模組 動手做 20-2 網頁藍牙 ESP32 遙控車 20-9 製作藍牙遙控車的互動網頁 第 21 章 建立無線 Mesh(網狀)通訊網路 21-1 認識與建立 Mesh 網路 21-2 調配與執行多工任務的 Task Scheduler 程式庫 動手做 21-1 在 Mesh 網路中分享訊息 21-3 組建 Mesh 感測器網路 動手做 21-2 Mesh 感測器網路的根節點程式 21-4 在 Mesh 網路中一對一傳送資料 21-5 連接 Mesh 網路與網際網路 21-6 上傳 Mesh 網路資料到雲端 附錄 A Python Asyncio(非同步 IO)多工處理以及 BLE 藍牙連線程式設計 A-1 Python 多工處理程式 A-2 使用 Python Bleak 程式庫連結 BLE 藍牙裝置 索引