Volumio3 zásuvný modul pre podsvietenie LCD
Návštevy: 59
Zásuvný modul pre Volumio 3 pre automatické ovládanie podsvietenia LCD na základe úrovne okolitého osvetlenia pomocou svetelného senzora VEML7700.

Tento zásuvný modul automaticky upravuje jas LCD displejov s ovládaním podsvietenia na základe podmienok okolitého osvetlenia. Používa senzor okolitého osvetlenia VEML7700 na meranie úrovne luxov a dynamicky upravuje jas displeja pre optimálne zobrazenie v akomkoľvek svetelnom prostredí.
Funkcie
- Automatická kontrola jasu: Upravuje podsvietenie LCD na základe údajov zo senzora VEML7700
- Konfigurovateľný rozsah jasu: Nastavte minimálne a maximálne úrovne jasu podľa vašich preferencií
- Plynulé prechody: Nastaviteľný faktor vyhladenia pre postupné zmeny jasu
- Prispôsobiteľná kalibrácia senzora: Dolaďte odozvu senzora pomocou multiplikátora luxov
- Flexibilný interval merania: Konfigurujte, ako často senzor číta okolité osvetlenie (0,1 - 10 sekúnd)
- Podpora viacerých jazykov: Zahŕňa angličtinu a všetky preklady podporované systémom Volumio (de, fr, pl, cz, ...)
Hardvérové komponenty
| Komponent | Model/Typ | Popis |
| Hlavná jednotka |
Raspberry Pi 3B+ |
Riadiaca jednotka |
| Displej |
7" LCD DPI (OFI009) |
Dotykový displej pripojený cez DPI rozhranie |
| Enkodér |
KY-040 |
Otočný enkodér na ovládanie hlasitosti |
| Svetelný senzor |
VEML7700 (BH-014PA) |
16-bit I2C senzor okolitého osvetlenia |
Schéma zapojenia
I2C zbernica (senzor VEML7700)
Raspberry Pi 3B+ VEML7700 (WL7700)
───────────────── ──────────────────
Pin 1 (3.3V) ──────── Pin 5 (+3.3V)
Pin 3 (GPIO 2) ──────── Pin 2 (SDA)
Pin 5 (GPIO 3) ──────── Pin 1 (SCL)
Pin 6 (GND) ──────── Pin 4 (GND)
Referencia GPIO pinov
+-----+-----+---------+------+---+---Pi 3B+-+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| | | 3.3v | | | 1 || 2 | | | 5v | | |
| 2 | 8 | SDA.1 | ALT0 | 1 | 3 || 4 | | | 5v | | |
| 3 | 9 | SCL.1 | ALT0 | 1 | 5 || 6 | | | 0v | | |
| 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 1 | IN | TxD | 15 | 14 |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
Otočný enkodér (KY-040)
- CLK: GPIO pin (BCM číslovanie z
gpio readall)
- DT: GPIO pin (BCM číslovanie)
- SW: GPIO pin (tlačidlo)
- +: 3.3V
- GND: Zem
Poznámka: Nakonfigurujte piny enkodéra vo Volumio zásuvnom module Rotary Encoder pomocou BCM čísel pinov.
Pre správne fungovanie zásuvného modulu nie je potrebné pripojenie KY-040 otočného enkodéra.
Pripojenie displeja
- Napájanie: +5V a GND z konektora X1
- DPI signály: Pripojené podľa konfigurácie DPI v
/boot/config.txt
Inštalácia
- Manuálna inštalácia zásuvný modulu
- ak to tak nie je, je potrebné zmazať súbor /data/configuration/plugins.json a reštartovať volumio príkazom
volumio vrestart
- Automatická inštalácia , nainštalujte zásuvný modul cez webové rozhranie Volumia (zatiaľ nedostupné):
- Prejdite na zásuvné moduly → Inštalovať zásuvný modul
- Vyhľadajte "LCD Backlight Control" alebo nahrajte balík zásuvný modulu
Inštalačný skript vykoná:
- Inštaláciu Python závislostí (
python3-smbus)
- Kopírovanie Python ovládacieho skriptu do
/usr/local/bin/
- Vytvorenie konfiguračného adresára na
/etc/lcd_backlight/
- Inštaláciu a povolenie systemd služby
- Nastavenie príslušných oprávnení
Konfigurácia
Prístup k nastaveniam zásuvneho modulu cez webové rozhranie Volumia pod zásuvné moduly → LCD Backlight Control tlačidlo Settings.
Dostupné nastavenia
Interval merania
- Rozsah: 0,1 - 10 sekúnd
- Predvolené: 1 sekunda
- Popis: Čas medzi meraniami svetelného senzora. Nižšie hodnoty poskytujú citlivejšie zmeny jasu, ale môžu zvýšiť využitie CPU.
Minimálny jas
- Rozsah: 0 - 255
- Predvolené: 12
- Popis: Najnižšia úroveň jasu, ktorej displej dosiahne. Zabraňuje prílišnému stmaveniu alebo úplnému vypnutiu obrazovky.
Maximálny jas
- Rozsah: 0 - 255
- Predvolené: 255
- Popis: Najvyššia úroveň jasu, ktorej displej dosiahne. Môže byť znížená na úsporu energie alebo obmedzenie maximálneho jasu.
Lux multiplikátor
- Rozsah: 0,01 - 10
- Predvolené: 0,75
- Popis: Kalibračný multiplikátor pre senzor VEML7700. Zvýšte pre svetlejšiu odozvu na okolité osvetlenie, znížte pre tmavšiu odozvu. Použite na doladenie citlivosti senzora na vaše prostredie.
Faktor vyhladenia
- Rozsah: 0,0 - 1,0
- Predvolené: 0,3
- Popis: Ovláda rýchlosť prechodov jasu. Nižšie hodnoty vytvárajú pomalšie, plynulejšie prechody. Vyššie hodnoty robia zmeny jasu okamžitejšími a citlivejšími.
Technické detaily
Štruktúra súborov
lcd_backlight/
├── index.js # Hlavný ovládač pluginu
├── backlight_control.py # Python skript pre hardvérové ovládanie
├── lcd_backlight.service # Systemd služba
├── install.sh # Inštalačný skript
├── uninstall.sh # Odinštalačný skript
├── UIConfig.json # Konfigurácia webového rozhrania
├── package.json # Metadáta pluginu
└── i18n/ # Preklady
├── strings_en.json # Anglické reťazce
└── strings_sk.json # Slovenské reťazce
/usr/local/bin/
└── backlight_control.py # Hlavný Python skript
Konfiguračné súbory
Zásuvný modul ukladá konfiguráciu na dvoch miestach:
1. Trvalá konfigurácia
/data/plugins/system_hardware/lcd_backlight/config.json
- Ukladá všetky nastavenia zásuvného modulu
- Spravovaná konfiguračným systémom Volumia
2. Konfigurácia pre beh
/etc/lcd_backlight/
- Individuálne súbory pre každé nastavenie (napr.
lcd_enabled, lcd_int_time)
- Číta Python ovládací skript
- Umožňuje aktualizácie konfigurácie v reálnom čase bez reštartovania služby
Správa služieb
Zásuvný modul používa systemd službu (lcd_backlight.service), ktorá:
- Spúšťa Python ovládací skript ako démon
- Automaticky sa štartuje pri bootovaní, keď je zásuvný modul povolený
- Automaticky sa reštartuje pri zlyhaní
- Zaznamenáva do systemd denníka
Príklad výstupu logov
Pre účely ladenia odkomentujte dva riadky 294 - 295 v backlight_control.py:
# Odkomentujte pre ladenie
# if success:
# print(f"[{time.strftime('%H:%M:%S')}] Lux: {lux:6.1f} | Brightness: {self.current_brightness:3d}/{self.max_backlight}")
Výstup konzoly bude:
[12:34:56] Lux: 245.3 | Brightness: 145/255
[12:34:57] Lux: 248.1 | Brightness: 147/255
[12:34:58] Lux: 251.7 | Brightness: 149/255
Riešenie problémov
Zásuvný modul sa nespustí
- Skontrolujte, či je senzor VEML7700 správne pripojený cez I²C
- Overte, či je I²C povolený vo vašom systéme (
sudo i2cdetect -y 1)
- Skontrolujte stav systemd služby:
systemctl status lcd_backlight.service
- Skontrolujte logy:
journalctl -u lcd_backlight.service -f
Jas sa nemení
- Overte existenciu zariadenia podsvietenia:
ls /sys/class/backlight/
- Skontrolujte konfiguračné súbory v
/etc/lcd_backlight/
- Uistite sa, že
lcd_enabled je nastavené na 1
- Otestujte merania senzora manuálne
Jas sa mení príliš rýchlo/pomaly
- Upravte nastavenie Faktor vyhladenia
- Nižšie hodnoty = pomalšie prechody
- Vyššie hodnoty = rýchlejšie prechody
Displej príliš svetlý/tmavý
- Upravte Lux multiplikátor pre kalibráciu odozvy senzora
- Upravte rozsahy Minimálny jas a Maximálny jas
- Otestujte v rôznych svetelných podmienkach
Odinštalovanie
zásuvný modul je možné odinštalovať cez webové rozhranie Volumia. Proces odinštalovania:
- Zastaví a zakáže systemd službu
- Odstráni súbor služby
- Odstráni Python ovládací skript
- Vyčistí konfiguračné súbory