【得捷电子Follow me第2期】+基于ESP32S3的桌面日历小时钟
[复制链接]
本帖最后由 eew_F8ZXCB 于 2023-11-15 13:15 编辑
~来交作业了~
视频链接https://training.eeworld.com.cn/course/68239
必做任务1:控制屏幕显示中文:
使用了自制程序将中文字转化为hex文件的形式,再转化为VLW格式,最后再用自制程序将hex类型的文件转化成可以被Arduino读取的c++格式的.h头文件。
自制程序来源于b站伊娃老师。
代码部分调用所需要汉字的头文件之后,只需要定位cursor,之后使用println函数输出字符即可。
图片的输出也是同理。鉴于屏幕驱动问题,显示的图像会存在一点点不完全贴边的情况,可以用微调来调整。
必做任务2:网络功能使用
使用ESP32自带的网络功能,通过调用API获得时间,地区,天气等信息。
这是联网和将获取json数据解析所使用的头文件
这是网络(热点)的账号/密码,以及调用的API的网址,不同网站的调用需要key,当然也可以选择自己创建网站。
必做任务3:控制板载LED
这个比较简单,只需要调用几个IO口,然后将板载LED等对应的IO口给予高电压即可解决
必做任务4:我选择的是输出日历时钟,代码如下:
前半部分是联网的代码,在串口可以监测到连接中......的图样,在连接成功是会给与提示,后面的代码则是将json格式的文件转化成容易显示读取的形式,方便阅读。
数据也是来源于API。
总体的心得体会建议:
ESP32这种开发板比较容易使用。我并没有使用circuitPython来进行开发,而是选用了Arduino这个开发工具。我认为各有所长ArduinoIDE能兼容的开发板也算是比较多了。
我简单讲一下我在开发过程中所遇到的问题,以及解决办法:(有些其实很简单,小白刚入门不要嘲笑)
1.环境搭建问题:ArduinoIDE的ESP32S3开发环境无法下载,总是报错。
原因级解决方案:下载地址GitHub国内访问不稳定,需要科学上网或者将其json文件修改一下,详情可以参考这位大佬
https://www.bilibili.com/video/BV1f8411d7WS/?share_source=copy_web
2.tft屏幕的驱动问题:因为我换过屏幕,所以屏幕的排线还需要重新考虑。
原因级解决方案:这里我通过查看屏幕所需要引脚,然后再tft驱动文件的源码里面改一下引脚输出即可。
3.关于图片格式转换:使用的是RGB888格式的文件,主要屏幕分辨率问题,尺寸的设置,DPI的调整,只有这些都匹配的图像才能正确的在LED屏幕上显示。
还有需要注意一下是否反色(这可能影响观感),还有图片定位旋转问题(调错可能导致图片被异常拉扯)
4.API:直接调用网上某个数据中心提供的API,有访问次数显示。要注意联网时一定是2.4GHz的网络才可以识别。特别是手机热点,热点通常有5GHz频段,这个是不识别的。
5.关于总体控制:我是选用了杜邦线代替开关,通过杜邦线的连接与否产生了高低电平,进而控制整个心痛。可以看到系统实际有许多的模块,插入时则会执行对应模块。
这也参考了小灯模块的使用。
最后给一个总图:
|