字体下载
点阵屏字体下载地址推荐
可以下载到各种尺寸的字体: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");