设计了一个带有GC9A01圆形TFT显示屏的ESP32
扫描二维码
随时随地手机看文章
这篇文章是关于一个复古风格的手表的实现,它是基于ESP32微控制器。
你喜欢复古风格的小玩意,想在你的手腕上展示一个迷你的圆形显示器吗?这个项目重新设计了一个带有GC9A01圆形TFT显示屏的ESP32,创造了一个时尚的表盘。它具有紧凑的设计,定制的3d打印外壳,以及可以为您自己的表盘设计定制的开源代码。
将GC9A01连接到ESP32
GC9A01圆形TFT通常有以下引脚(检查您的显示模块以确认标签):
•VCC -> 3.3v
•GND -> GND
•SCL (SCK) -> SPI时钟引脚(ESP32上通常为GPIO18)
•SDA (MOSI) -> SPI MOSI引脚(通常为GPIO23)
•RES ->复位引脚(任何空闲的GPIO,例如GPIO4)
•DC ->数据/命令引脚(任何空闲的GPIO,例如GPIO2)
•CS ->芯片选择(任何空闲的GPIO,例如GPIO5)
•BLK / LED -> 3.3V或GPIO如果你想软件控制背光
仔细连接每个引脚。对于SPI线(SCK, MOSI, CS),使用ESP32上的硬件SPI引脚或调整代码以匹配您选择的引脚。显示器的背光(BLK或LED)可以直接连接到3.3V或由GPIO驱动,如果你想以编程方式关闭它。
准备Arduino IDE
如果您是第一次使用ESP32编程,请将以下链接复制到file -> Preferences -> Additional Boards Manager下的Arduino IDE。
并在单板管理中安装ESP32包。
注意:要使这个项目工作,您需要使用board版本2.x。在版本3及以上的版本中,它将无法工作
闪烁单板,选择“ESP32S2 DEV Module”。按住“0”键并按复位键一次。这使得板在引导模式和COM端口应该是可见的。
接下来,您需要安装TFT_eSPI库,这只需在库管理器中搜索“TFT_eSPI”即可完成。
如果安装了库,则只能调整库目录(SketchBook目录/libraries/TFT_eSPI/user_setup.h)下显示驱动程序的user_setup.h文件。
首先复制现有的user_setup.h,删除内容并将以下行复制到文件中:
代码:
首先,我们绑定SPI通信、TFT显示和网络连接所需的库:
接下来我们定义一些变量,这些变量包含手表中心的位置,以及时间(小时、分钟、秒)和其他配置,例如NTP服务器的地址。需要PI值来计算指针在圆中的位置,因为指针的坐标在圆路径上运行。常量SSID和密码必须更改为您的网络访问数据。
在setup()中建立WiFi连接,并使用NTP服务器调用时间。然后绘制表盘。
为了使时钟形象化,当然,我们还必须创建一个带有小时标记的表盘。在这里,我们在表盘上绘制小时标记(1到12)。这是通过基于圆几何计算每个点的X和Y坐标来完成的。
现在是实际的时钟指针,它是根据当前时间显示的。draw_hour()和draw_minute()方法绘制钟面上的时针和分针。mode参数决定是绘制手还是删除手。
秒针的显示略有不同——是一个小圆圈。
date()方法的作用是:根据时针在中心点上方或下方的位置显示当前日期。
在loop()函数中,时间会不断更新,指针也会相应地重新绘制。首先,删除之前的指针位置,以避免删除整个显示。然后显示当前时间。
在loop()函数中,时间会不断更新,指针也会相应地重新绘制。首先,删除之前的指针位置,以避免删除整个显示。然后显示当前时间。
当然,该项目也可以焊接在电路板上长期运行或安装在3D打印的房屋中,这里没有限制的创造力。此外,顺时针的颜色可以很容易地改变,或者显示其他信息而不是时间。由于需要通过Internet查询NTP时间服务器的时间是否同步,因此需要有2.4GHz的无线局域网连接。
本文编译自hackster.io