OLED-экран на Raspberry Pi и веб-админка к нему
Маленький SSD1306 на I²C — самый дешёвый способ видеть состояние домашнего сервера, не открывая ноутбук. Но менять экраны через SSH надоело, поэтому сделал админку.
Стек
- Бэкенд: FastAPI +
luma.oled. - Фронт: React + Vite, собирается в статику и отдаётся тем же FastAPI.
- Экраны описываются JSON-ом: текст, иконки, метрики.
from luma.core.interface.serial import i2c
from luma.oled.device import ssd1306
device = ssd1306(i2c(port=1, address=0x3C))
Грабли
Шрифты с кириллицей нужно грузить явно, иначе вместо текста квадраты. И не забывайте про выгорание: раз в минуту сдвигайте изображение на пиксель.