Zpět na domů

Integrace vintage displeje do chytrého domu | ESP8266 a MQTT

Článek popisuje proces adaptace vintage pokladního displeje Wincor Nixdorf BA64-2 pro použití v systémech chytrého domu. Podrobně jsou rozebrány hardwarová modifikace, softwarová realizace na ESP8266 a integrace s MQTT brokerem. Řešení umožňuje vypsat kritická data bez neustálého přístupu k hlavnímu rozhraní.

Vintage pokladní displej ožívá v chytrém domě: krok za krokem integrace
Advertisement 728x90

# 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í:

Google AdInline article slot
  • 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.

Google AdInline article slot

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:

Google AdInline article slot
#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

Advertisement 728x90

Číst dál