基於ESP32的MicroPython創新設計與實例(微課版)

王德誌

  • 出版商: 清華大學
  • 出版日期: 2025-06-01
  • 售價: $354
  • 語言: 簡體中文
  • ISBN: 7302694524
  • ISBN-13: 9787302694526
  • 相關分類: ESP32
  • 下單後立即進貨 (約4週~6週)

  • 基於ESP32的MicroPython創新設計與實例(微課版)-preview-1
  • 基於ESP32的MicroPython創新設計與實例(微課版)-preview-2
  • 基於ESP32的MicroPython創新設計與實例(微課版)-preview-3
  • 基於ESP32的MicroPython創新設計與實例(微課版)-preview-4
  • 基於ESP32的MicroPython創新設計與實例(微課版)-preview-5
  • 基於ESP32的MicroPython創新設計與實例(微課版)-preview-6
  • 基於ESP32的MicroPython創新設計與實例(微課版)-preview-7
基於ESP32的MicroPython創新設計與實例(微課版)-preview-1

商品描述

"在計算機創新設計中,MicroPython因其簡單易用的特性,降低了創新設計編程語言的門檻;而ESP32芯片因其內置的WiFi、藍牙和通用嵌入式功能成為創新設計的熱門硬件平臺。本書以應用案例形式介紹ESP32常用硬件功能,突出MicroPython編寫硬件驅動的便捷性,讓讀者全面了解使用MicroPython驅動ESP32不同功能硬件模塊工作的方法。全書共分12章,包括MicroPython創新設計介紹、MicroPython基礎知識、ESP32的GPIO輸出與輸入、ESP32的定時器TIMER、ESP32的串口通信、ADC數據采集、I2C通信、SPI通信、WiFi無線網絡通信、藍牙通信、創新項目設計和PCB設計與制作。 本書講解簡單明了,案例豐富,同時配套開源硬件開發板、慕課視頻和開源仿真平臺(Wokwi)案例,可作為高等學校理工科相關專業學生學習計算機創新設計的教程,也可以作為學習MicroPython和ESP32的參考書。 "

目錄大綱

目錄

第1章MicroPython創新設計介紹1

1.1MicroPython介紹2

1.1.1MicroPython是什麼2

1.1.2MicroPython與Python的區別3

1.1.3為什麼用MicroPython進行創新設計5

1.2ESP32硬件平臺介紹5

1.2.1ESP32系列SoC5

1.2.2ESP32開發軟件平臺6

1.2.3DIY開發板介紹7

1.3Wokwi虛擬仿真平臺介紹8

1.3.1Wokwi虛擬仿真平臺功能8

1.3.2Wokwi平臺使用基本流程8

1.3.3Wokwi平臺與DIY開發板的配合使用11

1.4 開發環境的搭建11

1.4.1Python安裝11

1.4.2Thonny軟件安裝與配置12

1.4.3PyCharm軟件安裝與配置15

實驗一Python環境與基本操作實驗19

第2章MicroPython基礎知識20

2.1基本書寫格式要求21

2.1.1縮進式格式規範21

2.1.2註釋21

2.1.3標識符命名規則21

2.2常量與變量22

2.2.1常量與常量類型222.2.2變量與變量類型22

2.2.3不同進制的書寫格式23

2.3基本數據類型23

2.3.1常用數據類型23

2.3.2整型23

2.3.3浮點型24

2.3.4布爾型24

2.3.5字符串型24

2.3.6復數型25

2.3.7不同數據類型之間的轉換25

2.3.8數值運算函數25

2.4常用運算符26

2.4.1數值運算符26

2.4.2賦值運算符和復合賦值運算符26

2.4.3關系(比較)運算符26

2.4.4邏輯運算符27

2.4.5位運算符28

2.4.6表達式中運算符的優先級28

2.5輸出與輸入29

2.5.1標準輸出函數print()29

2.5.2標準輸入函數input()30

2.6組合數據類型31

2.6.1常用組合數據類型31

2.6.2字符串(str)32

2.6.3列表(list)35

2.6.4元組(tuple)38

2.6.5字典(dict)38

2.6.6集合(set)40

2.6.7列表與其他數據類型的轉換41

2.7選擇結構42

2.7.1單分支(if)42

2.7.2雙分支(ifelse)43

2.7.3多分支(ifelifelse)44

2.7.4選擇嵌套結構45

2.8循環結構46

2.8.1for循環46

2.8.2while循環47

2.8.3循環控制語句break與continue47

2.8.4循環嵌套結構48

2.9函數48

2.9.1MicroPython內置函數48

2.9.2函數的定義與調用50

2.9.3函數的參數50

2.9.4通過形參修改實參52

2.9.5函數的返回值52

2.9.6函數的嵌套調用與遞歸調用53

2.9.7lambda函數定義與使用53

2.10局部變量與全局變量54

2.10.1局部變量54

2.10.2全局變量54

2.10.3局部變量轉全局變量55

2.11文件55

2.11.1文件基本概念55

2.11.2文件操作基本流程55

2.11.3文件的開關與關閉56

2.11.4文件的讀寫操作57

2.12類與對象57

2.12.1面向對象的編程介紹57

2.12.2類的定義58

2.12.3實例對象的定義與使用59

2.12.4訪問權限的控制60

2.12.5類的繼承、封裝與多態60

2.13多線程62

2.13.1多線程基本概念62

2.13.2多線程的定義與啟動62

2.13.3線程間的簡單數據交換64

2.14常用庫的使用66

2.14.1常用內置庫66

2.14.2ESP32特有函數和庫67

2.14.3第三方庫的獲得67

實驗二MicroPython基本語法編程實驗68

第3章ESP32的GPIO輸出與輸入69

3.1GPIO基礎知識70

3.1.1什麼是GPIO70

3.1.2GPIO推挽輸出與開漏輸出70

3.1.3GPIO上拉輸入、下拉輸入與懸空輸入71

3.1.4ESP32S3芯片GPIO介紹72

3.1.5MicroPython中GPIO相關類73

3.2GPIO輸出74

3.2.1DIY開發板LED硬件原理圖分析74

3.2.2GPIO輸出初始化與使用74

3.2.3Wokwi仿真LED流水燈案例75

3.2.4DIY開發板LED流水燈案例77

3.3GPIO查詢方式輸入77

3.3.1DIY開發板五向按鍵硬件原理圖分析77

3.3.2GPIO輸入初始化與使用77

3.3.3Wokwi仿真循環查詢方式按鍵輸入控制LED閃爍案例78

3.3.4DIY開發板循環查詢方式按鍵輸入控制LED閃爍案例80

3.4GPIO中斷方式輸入80

3.4.1中斷處理程序介紹80

3.4.2GPIO外部中斷初始化與使用80

3.4.3Wokwi仿真中斷方式按鍵輸入控制LED閃爍案例81

3.4.4DIY開發板中斷方式按鍵輸入控制LED閃爍案例83

3.4.5ESP32下載程序後無法連接問題解決84

實驗三GPIO輸出與輸入實驗84

第4章ESP32的定時器TIMER85

4.1定時器基本知識86

4.1.1什麼是定時器86

4.1.2MicroPython中定時器Timer類86

4.1.3MicroPython中PWM(脈寬調制)類86

4.1.4MicroPython中時間time類88

4.1.5MicroPython中實時時鐘RTC類88

4.2定時器TIMER中斷89

4.2.1DIY開發板硬件原理圖分析89

4.2.2定時器TIMER初始化與使用89

4.2.3Wokwi仿真定時器周期中斷流水燈案例89

4.2.4DIY開發板定時器周期中斷流水燈案例91

4.3PWM輸出91

4.3.1DIY開發板硬件原理圖分析91

4.3.2PWM初始化與使用91

4.3.3Wokwi仿真呼吸燈案例92

4.3.4DIY開發板呼吸燈案例93

4.4RTC時鐘93

4.4.1Wokwi仿真循環輸出系統時間93

4.4.2DIY開發板循環輸出系統時間94

實驗四定時器TIMER實驗95

第5章ESP32的串口通信96

5.1串口通信原理97

5.1.1串行通信介紹97

5.1.2ESP32S3開發板串口介紹100

5.1.3MicroPython中串口UART類101

5.2UART串口輸出102

5.2.1DIY開發板硬件原理圖分析102

5.2.2UART串口初始化與輸出使用103

5.2.3Wokwi仿真串口輸出呼吸燈占空比案例103

5.2.4DIY開發板串口輸出呼吸燈占空比案例105

5.3UART串口輸入106

5.3.1input()和print()函數的使用106

5.3.2UART串口初始化與輸入使用107

5.3.3Wokwi仿真串口輸入控制流水燈頻率108

5.3.4DIY開發板串口輸入控制流水燈頻率111

實驗五串口實驗111

第6章ADC數據采集113

6.1ADC數據采集原理114

6.1.1什麼是ADC114

6.1.2ESP32S3中ADC介紹115

6.1.3MicroPython中ADC類115

6.2ADC數據采集介紹116

6.2.1DIY開發板硬件原理圖分析116

6.2.2ADC初始化與使用116

6.2.3Wokwi仿真電位器電壓采集案例117

6.2.4DIY開發板電位器電壓采集案例118

實驗六ADC數據采集實驗119

第7章I2C通信120

7.1I2C通信介紹121

7.1.1什麼是I2C通信121

7.1.2ESP32S3的I2C接口122

7.1.3MicroPython中I2C類122

7.2SSD1306 OLED顯示屏簡介124

7.2.1OLED顯示屏顯示原理124

7.2.2SSD1306驅動芯片的MicroPython驅動庫125

7.3OLED顯示英文與繪圖126

7.3.1DIY開發板OLED接口硬件原理圖分析126

7.3.2Wokwi仿真OLED顯示英文與繪圖126

7.3.3DIY開發板OLED顯示英文與繪圖128

7.4OLED顯示漢字與BMP圖片129

7.4.1漢字與BMP圖片的取模129

7.4.2Wokwi仿真OLED顯示漢字與BMP圖片135

7.4.3DIY開發板OLED顯示漢字與BMP圖片137

實驗七基於I2C接口的OLED顯示實驗137

第8章SPI通信138

8.1 SPI通信介紹139

8.1.1什麼是SPI通信139

8.1.2ESP32S3的SPI接口140

8.1.3MicroPython中SPI類140

8.2ST7789 TFTLCD顯示屏簡介141

8.2.1TFTLCD屏幕顯示原理141

8.2.2ST7789驅動芯片的MicroPython驅動庫142

8.3TFTLCD顯示彩色BMP圖片144

8.3.1彩色BMP圖片顯示原理144

8.3.2DIY開發板TFTLCD接口硬件原理圖分析144

8.3.3DIY開發板TFTLCD顯示彩色圖片和繪制圖形145

8.4TFTLCD顯示英文與漢字147

8.4.1英文與漢字的取模147

8.4.2GB2312字符批量取模148

8.4.3DIY開發板TFTLCD顯示英文與漢字152

實驗八基於SPI接口的TFTLCD顯示實驗153

第9章WiFi無線網絡通信154

9.1WiFi無線通信介紹155

9.1.1WiFi與WLAN155

9.1.2ESP32的WiFi通信模塊155

9.1.3MicroPython中的WiFi通信相關類156

9.2ESP32的WiFi使用方法157

9.2.1熱點模式(AccessPoint—AP模式)使用方法157

9.2.2接入模式(Station—STA模式)使用方法158

9.2.3Wokwi仿真WiFi網絡通信(STA模式)159

9.3WiFi網絡校時案例160

9.3.1網絡校時協議介紹160

9.3.2DIY開發板通過WiFi進行網絡校時案例161

9.3.3Wokwi仿真WiFi網絡校時案例162

9.4WiFi網絡TCP數據通信案例162

9.4.1TCP通信介紹162

9.4.2DIY開發板通過WiFi進行TCP數據通信(TCP客戶端

模式)案例164

9.4.3DIY開發板通過WiFi進行TCP數據通信(TCP服務器

模式)案例165

實驗九WiFi通信實驗167

第10章藍牙通信168

10.1藍牙通信介紹169

10.1.1什麼是藍牙通信169

10.1.2ESP32的藍牙通信模塊170

10.1.3MicroPython中的藍牙通信相關類171

10.2藍牙初始化與數據傳輸172

10.2.1MicroPython藍牙通信初始化172

10.2.2MicroPython藍牙通信數據傳輸173

10.3手機控制DIY開發板LED開關案例174

10.3.1手機藍牙助手App介紹174

10.3.2藍牙助手App控制DIY開發板LED開關案例174

實驗十藍牙通信實驗176

第11章創新項目設計177

11.1基於無源蜂鳴器的音樂播放器178

11.1.1無源蜂鳴器驅動原理178

11.1.2PWM驅動無源蜂鳴器工作案例178

11.1.3無源蜂鳴器演奏“小星星”180

11.2基於光敏電阻的自動亮度調節LED182

11.2.1光敏電阻工作原理182

11.2.2光敏電阻電壓數據采集案例182

11.2.3基於光敏電阻的自動亮度調節LED183

11.3基於紅外遙控器控制的LED184

11.3.1紅外數據傳輸原理184

11.3.2紅外遙控器數據采集案例185

11.3.3基於紅外遙控器控制的LED187

11.4基於滾珠開關的旋轉時鐘188

11.4.1滾珠開關工作原理188

11.4.2DIY開發板滾珠開關狀態采集案例189

11.4.3基於滾珠開關的TFTLCD旋轉時鐘191

11.4.4基於滾珠開關的OLED旋轉時鐘193

11.5基於DHT11的溫濕度采集與顯示195

11.5.1DHT11溫濕度傳感器工作原理195

11.5.2DHT11的溫濕度數據采集案例196

11.5.3基於DHT11的溫濕度采集與OLED顯示198

11.5.4基於DHT11的溫濕度采集與TFTLCD顯示200

11.6基於MQTT通信協議的遠程溫濕度檢測系統202

11.6.1MQTT通信協議簡介202

11.6.2MQTT數據發布與訂閱案例203

11.6.3PC端MQTT調試軟件“MQTT.fx”使用206

11.6.4手機端MQTT調試App軟件“MQTT調試器”使用208

11.6.5基於MQTT通信協議的遠程溫濕度檢測系統209

實驗十一溫濕度采集系統綜合案例實驗212

第12章PCB設計與制作213

12.1嘉立創EDA軟件介紹214

12.1.1軟件特點214

12.1.2PCB開發板設計的基本流程214

12.1.3新工程建立與保存215

12.2開發板原理圖設計216

12.2.1原理圖環境參數設置216

12.2.2器件的選擇217

12.2.3器件的連接218

12.2.4自定義器件的設計219

12.2.5註釋文字的添加219

12.2.6原理圖DRC檢查220

12.3開發板PCB圖設計220

12.3.1原理圖導入220

12.3.2放置板框221

12.3.3規則設置221

12.3.4圖層設置222

12.3.5自動布線 223

12.3.6PCB圖DRC檢查224

12.3.7手動布線224

12.3.8添加絲印225

12.3.9添加淚滴225

12.4PCB的制作226

12.4.1PCB在線下單流程226

12.4.2SMT(貼片器件焊接)在線下單流程227

12.4.3元件在線購買流程227

12.5開發板3D外殼設計與制作229

12.5.12D和3D預覽229

12.5.23D外殼設計基本流程229

12.5.33D外殼下單流程230

實驗十二溫濕度采集系統PCB制作實驗231

附錄232

附錄AESP32S3的MicroPython固件燒錄方法232

附錄BYDESP32S3核心板與DIY開發板原理圖234

附錄CDIY開發板引腳功能表235

參考文獻236