|
本帖最后由 kpj001 于 2023-7-19 23:51 编辑
一直以来,我是比较反感在单片机弱鸡的内存上折腾字库的,所以往往避开汉字显示这些麻烦。
不过偶然发现这个字体 meteocons,配合某些平台可以返回的天气信息,那么就能快速解决天气预报的显示。
当然,已经有很多开源的项目实现了,不过限于硬件的选择,移植到其他硬件组合遇到些麻烦。
理解 meteocons这个图标字体,就能实现随心所欲的在任何单片机上的天气图标显示。
这里说的单片机还是需要内存大一些,带有网络功能的。
实验一,在 TFT 上显示天气图标
硬件:
ESP32-C3 合宙9.9元
1.8‘ TFT(ST7735S) 合宙9.9元
这两个模块的插接
软件:
arduino IDE 1.8.19
TFT_eSPI (点击查看库的配置,比较坑)
meteocons40.h
meteocons.h 来源于 https://www.alessioatzeni.com/meteocons/ 这个网站下载的 TTF 字体, 用 TFT_eSPI 库里面带的字体转换工具自己制作对应字号的 .h 文件。不想自己做的可以下载附件,包含示例及字库。
- #include "meteocons40.h"
- #include <TFT_eSPI.h>
- TFT_eSPI tft = TFT_eSPI();
-
- void setup(){
- tft.init();
- tft.setRotation(1); // 0=默认排针向上 1=逆时针转90°
- tft.fillScreen(TFT_RED);
- tft.fillRect(2, 2, 156, 124, TFT_BLACK); // 画个红框
-
- tft.loadFont(meteocons40); // 加载自定义字体,即天气图标
- tft.setCursor(0,0);
- tft.setTextColor(TFT_GREEN);
- tft.print("ABCDEFGHIJKM"); // 部分大写字母自动“翻译”为图标
- tft.unloadFont(); // 卸载字体,用回系统默认字体
-
- tft.setTextSize(3);
- tft.setTextColor(TFT_RED);
- tft.drawString("ABCD",40,30); // 测试下默认字体的显示
- //tft.fillScreen(TFT_BLACK); // 清屏,准备干活了
- }
-
- void loop(){
- }
复制代码
实验二, 在线获取天气预报及图标信息
待更新
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|