书籍详情
智能硬件项目教程:基于ESP32
作者:杨晋 著
出版社:北京航空航天大学出版社
出版时间:2020-06-01
ISBN:9787512432765
定价:¥69.00
购买这本书可以去
内容简介
本书通过项目学习(PBL)的方式讲述基于ESP32 for Arduino的编程基础知识。本书讲述了ESP32 for Arduino的基本函数;结合硬件讲述了数组及位操作,按键消抖;UART基本知识,库函数和经典蓝牙的应用;I2C、SPI的基本原理,库函数的使用;网络及HTML基础知识,以STA和softAP模式建立WiFi连接,创建Web服务器,并实现远程HTTP访问;步进电机的基础知识及梯形加减速运动控制;PID基础知识,并利用码盘实现小车运动的精确控制。 本书配套学习资源包含ESP32 for Arduino系统软件、库、工具软件、学习参考资料,读者可以从http://www.kpcb.org.cn/hnd288.html免费下载。
作者简介
暂缺《智能硬件项目教程:基于ESP32》作者简介
目录
第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.5HTTP协议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
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.5HTTP协议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
猜您喜欢