|
本帖最后由 qtechzdh 于 2021-2-18 15:49 编辑
对于想进行代码编写的,可以进行开发环境搭建,如果只需要使用屏幕,无需搭建开发环境,直接跳到第6节,离线烧写即可。
1 涉及到的软件
ArdunioIDE,下载链接
https://www.arduino.cc/en/software
ESP32烧写工具
https://www.espressif.com/en/support/download/other-tools
2 硬件定义
硬件定义如下:
供电开关
按键定义如下
3 Arduino环境搭建
3.1 原理
Arduino是开发环境,默认是针对标准版的arduino进行开发,如果要支持ESP32开发,需要下载esp32的开发环境和编译器、工具等,这部分本文中称其为ESP32 API包。
3.2 安装ARDUINO
没什么可说的。一路NEXT即可。
3.3 安装esp32 API包
ESP32的包可以使用arduinoIDE种根据json连接自动获取,但是这种方式受限于网络状态,有时候可能比较慢。
第二种方式是直接从其他途径(如百度网盘GITHUB)等先把离线安装包下载到本地,再手动配置。
3.3.1 方式1
添加json源:
https://dl.espressif.com/dl/package_esp32_index.json
具体参考:
https://blog.csdn.net/finedayforu/article/details/108464784
此方式下载根据网络环境,可能比较慢。
完成后即达到编译esp32的需求
3.3.2 方式2
直接下载安装包。
(gitcloneESP32的IDF包方式)
https://blog.csdn.net/agony_isolate/article/details/110739711
(直接离线下载IDF包)
https://www.qutaojiao.com/1244.html
需要注意的是自动安装和手动安装的路径是不一样的,自动安装的路径一般在用户文件目录的appdata里面。
4 墨水屏环境搭建
对于想进行代码编写的,可以进行开发环境搭建,如果只需要使用屏幕,无需搭建开发环境,直接跳到第6节,离线烧写即可。
4.1 安装依赖的库
代码里面调用了不少第三方库,名称及版本如下。编译前需要手动更新。
Arduino-sht 1.1.0
ArduinoJson 6.16.1
I2C BM8563 RTC
QRcode 0.0.1
4.2 Spiffs插件安装
目前代码使用了spiffs的文件系统,文件系统使用spiffs工具进行文件传输,需要更新spiffs插件。请参考如下链接。
注意:Arduino需要的是.jar而不是java源码。操作过程
https://blog.csdn.net/leonvan0809/article/details/104614403
下载链接:
https://github.com/me-no-dev/ard ... in/releases/tag/1.0
更新插件后,可以在菜单->工具中找到ESP32 Sketch Data Upload菜单项。
4.3 开发板设置和分区设置
4.3.1 分区设置
分区表用来设置esp32的各个软件部分在Flash的分布和大小。保存方式为.csv文件。存储位置如下:
C:\Users\ThinkPad\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\partitions
(注意,自动下载的ESP32IDF和手动添加的路径有差异,手动添加的请关注\esp32\hardware\esp32\1.0.4\tools\partitions)
复制一份default,更名为default_EPD.csv(或直接使用代码压缩包的文件)
打开后更改为:
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x280000,
spiffs, data, spiffs, 0x290000,0x100000,
(注意,此文件在代码更新过程中可能有更新,以代码打包文件夹中的文件为准)
4.3.2 开发板选择
Arduino提供了很多开发板的选型以完成Flash的配置,本项目可以手动建立一个,方便在菜单中选择。
C:\Users\ThinkPad\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4
此文件下的boards.txt配置了Arduino的flash分区的partition的文件路径和菜单显示项目。
可以根据下面图片,找到此位置,添加三行内容。
注意,中间一行需要和partitions文件夹下建立的csv文件名一致。
添加完毕,保存关闭后,打开Arduino,会自动识别新添加的内容,按照如下图进行更新(注意,COM根据电脑实际情况选择)。
5 初步开发
以上工作完成后,可以进行下一步的开发,在开发代码之前,还有几个问题需要处理:
5.1 SPIFFS文件传输
代码中仍然使用了SPIFFS的文件,需要将文件下载到屏幕上。每个版本的代码中已经设计好了data文件夹,直接启动菜单项,按住复位+KEY0,先松开复位,再松开KEY0,即可进行下载。
注意spiffs下载时,任何串口工具都应该关闭,包括arduino的串口监视器
5.2 字库下载
字库是单独存储在Flash种的,需要使用EPS32 FLASH TOOLS工具烧写。文件分布如下:
fontcn12.bin 0x590000
fontcn8.bin 0x710000
fontcn16.bin 0x390000
fontnum48.bin 0x790000
下载和操作spiffs一样。
(如果直接把代码对应版本的16M的Bin烧录进去,此部分字库即已经烧录进去了,无需本步。)
5.3 代码编辑和烧写
Spiffs和字库烧写完毕后,可以进行代码的开发。开发按照arduino的方式即可。
硬件没有设计自动启动烧写,需要手动按键。按键方式同样和spiffs一样,先按住复位+key0,再松开复位,然后松开KEY0。
6 离线烧写
屏幕固件会以bin文件方式发布,并且打包为16M的存储格式,直接烧写进入芯片FLASH。
烧写方法:
打开Flash Download Tools 操作软件按照下图操作。
点击START后,按住复位+KEY0,松开复位,再松开KEY0,即可进入烧写状态。烧写过程可能持续几分钟。
7 设备操作
7.1 设备配置
设备复位后需要记录ID,为16进制字符串,长度在10-12个字符。请在小程序中添加。
注意,需要先在小程序添加后再进行WIFI配置。否则无法正确获取到数据。
7.2 设备操作
设备操作目前流程尚未固定目前版本(207操作如下)
复位:设备重新启动
KEY0:短按,切换显示选择,长按,未定义。
KEY2: 短按,立刻获取留言和todo信息,并显示。
KEY2:长按,进入WIFI初始化状态。
8 小程序
小程序二维码为:
9 汉字显示
字库处理
UTF8转Unicode 系统内置了8/12/16的全字库和48号的数字字库。
10 图片提取
图片取模方式为横向取模,字节倒序。
11 字库提取
12 一些其他资料
12.1 资源
字体大全
https://www.dafont.com/theme.php ... amp;text=0123456789
12.2 屏幕操作的注意事项
X可以写为非8整位置
Y可以写为非8整位置
更新需要为8的整数倍位置
13 todo 墨水屏的初衷是实现todo的关联
关联todo,需要自行注册todoist的账,使用网页、chrome插件,安卓app或者苹果app的任意一个软件。并且在小程序->我的->todo绑定中,根据提示,获取到todo的token,并复制到下面文本框种(注意,todo的token包括整行字符,包括Bearea字符)
===============网盘资料====================
https://pan.baidu.com/s/1IffNfh15OcE3HVzq0hVtMA
提取码4EPD
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|