单片机三剑客:ESP32单片机与PYTHON语言编程
作 者:蔡杏山 著
定 价:88
出 版 社:机械工业出版社
出版日期:2024年07月01日
页 数:288
装 帧:平装
ISBN:9787111754732
单片机世界犹如江湖,而ESP32则是其中的翘楚,以其强大的无线功能和丰富的开发生态备受推崇。当ESP32遇上Python,简洁强大的代码便能让你的硬件如虎添翼。
无论你是初学者还是经验丰富的开发者,《单片机三剑客:ESP32 单片机与Python 语言编程》都是实现你创意项目的完美搭档。其细致入微的案例式介绍,让你在学习原理的同时轻松掌握编程方法,让你在物联网的世界里游刃有余。
《单片机三剑客:ESP32单片机与Python语言编程》采用大量实例和程序逐行解说的方式介绍ESP32单片机与Python语言编程,主要内容有ESP32单片机与编程软件入门,Python语言入门,LED、数码管和RGB全彩灯电路及编程实例,按键输入与蜂鸣器、继电器电路及编程实例,直流电动机、步进电动机与舵机驱动电路及编程实例,中断、定时器与PWM功能的使用及编程实例,ADC与声/光/热/火/雨/烟传感器的使用及编程实例,常用传感器模块的使用及编程实例,超声波传感器与红外线遥控的使用及编程实例,串行通信(UART)与实时时钟(RTC)的使用及编程实例,单总线通信与温湿度传感器的使用及编程实例,I2C通信控制OLED屏与PS2摇杆的使用及编程实例,SPI通信与SD卡/RFID卡的读写编程实例,单片机连接WiFi网络与计算机进行通信,用浏览器网页控制和监视单片机,基于MQTT协议的物联网(IoTnull
目录
前言
第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 定时器的类与函数 117
6.2.2 定时器中断方式控制LED 的电路 118
6.2.3 定时器中断方式控制LED 的程序及说明 118
6.3 PWM(脉宽调制) 输出功能的使用及编程实例 120
6.3.1 PWM 基本原理 120
6.3.2 PWM 的类与函数 121
6.3.3 PWM 输出控制两个LED 的电路 122
6.3.4 PWM 控制一个LED 呼吸灯和一个LED 快慢闪烁灯的程序及说明 123
第7 章 ADC 与声/ 光/ 热/ 火/ 雨/ 烟传感器的使用及编程实例 125
7.1 ADC(模数转换器) 的使用及编程实例 125
7.1.1 ADC 的类与函数 125
7.1.2 单片机检测输入电压并用4 位数码管显示电压值的电路 126
7.1.3 单片机检测输入电压并用数码管显示电压值的程序及说明 126
7.2 声音传感器模块的使用与编程实例 129
7.2.1 声音传感器模块介绍 129
7.2.2 单片机连接声音传感器模块、LED 和4 位数码管的电路 131
7.2.3 声音传感器模块检测声音、数码管显示音量值及控制LED 的程序及说明 131
7.3 光敏传感器模块的使用与编程实例 133
7.3.1 光敏传感器模块介绍 133
7.3.2 单片机连接光敏传感器模块、数码管和LED 的电路 134
7.3.3 光敏传感器模块检测光亮度、数码管显示亮度值及控制LED 的程序及说明 135
7.4 热敏传感器模块的使用与编程实例 136
7.4.1 热敏传感器模块介绍 136
7.4.2 单片机连接热敏传感器模块、数码管和蜂鸣器的电路 137
7.4.3 热敏传感器检测冷热度、数码管显示冷热度值及控制蜂鸣器的程序及说明 138
7.5 火焰传感器模块的使用与编程实例 139
7.5.1 火焰传感器模块介绍 139
7.5.2 单片机连接火焰传感器模块、数码管和蜂鸣器的电路 140
7.5.3 检测火焰强度、数码管显示强度值及控制蜂鸣器的程序及说明 141
7.6 雨滴传感器模块的使用与编程实例 143
7.6.1 雨滴传感器模块介绍 143
7.6.2 单片机连接雨滴传感器模块、数码管和蜂鸣器的电路 144
7.6.3 雨滴传感器模块检测雨量、数码管显示雨量值及控制蜂鸣器的程序及说明 145
7.7 烟雾传感器模块的使用与编程实例 .146
7.7.1 烟雾传感器模块介绍 146
7.7.2 单片机连接烟雾传感器模块、数码管和蜂鸣器的电路 148
7.7.3 烟雾传感器模块检测烟雾浓度、数码管显示烟雾浓度值及控制蜂鸣器的程序及说明 149
第8 章 常用传感器模块的使用及编程实例 151
8.1 倾斜传感器模块的使用与编程实例 151
8.1.1 倾斜传感器模块介绍 151
8.1.2 单片机连接倾斜传感器模块和LED 的电路 152
8.1.3 倾斜传感器模块检测倾斜控制LED 的程序及说明 153
8.2 振动传感器模块的使用与编程实例 153
8.2.1 振动传感器模块介绍 153
8.2.2 单片机连接振动传感器模块和LED 的电路 154
8.2.3 振动传感器模块检测振动控制LED 的程序及说明 155
8.3 干簧管传感器模块的使用与编程实例 156
8.3.1 干簧管与干簧管传感器模块 156
8.3.2 单片机连接干簧管传感器模块和LED 的电路 157
8.3.3 干簧管传感器模块检测磁场控制LED 的程序及说明 158
8.4 U 型(对射型) 光电传感器模块的使用与编程实例 158
8.4.1 U 型光电传感器模块介绍 158
8.4.2 单片机连接U 型光电传感器模块和LED 的电路 159
8.4.3 U 型光电传感器模块检测不透明物控制LED 的程序及说明 159
8.5 反射型光电传感器模块的使用与编程实例 161
8.5.1 反射型光电传感器模块介绍 161
8.5.2 单片机连接反射型光电传感器模块和LED 的电路 161
8.5.3 反射型光电传感器模块检测物体控制LED 的程序及说明 163
8.6 触摸开关模块的使用与编程实例 163
8.6.1 触摸开关模块介绍 163
8.6.2 单片机连接触摸开关模块和LED 的电路 165
8.6.3 触摸开关中断输入控制LED 的程序及说明 165
8.7 霍尔传感器模块的使用与编程实例 166
8.7.1 霍尔效应与霍尔传感器 166
8.7.2 霍尔传感器模块介绍 168
8.7.3 单片机连接霍尔传感器模块、4 位数码管和LED 的电路 169
8.7.4 霍尔传感器检测电动机转速、数码管显示转速值和控制LED 的程序及说明 169
8.8 人体热释电传感器模块的使用与编程实例 171
8.8.1 人体热释电传感器与菲涅尔透镜 171
8.8.2 HC-SR501 型人体热释电传感器模块介绍 173
8.8.3 单片机连接人体热释电传感器模块和蜂鸣器的电路 175
8.8.4 热释电传感器检测人体移动控制蜂鸣器的程序及说明 176
8.9 旋转编码器模块的使用与编程实例 176
8.9.1 旋转编码器模块介绍 176
8.9.2 单片机连接旋转编码器模块、数码管和LED 的电路 178
8.9.3 旋转编码器检测转角/ 转向/ 转速、数码管显示转角值和LED指示转向的程序及说明 179
第9 章 超声波传感器与红外线遥控的使用及编程实例 181
9.1 超声波传感器的使用及编程实例 181
9.1.1 HC-SR04 超声波传感器介绍 181
9.1.2 HCSR04 的类与函数 182
9.1.3 HC-SR04 超声波传感器测量距离控制LED 和蜂鸣器的单片机电路 183
9.1.4 超声波传感器测量显示距离值并控制LED 和蜂鸣器的程序及说明 184
9.2 红外线遥控的使用及编程实例 185
9.2.1 红外线与可见光 185
9.2.2 红外线发射器与红外线发光二极管 186
9.2.3 红外线光电二极管与红外线接收器 188
9.2.4 红外遥控的编码方式 189
9.2.5 红外线遥控控制LED 和继电器的单片机电路 191
9.2.6 红外线遥控控制LED 并显示按键控制码的程序及说明 192
第10 章 串行通信(UART)与实时时钟(RTC)的使用及编程实例 194
10.1 串行通信知识与通信函数 194
10.1.1 串行通信基础知识 194
10.1.2 串行通信的类与函数 197
10.2 单片机与计算机串行通信的电路与编程实例 199
10.2.1 单片机与计算机串口通信的电路 199
10.2.2 单片机与计算机串口通信收发数据的程序及说明 200
10.2.3 用串口调试助手测试与单片机收发数据的程序 200
10.2.4 用串口接收的数据控制单片机LED 的程序及说明 202
10.3 内部实时时钟(RTC) 的使用及编程实例 204
10.3.1 RTC 的类与函数 204
10.3.2 内部RTC 控制LED 的电路 205
10.3.3 内部RTC 控制指定日期时间点亮和熄灭LED 的程序及说明 205
10.4 外部实时时钟DS1302 的使用及编程实例 206
10.4.1 DS1302 实时时钟芯片介绍 206
10.4.2 DS1302 的类与函数 207
10.4.3 DS1302 实时时钟芯片控制LED 的电路 208
10.4.4 使用DS1302 控制指定日期时间点亮和熄灭LED 的程序及说明 209
第11 章 单总线通信与温湿度传感器的使用及编程实例 211
11.1 单总线通信与DS18B20 温度传感器的使用及编程实例 211
11.1.1 单总线通信的类与函数 211
11.1.2 DS18B20 温度传感器介绍 212
11.1.3 DS18B20 的类与函数 213
11.1.4 DS18B20 检测温度控制LED 和电动机的电路 213
11.1.5 DS18B20 检测温度控制LED 和电动机的程序及说明 214
11.2 DHT11 温湿度传感器的使用及编程实例 215
11.2.1 DHT11 温湿度传感器介绍 215
11.2.2 DHT11 的类与函数 216
11.2.3 DHT11 检测温湿度并控制LED、电动机和继电器的电路 217
11.2.4 DHT11 检测温湿度并控制LED、电动机和继电器的程序及说明 218
第12 章 I2C 通信控制OLED 屏与PS2 摇杆的使用及编程实例 220
12.1 I2C 总线与操作函数 220
12.1.1 I2C 总线介绍 220
12.1.2 I2C 的类与函数 222
12.2 OLED 显示屏与SSD1306 显示驱动芯片 225
12.2.1 OLED 的结构与工作原理 225
12.2.2 SSD1306 驱动OLED 显示屏 225
12.2.3 SSD1306 的类与函数 226
12.3 I2C 总线通信控制OLED 屏显示图形与字符 227
12.3.1 单片机以I2C 总线方式连接OLED 显示屏的电路 227
12.3.2 I2C 总线控制OLED 屏显示图形、字符、LED 状态和秒计时的程序及说明 228
12.4 PS2 摇杆的使用与编程实例 229
12.4.1 PS2 摇杆模块介绍 229
12.4.2 单片机连接PS2 摇杆模块和4 个LED 的电路 230
12.4.3 PS2 摇杆模块控制4 个LED 的程序及说明 231
第13 章 SPI 通信与SD 卡/RFID 卡的读写编程实例 234
13.1 SPI 总线通信与SD 卡 234
13.1.1 SPI 总线介绍 234
13.1.2 SPI 的类与函数 235
13.1.3 SD 卡介绍 236
13.1.4 SD 的类与函数 238
13.2 SPI 总线通信读写SD 卡的电路及编程实例 238
13.2.1 单片机使用SPI 总线连接SD 卡的电路 238
13.2.2 SD 卡的格式化、创建文件夹和文件 238
13.2.3 通过SPI 总线读写SD 卡并显示读取内容的程序及说明 241
13.3 RFID 卡读写模块的使用及编程实例 242
13.3.1 RFID 卡读写模块(读写器) 介绍 242
13.3.2 单片机连接RFID 卡读写模块和LED 的电路 245
13.3.3 通过SPI 控制读写模块读写RFID 卡和控制LED 的程序及说明 245
第14 章 单片机连接WiFi 网络与计算机进行通信 248
14.1 单片机WiFi 方式连接无线网络 248
14.1.1 WiFi 组网方式 248
14.1.2 IP 地址 249
14.1.3 WLAN 的类与函数 251
14.1.4 单片机以WiFi 方式连接无线网络的电路 253
14.1.5 单片机以WiFi 方式连接无线网络的程序及说明 253
14.2 单片机使用OLED 屏显示连接的WiFi 网络名称和IP 信息 255
14.2.1 单片机连接OLED 屏显示WiFi 网络信息的电路 255
14.2.2 单片机连接WiFi 网络并用OLED 显示网络信息的程序及说明 255
14.3 单片机以WiFi 方式与计算机进行通信 257
14.3.1 单片机、路由器与其他设备组建通信网络 257
14.3.2 socket 类与函数 258
14.3.3 单片机以WiFi 方式与计算机通信的电路 259
14.3.4 单片机以WiFi 方式与计算机进行通信的程序及说明 260
14.3.5 单片机与计算机进行通信的程序调试 263
14.3.6 接收数据后自动保存到指定文件 264
14.3.7 单片机以WiFi 方式接收数据控制LED 264
第15 章 用浏览器网页控制和监视单片机 267
15.1 用浏览器网页控制单片机LED 267
15.1.1 用浏览器控制单片机LED 的电路和网页 267
15.1.2 用浏览器网页控制单片机LED 的程序及说明 268
15.1.3 程序的运行调试 268
15.1.4 HTML 语言简介 272
15.1.5 用浏览器网页控制单片机两个LED 的程序及说明 273
15.2 用浏览器网页控制单片机LED 并监视DHT11 传感器的温湿度值 275
15.2.1 用网页控制单片机LED 并监视DHT11 温湿度值的电路及页面 275
15.2.2 用网页控制单片机LED 并监视DHT11 温湿度值的程序及说明 275
15.2.3 程序的运行调试 275
第16 章 基于MQTT 协议的物联网(IoT) 通信 280
16.1 MQTT 通信原理与MQTTClient 类及函数 280
16.1.1 MQTT 协议通信原理 280
16.1.2 MQTTClient 类与函数 281
16.2 单片机用作MQTT 物联网通信客户端的电路与编程实例 282
16.2.1 单片机用作MQTT 发布方和订阅方的电路 282
16.2.2 单片机用作MQTT 客户端的程序及说明 283
16.2.3 用通信猫调试MQTT 客户端(发布方和订阅方) 的程序 286