單片機三劍客:ESP32單片機與Python語言編程

蔡杏山

商品描述

《單片機三劍客:ESP32單片機與Python語言編程》採用大量實例和程序逐行解說的方式介紹ESP32單片機與Python語言編程,
主要內容有ESP32單片機與編程軟件入門,Python語言入門,LED、數碼管和RGB全彩燈電路及編程實例,
按鍵輸入與蜂鳴器、繼電器電路及編程實例,直流電動機、步進電動機與舵機驅動電路及編程實例,
中斷、定時器與PWM功能的使用及編程實例,ADC與聲/光/熱/火/雨/煙傳感器的使用及編程實例,
常用傳感器模塊的使用及編程實例,超聲波傳感器與紅外線遙控的使用及編程實例,串行通信(UART)與實時時鐘(RTC)的使用及編程實例,
單總線通信與溫濕度傳感器的使用及編程實例,I2C通信控制OLED屏與PS2搖杆的使用及編程實例,
SPI通信與SD卡/RFID卡的讀寫編程實例,單片機連接WiFi網絡與計算機進行通信,用瀏覽器網頁控制和監視單片機,
基於MQTT協議的物聯網(IoT)通信。
本書具有起點低、由淺入深、語言通俗易懂的特點,並且內容結構安排符合學習認知規律。
本書適合作為初學者學習ESP32單片機及編程的自學圖書,也適合作為職業院校電類專業的單片機教材。

目錄大綱

目錄
前言
第1 章 ESP32 單晶片與程式設計軟體入門 1
1.1 概述 1
1.1.1 ESP32 晶片、模組與開發板 1
1.1.2 晶片型號意義 1
1.1.3 主要特性 2
1.1.4 應用領域 2
1.2 ESP32 單晶片開發板介紹 3
1.2.1 開發板的組成 3
1.2.2 開發板的電路及說明 3
1.2.3 ESP32 模組的腳位功能 5
1.3 單晶片編程軟體的取得、安裝與使用 6
1.3.1 Thonny 軟體的取得與安裝 7
1.3.2 程序文件的建立與保存 9
1.3.3 軟體的設定 10
1.4 單晶片閃爍點亮LED 的開發實例 11
1.4.1 單晶片閃爍點亮LED 的電路 11
1.4.2 寫出閃爍點亮LED 的程式 11
1.4.3 USB-TTL 下載器與驅動程式的安裝 12
1.4.4 用USB-TTL 下載器連接電腦與單晶片 14
1.4.5 選擇通訊連接埠與檢視單晶片中的程式 15
1.4.6 程式的線上運行與下載 16
1.5 單晶片韌體包的取得與燒錄 17
1.5.1 從網站下載韌體包到電腦 18
1.5.2 燒錄韌體包到單晶片 18
第2 章 Python 語言入門 21
2.1 Python 語言基礎 22
2.1.1 註解與程式碼縮排 22
2.1.2 關鍵字與識別符 23
2.1.3 變數與資料型態 23
2.1.4 運算子 26
2.2 序列、列表、元組、字典與集合 29
2.2.1 序列 29
2.2.2 列表(list) 31
2.2.3 元組(tuple) 36
2.2.4 字典(dict) 38
2.2.5 集合(set) 40
2.3 控制語句 43
2.3.1 if else 語句(選擇控制) 43
2.3.2 while 語句(循環控制) 46
2.3.3 for 語句(循環控制) 47
2.3.4 break 語句與continue 語句 49
2.4 函數 50
2.4.1 定義函數(建立函數) 50
2.4.2 函數的呼叫 51
2.4.3 函數的巢狀 51
2.4.4 lambda 表達式(匿名函數) 51
2.4.5 全域變數與局部變數 52
2.4.6 函數的參數 53
2.4.7 print 函數介紹 54
2.5 類別與物件 55
2.5.1 類別的定義格式 56
2.5.2 建立僅含類別屬性的類別與類別的實例化 56
2.5.3 建立含類別屬性與類別方法的類別與類別的實例化 56
2.5.4 建立類別時使用_ _init_ _ 函數傳送屬性值 57
2.5.5 類別變數與實例變數的存取 57
2.5.6 類別屬性與方法的禁止存取 58
2.5.7 父類別與子類別的使用 59
2.6 模組與包 60
2.6.1 模組的兩種導入方式 60
2.6.2 建立模組並導入使用 60
2.6.3 查看模組的資訊 61
2.6.4 math 數學函數模組介紹 62
2.6.5 包的創建與使用 63
第3 章 LED、數位管與RGB 全彩燈電路及程式設計實例 66
3.1 LED 電路及程式設計實例 66
3.1.1 LED(發光二極體) 介紹 66
3.1.2 單晶片連接8 個LED 的電路 68
3.1.3 點亮一個LED 的程式及說明 68
3.1.4 Pin(引腳) 類別及內部函數說明 69
3.1.5 閃爍點亮一個LED 的程式及說明 71
3.1.6 time(時間) 模組內部函數說明 71
3.1.7 LED 流水燈程序及說明 75
3.2 LED 數位管電路及程式設計實例 75
3.2.1 一位LED 數碼管 75
3.2.2 多位LED 數碼管 78
3.2.3 單晶片使用TM1637 晶片驅動4 位元LED 數位管的電路 79
3.2.4 TM1637 模組的類別與函數說明 81
3.2.5 4 位元LED 數位管實現秒計時的程序及說明 82
3.3 全彩LED 燈的電路及程式設計實例 83
3.3.1 WS2812B 型全彩LED 燈介紹 83
3.3.2 單晶片連接5 個WS2812B 型全彩LED 燈的電路 84
3.3.3 三基色混色法與顏色的R、G、B 數值 84
3.3.4 NeoPixel 類別及方法說明 86
3.3.5 RGB 全彩LED 燈的程序及說明 87
第4 章  按按按鍵輸入與蜂鳴器、繼電器電路及程式設計實例 89
4.1 按鍵輸入電路及程式設計實例 89
4.1.1 按鍵開關的抖動及解決方法 89
4.1.2 4 個按鍵控制4 個LED 亮滅的單晶片電路 90
4.1.3 4 個按鍵控制4 個LED 亮滅的程序及說明 91
4.2 蜂鳴器電路及程式設計實例 92
4.2.1 蜂鳴器介紹 92
4.2.2 單晶片驅動蜂鳴器的電路 94
4.2.3 主動蜂鳴器和被動蜂鳴器發聲控制的程序及說明 94
4.3 繼電器電路及程式實例 96
4.3.1 繼電器介紹 96
4.3.2 單晶片繼電器的電路 98
4.3.3 單晶片控制繼電器電路的程序及說明 98
第5 章  直流電動機、步進電動機與舵機驅動電路及程式設計實例 100
5.1 直流電動機的驅動電路及程式設計實例 100
5.1.1 直流電動機介紹 100
5.1.2 單晶片使用ULN2003 晶片驅動直流電動機的電路 102
5.1.3 按鍵控制直流電動機起停和定時運轉的程序及說明 103
5.2 步進電動機的驅動電路及程式設計實例 103
5.2.1 步進電動機基本結構與工作原理 103
5.2.2 一種五線四相步進電動機介紹 107
5.2.3 按鍵控制單晶片驅動步進電動機的電路 108
5.2.4 按鍵控制步進電動機轉向和加減速的程序及說明 108
5.3 舵機的電路及程式設計實例 110
5.3.1 舵機的外形、結構與工作原理 110
5.3.2 SG90 型舵機介紹 112
5.3.3 Servo 類別與函數 112
5.3.4 按鍵控制單晶片驅動舵機旋轉指定角度的電路 112
5.3.5 舵機自動和手動控制旋轉指定角度的程序及說明 113
第6 章 中斷、定時器與PWM 功能的使用及程式設計實例 115
6.1 中斷的使用及程式設計實例 115
6.1.1 中斷與中斷處理函數 115
6.1.2 按鍵中斷輸入控制LED 的電路 116
6.1.3 按鍵中斷輸入控制LED 的程序及說明 116
6.2 定時器的使用及程式設計實例 117
6.2.1 定時器的類別與函數