数码之家

 找回密码
 立即注册
搜索
查看: 1520|回复: 0

[Arduino] 合宙 TFT 显示天气图标

[复制链接]
发表于 2023-7-19 23:45:07 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 kpj001 于 2023-7-19 23:51 编辑

1.jpg

一直以来,我是比较反感在单片机弱鸡的内存上折腾字库的,所以往往避开汉字显示这些麻烦。

不过偶然发现这个字体 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 文件。不想自己做的可以下载附件,包含示例及字库。

  1. #include "meteocons40.h"
  2. #include <TFT_eSPI.h>
  3. TFT_eSPI tft = TFT_eSPI();

  4. void setup(){
  5.   tft.init();
  6.   tft.setRotation(1);                       // 0=默认排针向上 1=逆时针转90°
  7.   tft.fillScreen(TFT_RED);
  8.   tft.fillRect(2, 2, 156, 124, TFT_BLACK);  // 画个红框
  9.   
  10.   tft.loadFont(meteocons40);                // 加载自定义字体,即天气图标
  11.   tft.setCursor(0,0);
  12.   tft.setTextColor(TFT_GREEN);
  13.   tft.print("ABCDEFGHIJKM");                // 部分大写字母自动“翻译”为图标
  14.   tft.unloadFont();                         // 卸载字体,用回系统默认字体
  15.   
  16.   tft.setTextSize(3);
  17.   tft.setTextColor(TFT_RED);
  18.   tft.drawString("ABCD",40,30);             // 测试下默认字体的显示
  19.   //tft.fillScreen(TFT_BLACK);              // 清屏,准备干活了
  20. }

  21. void loop(){               
  22. }
复制代码

实验二, 在线获取天气预报及图标信息

待更新

sample.zip (22.67 KB, 下载次数: 0)











您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-29 21:13 , Processed in 0.202801 second(s), 14 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表