智能硬件項目教程 — 基於 ESP32

楊晉 曹盛宏

  • 出版商: 北京航空航天大學
  • 出版日期: 2020-06-01
  • 售價: $414
  • 貴賓價: 9.5$393
  • 語言: 簡體中文
  • 頁數: 276
  • 裝訂: 平裝
  • ISBN: 7512432763
  • ISBN-13: 9787512432765
  • 相關分類: ESP32
  • 立即出貨 (庫存 < 4)

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

商品描述

本書通過項目學習(PBL)的方式講述基於ESP32 for Arduino的編程基礎知識。本書講述了ESP32 for Arduino的基本函數;結合硬件講述了數組及位操作,按鍵消抖;UART基本知識,庫函數和經典藍牙的應用;I2C、SPI的基本原理,庫函數的使用;網絡及HTML基礎知識,以STA和softAP模式建立WiFi連接,創建Web服務器,並實現遠程訪問;步進電機的基礎知識及梯形加減速運動控制;PID基礎知識,並利用碼盤實現小車運動的控制。

目錄大綱

第1章初識ESP321
1.1ESP32簡介1
1.2ESP32 芯片基本性能及外設2
1.3ESP32 WROOM模組的電氣特性2
1.4基於ESP32 WROOM模組的開發板2
1.5ESP32 for Arduino軟件開發環境安裝3
1.6ESP32開發板驅動安裝6
1.7學習平台搭設6
1.8Hello World!6
1.9ESP32引腳說明8
1.10ESP32KPCB專用開發板9
1.11普通開發板使用 9
1.12ESP32 數字信號讀/寫操作10
1.12.1ESP32數字信號操作函數10
1.12.2數字信號讀/寫示例10
1.13ESP32模擬信號讀/寫操作12
1.13.1模擬信號輸入函數12
1.13.2模擬信號輸入示例13
1.13.3模擬信號輸出函數——基於LEDC14
1.13.4模擬信號輸出函數示例——基於LEDC16
1.13.5模擬信號輸出函數——基於DAC17
1.14電容觸摸傳感器17
1.15電容觸摸傳感器示例18
1.16霍爾傳感器20
1.17霍爾傳感器示例20
1.18外部中斷21
1.18.1中斷程序21
1.18.2中斷觸發模式22
1.18.3中斷觸發函數22
1.18.4外部中斷示例(一)——按鍵計數顯示23
1.18.5外部中斷示例(二)——入侵檢測儀25
1.19Serial.printf函數26
1.20思考題28

第2章數碼管計時器29
2.1項目一:一位數碼管原理及數字顯示29
2.1.1一位數碼管工作原理29
2.1.2一位數碼管數字顯示30
2.2項目二:通過數組實現一位數碼管數字顯示32
2.2.1一維數組的定義和初始化33
2.2.2二維數組的定義和初始化33
2.2.3通過數組實現一位數碼管顯示34
2.3項目三:74HC595移位寄存器芯片36
2.3.174HC595移位寄存器芯片36
2.3.274HC595一位數碼管模塊37
2.3.3通過按鍵控制74HC595一位數碼管模塊38
2.4項目四:通過編程控制74HC595一位數碼管模塊40
2.5項目五:數碼管計時器44
2.5.14位數碼管工作原理44
2.5.2雙74HC595移位寄存器芯片級聯模塊工作原理45
2.5.3步驟一:4位數碼管的單數顯示46
2.5.4步驟二:按鍵消抖50
2.5.5步驟三:按鍵計時器53
2.6思考題56

第3章點陣動畫57
3.1項目一:8×8點陣的顯示57
3.1.18×8點陣工作原理57
3.1.2測試8×8點陣58
3.2項目二:流水燈示例59
3.3項目三:點陣顯示圖像63
3.3.1視覺暫留63
3.3.2顯示圖像示例63
3.4項目四:點陣動畫效果65
3.5項目五:點陣數顯計時器68
3.6思考題72

第4章串行通信——UART73
4.1UART基礎知識73
4.1.1UART定義73
4.1.2波特率74
4.1.3起始位、停止位及校驗位74
4.1.4ASCII碼75
4.1.5ESP32的UART端口76
4.2項目一:UART數據發送77
4.3項目二:UART數據接收78
4.4項目三:設置時間80
4.4.1報文設定80
4.4.2字符串解析——Arduino String libray81
4.4.3接收數據流程82
4.4.4其他接收函數85
4.5項目四:請輸入密碼86
4.5.1EEPROM簡介86
4.5.2EEPROM庫86
4.5.3設置初始密碼87
4.5.4修改密碼88
4.6項目四:藍牙控制90
4.6.1藍牙90
4.6.2BluetoothSerial庫91
4.6.3手機控制92
4.7思考題95

第5章串行通信——I2C和SPI96
5.1I2C基礎知識96
5.1.1I2C基本原理96
5.1.2I2C主設備、從設備及引腳97
5.1.3I2C庫及庫函數97
5.2項目一:MPU6050姿態傳感器99
5.2.1MEMS簡介99
5.2.2MPU6050姿態傳感器簡介99
5.2.3姿態角100
5.2.4MPU6050姿態傳感器內部的寄存器101
5.2.5MPU6050姿態傳感器數據讀/寫102
5.2.6示例一:通過I2C類庫命令讀/寫MPU6050姿態傳感器的量程102
5.2.7示例二:通過I2C類庫命令讀取MPU6050姿態傳感器的原始數據106
5.2.8示例三:通過專用庫讀取MPU6050姿態傳感器的姿態數據109
5.3項目二:SSD1306 OLED顯示屏111
5.3.1SSD1306 OLED顯示屏簡介111
5.3.2SSD1306 OLED顯示屏庫功能112
5.3.3示例一:文字顯示112
5.3.4示例二:顯示漢字113
5.3.5示例三:控制台輸出117
5.3.6示例四:屏幕菜單118
5.4項目三:平衡遊戲機120
5.5SPI基礎知識120
5.5.1SPI簡介120
5.5.2ESP32 SPI接口及引腳121
5.5.3SPI類庫及庫函數122
5.6項目四:SPI庫成員函數驅動雙74HC595移位寄存器123
5.7思考題125

第6章WiFi聯網和Web服務器126
6.1網絡基礎知識和Web服務器126
6.1.1互聯網絡和TCP/IP協議126
6.1.2IP地址127
6.1.3端口號128
6.1.4客戶端服務器模式129
6.1.5協議129
6.1.6ESP32 Web服務器130
6.1.7URL和域名、IP之間的關係130
6.1.8ESP32 WiFi工作模式131
6.1.9ESP32 WiFi類庫及成員函數132
6.2HTML基礎135
6.2.1HTML文檔編輯工具——Sublime Text軟件的下載安裝135
6.2.2編寫個HTML文檔135
6.2.3HTML文檔基本結構138
6.2.4HTML標籤139
6.2.5CSS簡介139
6.3項目一:Web服務器控制輸出141
6.3.1項目任務141
6.3.2任務分析141
6.3.3步驟一:電路搭設142
6.3.4步驟二:設定AP模式,建立WiFi連接142
6.3.5步驟三:創建Web服務器144
6.3.6步驟四:編寫應用程序,控制LED燈148
6.4項目二:Web服務器讀入數據151
6.4.1項目任務152
6.4.2步驟一:電路搭設152
6.4.3步驟二:設定STA模式,連接到WiFi153
6.4.4步驟三:創建Web服務器154
6.4.5步驟四:編寫應用程序,讀取並發送模塊信息154
6.5思考題157

第7章步進電機158
7.1步進電機及其控制器的基礎知識158
7.1.1步進電機158
7.1.2步進電機的工作原理159
7.1.3步進電機的動態特性161
7.1.4步進電機的特點162
7.1.5步進電機的控制162
7.1.624BJY48永磁式步進電機163
7.2項目一:程序控制步進電機轉動164
7.3項目二:AccelStepper步進電機庫應用——恆速轉動168
7.4項目三:AccelStepper步進電機庫應用——梯形加減速轉動170
7.5項目四:AccelStepper步進電機庫應用——串口控制172
7.6項目五:AccelStepper步進電機庫應用——多步進電機同步控制173
7.7思考題174

第8章藍牙迷宮智能小車175
8.1PID控制器簡介175
8.2項目一:小車動起來177
8.2.1主控板電機驅動177
8.2.2按鍵調速小車179
8.3項目二:碼盤數據讀取182
8.3.1碼盤及碼盤光電模塊182
8.3.2車輪旋轉圈數計算182
8.4項目三:通過碼盤控制小車直線行走184
8.5項目四:通過碼盤控制小車按指定形狀行走186
8.6項目五:藍牙迷宮小車188
8.6.1iTEAD APP安裝188
8.6.2iTEAD APP操控模式189
8.6.3iTEAD APP調試模式189
8.7思考題191

參考文獻192