前言
随着信息技术的飞速发展,计算机创新设计已经不仅仅是计算机专业人员的工作,越来越多的跨专业人员开始应用计算机技术在各个领域中进行创新设计。而应用嵌入式技术进行计算机创新无处不在,随着物联网、智能硬件、人工智能等先进技术的普及,嵌入式技术在创新设计中应用会更加广泛。在嵌入式设计软件开发方面,MicroPython因其简单易学、免费开源以及丰富的库文件,使嵌入式开发程序设计编程语言的门槛降低,非常适合进行创新设计的原型系统开发,能缩短创新设计的周期,在短时间内把创新想法变成实物案例。在嵌入式设计硬件开发方面,ESP32芯片是近年在创新设计领域中非常热门的解决方案,它除了具有嵌入式硬件芯片常用功能(GPIO、外部中断、硬件定时器、RTC、串口、I2C、SPI等)外,还提供了内置的WiFi和蓝牙功能,能够便捷地实现设备的联网通信,从而为物联网技术的创新应用提供了有利的网络支撑。
本书是面向高等学校理工科相关专业学生学习计算机创新设计而编写的教材。其特点是知识点简洁明了,侧重实际应用。每个硬件功能设计都配套完整的案例代码,可以在教材配套的开源DIY开发板上运行,同时为满足不具有硬件条件的读者的学习需求,教材案例也可以在开源MicroPython仿真平台Wokwi上进行运行测试。书中的各个章节采用由易到难的顺序讲解,让学生通过每个章节的学习,掌握多种硬件功能的使用方法,最后完成多个综合性的物联网数据采集、存储、展示和远程传输的案例。通过本书的学习,读者可以全面掌握在ESP32硬件平台上采用MicroPython进行创新设计的流程和方法。
全书共12章,第1~2章为MicroPython创新设计介绍和MicroPython基础知识,第3~10章为ESP32常用硬件功能讲解,第11章为创新项目设计,第12章为PCB设计与制作。其中,第1章主要讲解计算机创新设计编程语言MicroPython、ESP32硬件开发平台基本功能、虚拟仿真平台Wokwi和开发环境的搭建方法;第2章主要讲解MicroPython的基本语法知识,包括基本数据类型、组合数据类型、运算符、选择结构、循环结构、函数、文件、类与对象、多线程和常用库的使用;第3章讲解ESP32的GPIO输出与输入,通过DIY开发板的4个LED、五向按键完成按键控制LED闪烁的案例;第4章讲解ESP32的定时器TIMER,包括周期性定时中断、PWM输出、RTC和TIME库的使用,并在DIY开发板上完成流水灯和呼吸灯的案例;第5章讲解ESP32的串口通信,包括串口输入和输出、DIY开发板的串口硬件连接方式、Wokwi仿真平台的串口监视器的配置方法等,并在DIY开发板上实现串口输出呼吸灯占空比和串口输入控制流水灯频率的案例;第6章讲解ADC数据采集,包括ADC数据采集原理、ESP32上ADC初始化方法和数据转换方式,并在DIY开发板上实现电位器电压变化值的采集;第7章讲解I2C通信,包括I2C通信原理、I2C接口的SSD1306驱动的128×64分辨率的OLED的工作原理、OLED显示中文和图像的原理,并在DIY开发板上实现I2C接口驱动OLED显示英文、绘图、中文和图像案例;第8章讲解SPI通信,包括SPI通信原理、SPI接口的ST7789驱动的TFTLCD的工作原理,并在DIY开发板上实现TFTLCD显示彩色图片、英文和汉字的案例;第9章讲解WiFi无线网络通信,包括WiFi通信基本原理、ESP32的WiFi模块AP和STA工作模式初始化和使用方法,并在DIY开发板上实现基于WiFi模块的NTP网络校时和TCP数据通信案例;第10章讲解蓝牙通信,包括蓝牙通信基本原理、ESP32的蓝牙模块初始化和使用方法,并在DIY开发板上实现利用手机蓝牙调试助手App控制LED开关案例;第11章讲解创新项目设计,包括PWM驱动无源蜂鸣器工作、基于光敏电阻的自动亮度调节LED、基于红外遥控器控制的LED、基于滚珠开关的TFTLCD旋转时钟和OLED旋转时钟、基于DHT11的温湿度采集与OLED显示和TFTLCD显示以及基于 MQTT 通信协议的远程温湿度检测系统;第12章讲解了PCB设计与制作,以及3D外壳的设计与制作。每章后面都附有实验,附录提供了ESP32S3的MicroPython固件烧录方法、YDESP32S3核心板和DIY开发板原理图以及DIY开发板引脚功能列表,方便读者使用DIY开发板。为方便广大师生教学和学习,本书还提供配套电子教案、案例源代码、常用工具软件和慕课视频,读者可从清华大学出版社网站下载。
由于编者水平有限,书中难免存在错误和不妥之处,恳请读者批评指正。
编者2025年2月