# Vintage pokladní displej v chytrém domě: integrace s ESP8266 a MQTT
Vintage plynové výbojové displeje z pokladních terminálů jsou ideálním materiálem pro vytvoření kompaktních informačních panelů v systémech chytré domácnosti. V tomto článku podrobně probereme adaptaci displeje Wincor Nixdorf BA64-2 pro ovládání přes ESP8266 s integrací NTP-synchronizace a MQTT rozhraní. Toto řešení umožňuje zobrazovat kriticky důležitá data bez neustálého přístupu k hlavnímu rozhraní.
Analýza hardwarové části a pinout
Displej Wincor Nixdorf BA64-2 představuje dvouřádkový plynový výbojový indikátor (20×2 znaků) v kompaktním pouzdře. Klíčová složitost spočívá v absenci dokumentace k nestandardnímu konektoru RJ45. Při prvním prohlédnutí byly zjištěny následující vlastnosti:
- Konektor je fyzicky kompatibilní s Ethernetem, ale elektricky neodpovídá standardu
- Podpora dvou rozhraní: USB a RS232 přes jeden konektor
- Absence označení kontaktů v datasheetu
Po rozebrání zařízení a analýze desky voltmetrem bylo určeno zapojení:
- Pin 1: +5V (napájení)
- Pin 4: GND
- Piny 2-3: USB Data±
- Piny 6-8: RS232 signály (TxD/RxD)
Je kriticky důležité zkontrolovat napětí multimětrem před připojením, protože standardní adaptéry mohou zařízení poškodit. Osciloskop potvrdil přítomnost úrovní RS232 (-7/+7 V) na pinech 6 a 8.
Modifikace pro přímé TTL-Serial připojení
Na desce byla nalezena mikroschema ADM3232E – převodník TTL-RS232. Její odstranění otevírá přístup k nativnímu TTL-Serial rozhraní, což usnadňuje integraci s moderními řídícími moduly. Postup prací:
- Demontujte mikroschematu pomocí tepelného vzduchu při 350 °C
- Vyčistěte kontaktní plochy od zbytků páječky
- Identifikujte linky R2out/T2in (hlavní kanál přenosu)
- Připojte vodiče k kontaktům: VCC (3.3 V), GND, TX, RX
- Zafixujte spoje termoklejem
Přímé připojení k TTL-Serial eliminuje potřebu převodníků úrovní. Upozornění: displej funguje na 3.3 V, proto musí napájení odpovídat. Pro stabilní chod je nutné zpoždění 4 ms mezi odesíláním bajtů – to kompenzuje nízkou rychlost zpracování dat na straně displeje.
Příklad zpracování dat:
bool outs = false;
void outString(char * buf, int length){
if(outs) return;
outs = true;
for(int i=0; i< length; i++){
Serial.write(buf[i]);
delay(4);
}
outs = false;
}
Programová realizace a integrace
Firmware na bázi Arduino Framework realizuje tři klíčové funkce: připojení k Wi-Fi, MQTT klient a NTP synchronizaci. Architektura zahrnuje:
- Automatické přepínání mezi režimy (hodiny/informační zpráva)
- Zpracování escape sekvencí pro ovládání kurzoru
- Podporu UTF-8 znaků (včetně °C)
Hlavní komponenty kódu:
#define CLEAR_SCREEN "\x1B[2J"
#define LINE1_0 "\x1B[1;0H"
#define INFO_PERIOD 60000
void drawClock(){
time_t dtm = time(nullptr) + 10800; // UTC+3
DateTime now = DateTime(dtm);
char buf[21];
sprintf(buf, "\x1B[1;0H%02d.%02d.%04d %02d:%02d:%02d",
now.day(), now.month(), now.year(),
now.hour(), now.minute(), now.second());
outString(buf, strlen(buf));
}
void msg_callback(char* topic, byte* payload, unsigned int length){
if(!strncmp((char *)payload, "line1 ", 6)){
clock_mode = false;
info_timer = millis();
outString(LINE1_0, strlen(LINE1_0));
outString((char*)&payload[6], length - 6);
}
}
Synchronizace času probíhá přes lokální NTP server. Při startu systém čeká na získání času po dobu 4 sekund:
void TimeSetup(){
configTime(0, 0, "ntpserver.home");
int cnt = 4;
while (!time(nullptr) && cnt > 0) {
delay(1000);
cnt--;
}
}
Režim informační zprávy se automaticky ukončí po 60 sekundách a vrátí zobrazení k hodinám. To zabraňuje blokování hlavního rozhraní.
Praktické využití v systémech chytré domácnosti
Integrace displeje do stávajících ekosystémů řeší dvě úlohy:
- Rychlý monitoring kritických parametrů – teplota kotle, vlhkost v sklepě, stav solárních panelů
- Upozornění bez smartphonu – zobrazení systémových zpráv („Únik plynu“, „Brána otevřená")
Příklad použití pro sledování teploty:
mosquitto_pub -h localhost -t "ba64/line1" -m "kotel 63.28/55.43\xC2\xB0C"
Systém je škálovatelný: více displejů může zobrazovat různé informace přihlašováním k odpovídajícím tématům. Pro rozšíření funkcionality stačí upravit obsluhu MQTT zpráv a přidat podporu nových příkazů.
Co je důležité
- Kontrola napětí je povinná: před připojením změřte všechny kontakty – standardní adaptéry mohou displej poškodit.
- Zpoždění přenosu je klíčové: bez delay(4) mezi bajty dochází ke ztrátě dat kvůli rozdílné rychlosti zpracování.
- OTA aktualizace – nutnost: nechte možnost přeprogramování bez fyzického přístupu k zařízení.
- Escape sekvence: používejte řídicí kódy z datasheetu pro přesné pozicování kurzoru.
- Lokální NTP server: externí servery mohou být nedostupné, což naruší chod hodin.
— Editorial Team
Zatím žádné komentáře.