Arduino 开发
本章介绍 Arduino 环境搭建,包括 Arduino IDE、ESP32 板管理、相关库的安装,程序编译下载及示例程序测试,帮助用户掌握开发板,便于二次开发。 本章节包含以下部分,请按需阅读:
Arduino 入门教程
初次接触 Arduino ESP32 开发,想要快速上手?我们为您准备了一套通用的 入门教程。
- 第0节 认识 ESP32
- 第1节 安装和配置 Arduino IDE
- 第2节 Arduino 基础知识
- 第3节 数字输出/输入
- 第4节 模拟输入
- 第5节 脉冲宽度调制 (PWM)
- 第6节 串行通信 (UART)
- 第7节 I2C 通信
- 第8节 SPI 通信
- 第9节 Wi-Fi 基础用法
- 第10节 网页服务器
- 第11节 蓝牙 (Bluetooth)
- 第12节 LVGL 图形界面开发
- 第13节 综合项目
请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。
配置开发环境
1. 安装和配置 Arduino IDE
请参考 安装和配置 Arduino IDE 教程 下载安装 Arduino IDE 并添加 ESP32 支持。
2. 安装库
- 在安装 Arduino 库时,通常有两种方式可供选择:在线安装 和 离线安装 。若库安装要求离线安装,则必须使用提供的库文件
对于大多数库,用户可以通过 Arduino 软件的在线库管理器轻松搜索并安装。然而,一些开源库或自定义库未被同步到 Arduino 库管理器中,因此无法通过在线搜索获取。在这种情况下,用户只能通过离线方式手动安装这些库。 - 库安装教程,详见:Arduino 库管理教程
- e-Paper ESP32 Driver Board 库文件存放于示例程序中,点击此处跳转:e-Paper ESP32 Driver Board 示例程序
示例程序
1. 蓝牙例程
- 打开 Loader_esp32bt 目录,双击 Loader_esp32bt.ino 文件打开 Arduino 工程
- 选择 Tools->Boards->ESP32 Dev Module,并且选择好对应的串口:Tools->Port

- 然后点击上传,把程序编译并下载到 ESP32 驱动板上面
- 手机安装并打开 APP:

- APP 主页一共有五个按钮:
- 连接蓝牙:用来连接 ESP32 设备
- 选择墨水屏型号:选择接入到驱动板的墨水屏型号
- 打开图像文件:点击后可选择手机中的图片并打开,必须先选择型号确定尺寸后才能选择图片
- 选择图片处理算法:由于手机中的图片并不一定符合墨水屏型号的需求,所以要先处理一下图片
- 上传图片:将处理之后的图片上传到墨水屏,并刷新到屏幕上去
- 首先需要确保已经打开手机蓝牙。点击“连接蓝牙”->点击右上角的“SCAN”进行蓝牙设备扫描。
- 找到 ESP32 设备,点击进行连接。如果你是第一次连接这个设备,会弹出配对信息,点击确认完成配对。(注意:如果设备没有进行配对,将无法正常上传图片,并且可能出现 APP 闪退的问题)
- 点击“选择墨水屏型号”选择连接的墨水屏对应型号
- 点击“打开图像文件”选择图库并打开一张图片,会根据上一步选择的型号出现矩形裁剪框,拖动裁剪框选择需要裁剪的区域即可
- 点击“选择图片处理算法”选择对应的处理算法,并确认
- 黑白色阶算法(将图片处理成黑白两色,并根据墨水屏分辨率切割图片大小)
- 彩色色阶算法(将图片处理成多色,并根据墨水屏分辨率切割图片大小,只适用于多色墨水屏)
- 黑白抖动算法(将图片处理成黑白两色,并根据墨水屏分辨率切割图片大小)
- 彩色抖动算法(将图片处理成多色,并根据墨水屏分辨率切割图片大小,只适用于多色墨水屏)
- 点击“上传图像”,把处理过后的图像上传到墨水屏中显示
提供带 HTML 上位机的 Wi-Fi 例程
注意:该模块只支持 2.4G 的网络频段
2. Wi-Fi 例程
- 进入 Loader_esp32wf 文件夹,双击 Loader_esp32wf.ino 文件打开工程
- 选择 Tools->Boards->ESP32 Dev Module,并且选择好对应的串口:Tools->Port

- 打开 srvr.h 文件,将 ssid 和 password 改成实际使用的 Wi-Fi 用户名和密码
- 将该位置的 Wi-Fi 用户名和密码修改为路由器或者手机热点的 Wi-Fi 用户名和密码。ESP32 在这个程序中扮演的是从机角色,不是主机,不会往外发送 Wi-Fi 热点信息

- 按下 win + R 键,输入 CMD,打开命令行,获取电脑 IP.

- 打开 srvr.h 文件,将图片所示位置的网段修改成对应的网段,注意:ESP32 的 IP 地址(也就是第四位)不要和电脑的地址一样,其他的要和电脑的 IP 地址要一模一样

- 然后点击上传,把程序编译并下载到 ESP32 驱动板上面
- 打开串口监视器,设置波特率为 115200,可以看到串口将 ESP32 驱动板的 IP 地址打印出来:

- 电脑或者手机(注意电脑/手机接入的网络需要时跟 ESP32 接入的 Wi-Fi 是同一个网段的才可以)打开浏览器,在网址输入栏输入 ESP32 的 IP 地址并打开,可以看到操作界面如下:

- 整个操作见面分为五个区域:
- 图像操作区域 :
Select Image file: 点击在电脑或者手机里面选择一张图片
Level: mono: 黑白色阶图像处理算法
Level: color: 多色色阶图像处理算法(只对多色屏幕生效)
Dithering: mono: 黑色抖动图像处理算法
Dithering: color: 多色抖动图像处理算法(只对多色屏幕生效)
Update image: 上传图像 - IP 信息显示区域 :这里显示当前连接模块的 IP 地址信息
- 图像大小设置区域 :这里 x 和 y 可以设置显示的起始位置,这个设置是相对于所选择的图片文件的,比如选择一张 800x480 的图片,但是连接的墨水屏是 2.9 寸的,这时候墨水屏并无法显示整张图片的信息,所以在选择图像处理算法的时候,算法会自动从左上角开始截取一部分图片传到墨水屏显示,这里设置 x 和 y 可以自定义截取的起始位置。w 和 h 是当前墨水屏的分辨率大小。
注意:如果修改了 x 和 y 的指的话,需要重新点击一下处理算法生成新的图像 - 型号选择区域 :这里可以选择接入的墨水屏型号
- 图像显示区域 :这里会显示选择的图片以及处理之后的图像
- PS: 在上传图像的时候,底部会显示上传的数据进度
- 图像操作区域 :
- 区域①点击 Select image file 选择一张图片,或者直接将图片拖拽至 Original image 的区域内
- 区域④选择对应的墨水屏型号,例如:1.54b
- 区域①点击一种图像处理算法,例如:Dithering: color
- 区域①点击 Upload image 将图片上传到墨水屏显示。

提供基于 ESP32 的本地例程,无需 Wi-Fi、蓝牙和其他设备
3. 本地例程
- 打开 Arduino IDE 首选项查看项目文件夹位置(不要随意修改)

- 进入 E-Paper_ESP32_Driver_Board_Code\examples 目录,把整个 esp32-waveshare-epd 文件夹复制到项目文件夹目录下的 libraries 目录下

- 关闭所有的 Arduino IDE 窗口,再重新打开 Arduino IDE,按图选择对应的示例程序

- 选择对应的开发板和串口

- 单击“上传”,将程序编译并烧录到 ESP32 驱动板。烧录完成后,墨水屏按例程执行刷新。