之前一直对电子墨水屏很感兴趣,所以最近入手了一个墨水屏模块来玩玩,主控是ESP32,但是在上手的过程中因为有些商家资料有问题踩了很多坑。
这里记录下来希望对同样入手了的同学有所帮助吧。
电子墨水具有超低耗电量的特点,在显示的影像有变化时才耗用电力,在保持显示的影像时可以不耗电,但缺点是反应速度慢,不适合用于播放如动画及电影等动态画面,较适合用于静态显示。
维基百科
家里有kindle或者类似电子阅读器的同学应该有所体会,在kindle没电了之后,还是能显示最后一个页面的。
一、一些问题和解决办法
1、模块到手上电之后没有任何反应,怎么知道是否正常?
解决:模块没有led指示,到手上电后目录也没有显示,只有通过串口工具才能查看到设备的运行情况。
下图是这个模块到手上电后串口的输出,可以看到默认连接的是“CSBZY”的WiFi,但是又没有提前告知WiFi的密码,否则自己开一个一样的热点也是可以直接用了的。
2、下载固件到开发板的时候是否需要按一下EN按键复位,将GPIO0接地?
解决:不需要。从2.13inch_e-Paper_Cloud_Module_Sch 文件可以看到是包含了esp32的自动下载电路的,不需要手动将GPIO0 接地后rst一下进入下载模式。
在 esptool.py 文件 bootloader_reset 函数也能找到自动让模块进入下载模式的代码,有兴趣的可以研究一下。
3、官方提供的驱动程序 CP210x_USB_TO_UART 安装后虽然设备管理列表中正确显示, 但在串口工具中却打开不了串口?
解决:估计是兼容性问题,卸载原来的驱动后安装文件里面兼容Windows10 的 CP210x_Universal_Windows_Driver 解决。也可以自己在网上找个兼容的驱动。
微雪官方驱动下载链接:
https://www.waveshare.net/w/upload/6/62/CP210x_USB_TO_UART.zip
自测可用驱动
链接:https://pan.baidu.com/s/1fTL1e3-IsOC-jQOytVTBYg 提取码: uwgt
4、点击上传按钮后,编译成功但是报 不存在或开发板没有连接 错误?
解决:依赖python环境,需要安装环境并安装 pyserial 包,注意如果有安装 serial 包最好卸载一下。可以执行一下 python esptool.py 看下输出是否正常。
5、打开串口监视器或下载固件时候报**(Port busy)**错误?
解决:按下模块上的EN按键,或者拔插一下模块和电脑的连接线。如果拔插数据线多次还有问题,可以打开 CoolTerm 串口工具,点击 Connect 测试下连接。
二、环境配置与编译
1、安装 arduino,可以从官网下载链接下载,也可以直接从Windows 10 的应用商店搜索下载。
官方链接:https://www.arduino.cc/en/Main/Software
2、下载 Arduino-ESP32 支持包
官方下载链接:https://codeload.github.com/espressif/arduino-esp32/zip/master
3、将压缩包里面的文件解压到 Arduino IDE 安装目录下的 hardware\espressif\esp32 路径,如果没有该路径需要自己创建一下
4、打开 tools 目录,并以管理员身份运行以下 get.exe 文件。会下载当前环境下需要的一些编译工具链
5、等待安装,下载时间可能会有点久,需要耐心等待
6、安装完成后,可以在 IDE 的“工具 - 开发板”里面找到 ESP32 Dev Module 的型号选项
7、下载模块的示例代码,解压压缩包
链接:https://www.waveshare.net/w/upload/5/50/E-Paper_ESP32_Driver_Board_Code.7z
如果电脑没有装7z,可以到7z官方下载
链接:https://www.7-zip.org/a/7z1900-x64.exe
8、进入_Loader_esp32wf_文件夹,双击**Loader_esp32wf.ino文件打开工程。将开发板选择ESP32 Dev MOdule**,选好开发板对应的端口。
9、打开**srvr.h,将ssid和password**修改为实际使用的WiFi名称和密码
10、编译并下载到开发板上。
11、按一下开发板上的EN按键复位一下模块,打开“工具 - 串口监视器”,可以查看到会打印出模块WiFi的连接情况和IP,如果显示乱码需要自己调整一下波特率。
12、将电脑或手机连接到同一个WiFi下,访问模块的IP地址,比如这里是http://192.168.233.71
13、屏幕选择**2.13** ,点击**Select image file选择一张本地的图片, 点击Level:mono** 或 Dithering:mono 选择一种图像处理算法
14、最后点击 Upload image 将图片上传,这时候屏幕就会刷新显示,刷新挺慢的,还会有闪屏,效果如下视频。