ESPHOME Fonts字体组件

字体下载

点阵屏字体下载地址推荐
可以下载到各种尺寸的字体:dafont

Note

字体单位pt与px

pt:指印刷行业中的一个打印单位(point)
px:像素(pixel)

ESPHome可以选择使用任何TrueType (.ttf)字体文件在任何大小,以及固定大小的PCF和BDF位图字体!

要使用字体,首先必须在您的ESPHome配置文件中定义一个字体对象。只需从互联网上的某个地方获取。.ttf.pcf.bdf文件,并将其放置在配置文件旁边的字体文件夹中。

创建字体对象

font:
  - file: "fonts/Comic Sans MS.ttf"
    id: my_font
    size: 20

  # gfonts://family[@weight]
  - file: "gfonts://Roboto"
    id: roboto
    size: 20

  - file:
      type: gfonts
      family: Roboto
      weight: 900
    id: font2
    size: 16

  - file: "fonts/tom-thumb.bdf"
    id: tomthumb
  • file (必须): 字体文件的路径(相对于.yaml文件所在的位置)。你可以使用gfonts://短格式来使用谷歌字体,或者使用下面的结构:
    • type (必须, string): 可以是gfonts或local。
    • Google Fonts: 每个谷歌字体将下载一次并缓存以备将来使用。
      • family (必须, string): 谷歌字体家族的名称。
      • weight (可选, enum): 字体的粗细。可以是文本名称或整数值:
        • thin: 100
        • extra-light: 200
        • light: 300
        • regular: 400 (default)
        • medium: 500
        • semi-bold: 600
        • bold: 700
        • extra-bold: 800
        • black: 900
      • italic (可选, boolean): 字体是否应该是斜体。
    • Local Fonts:
      • path (必须, string): TrueType或位图字体文件的路径(相对于.yaml文件所在的位置)。
  • id (必须, ID): 稍后在显示代码中可以引用该字体的ID。
  • size (可选, int): 字体的大小,单位是pt(不是像素!)如果要使用不同大小的相同字体,请创建两个字体对象。注意:位图字体忽略大小。默认为20。
  • glyphs (可选, list): 您计划使用的字符列表。只有您在这里指定的字符才会被编译成二进制文件。如果您需要一些特殊字符,或者如果您不打算使用某些字形,则希望减少二进制文件的大小,请调整此值。例如,如果您想使用字体连接,列表中的项目也可以超过一个字符长。 默认为 !"%()+=,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz

OLED demo

demo中使用的字体为8px字体。
OLED的配置说明请参考 ESPHOME_驱动OLED显示时间


font:
  - file:
      type: gfonts
      family: Roboto
      weight: 400
    id: my_gfont
    size: 32

  - file: "fonts/pixelmix.ttf"
    id: my_pixelmix8
    size: 8

  - file: "fonts/pixelmix.ttf"
    id: my_pixelmix32
    size: 32

  - file: "fonts/pixelmix_bold.ttf"
    id: my_pixelmix_bold8
    size: 8
  - file: "fonts/pixelmix_bold.ttf"
    id: my_pixelmix_bold32
    size: 32


i2c:   # 配置I2C接口信息
  sda: GPIO2
  scl: GPIO14
  frequency: 400k

display:
  - platform: ssd1306_i2c
    id: my_oled
    model: "SSD1306 128x64"
    address: 0x3C
    lambda: |-
      it.print(0, 0, id(my_pixelmix8), "AB");
      it.print(64, 0, id(my_pixelmix32), "AB");
      it.print(0, 32, id(my_pixelmix_bold8), "AB");
      it.print(32, 32, id(my_pixelmix_bold32), "AB");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌新程序猿~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值