Obsah:

Modelování vlaku WiFi ovládání pomocí MQTT: 9 kroků
Modelování vlaku WiFi ovládání pomocí MQTT: 9 kroků

Video: Modelování vlaku WiFi ovládání pomocí MQTT: 9 kroků

Video: Modelování vlaku WiFi ovládání pomocí MQTT: 9 kroků
Video: Videonávod: Řešení ovládacího pultu na digitálním kolejišti s centrálou TCS a modulem TCO 2024, Listopad
Anonim
Modelovat ovládání WiFi pomocí MQTT
Modelovat ovládání WiFi pomocí MQTT

Díky starému modelovému systému vlaku v měřítku TT jsem měl nápad, jak ovládat lokomotivy jednotlivě.

S ohledem na to jsem šel o krok dále a zjistil, co je potřeba nejen k ovládání vlaků, ale také k získání dalších informací o celém uspořádání a ovládání něčeho jiného (lampy, železniční výhybky …)

Tak se rodí modelový vlakový systém řízený WiFi.

Krok 1: Provozní zásady

Operační zásady
Operační zásady

Hlavní zásadou je ovládat každý prvek jednotlivě, buď z jednoho ovladače, nebo z více zdrojů ovládání. To ze své podstaty vyžaduje společnou fyzickou vrstvu - nejzjevněji WiFi - a společný komunikační protokol MQTT.

Ústředním prvkem je makléř MQTT. Každé připojené zařízení (vlak, senzor, výstup …) smí komunikovat pouze prostřednictvím Zprostředkovatele a může přijímat pouze data od Zprostředkovatele.

Srdcem zařízení je WiFi řadič založený na ESP8266, zatímco broker MQTT běží na Raspberry pi.

Pokrytí Wifi je nejprve zajištěno routerem WiFi a vše je připojeno bezdrátově.

Existují 4 typy zařízení:

- Řadič vlaku: má 2 digitální vstupy, 1 digitální výstup, 2 výstupy PWM (pro ovládání 2 samostatných stejnosměrných motorů), - Senzorový ovladač: má 7 digitálních vstupů (pro vstupní spínače, optosenzory …), - Regulátor výstupu: má 8 digitálních výstupů (pro kolejové výhybky …), - Dálkové ovládání WiFi: má 1 přírůstkový vstup kodéru, 1 digitální vstup (pro dálkové ovládání vlaků).

Systém je také schopen pracovat z Node-Red (z tabletu, PC nebo smartphonu …).

Krok 2: Výměna a konfigurace dat MQTT

Výměna a konfigurace dat MQTT
Výměna a konfigurace dat MQTT

Na základě protokolu MQTT se nejprve každé zařízení přihlásí k danému tématu a může publikovat na jiné téma. Toto je základ komunikace sítě řízení vlaku.

Tyto komunikační příběhy jsou umístěny ve zprávách ve formátu JSON, aby byly krátké a lidsky čitelné.

Pohled z dálky: Síť má WiFi router s vlastním SSID (název sítě) a heslem. Každé zařízení musí tyto 2 znát, aby mělo přístup k síti WiFi. Broker MQTT je také součástí této sítě, takže aby bylo možné používat protokol MQTT, musí každé zařízení znát IP adresu brokera. A nakonec každé zařízení má své vlastní téma pro předplatné a publikování zpráv.

Prakticky daný dálkový ovladač používá stejné téma k publikování zpráv, ke kterým je daný vlak přihlášen.

Krok 3: Train Controller

Vlakový kontrolor
Vlakový kontrolor

Abychom mohli ovládat vláček, potřebujeme v zásadě 3 věci: napájecí zdroj, ovladač s podporou WiFi a elektroniku řidiče motoru.

Napájení závisí na skutečném plánu použití: v případě LEGO je to box na baterie Power Functions, v případě vlakové soupravy „oldschool“v měřítku TT nebo H0 je to napájení 12V na trati.

Ovladač s podporou WiFi je ovladač Wemos D1 mini (na bázi ESP8266).

Elektronika ovladače motoru je modul založený na TB6612.

Řadič vlaku má 2 individuálně ovládané výstupy PWM. Akutálně jeden slouží k ovládání motoru a druhý slouží ke světelné signalizaci. Má 2 vstupy pro snímání jazýčkových kontaktů a jeden digitální výstup.

Řadič přijímá zprávy JSON prostřednictvím protokolu WiFi a MQTT.

SPD1 ovládá motor, například: {"SPD1": -204} zpráva se používá k posunutí motoru zpět při 80% výkonu (maximální hodnota otáček je -255).

SPD2 ovládá intenzitu světla LED „citlivého na směr“: Zpráva {„SPD2“: -255} rozsvítí (zpětně) LED na plný výkon.

OUT1 ovládá stav digitálního výstupu: {"OUT1": 1} zapíná výstup.

Pokud se změní stav vstupu, ovladač odešle zprávu podle něj: {"IN1": 1}

Pokud správce obdrží platnou zprávu, provede ji a poskytne zpětnou vazbu brokerovi. Zpětná vazba je skutečně provedený příkaz. Například: pokud broker odešle {"SPD1": 280}, pak motor pracuje na plný výkon, ale zpráva se zpětnou vazbou bude: {"SPD1": 255}

Krok 4: LEGO Train Control

LEGO Train Control
LEGO Train Control

V případě vlaku LEGO jsou schémata trochu odlišná.

Napájení pochází přímo z bateriového boxu.

Existuje potřeba mini krokového převodníku, který by poskytoval 3,5 V pro desku Lolin na bázi ESP8266.

Spojení jsou provedena pomocí prodlužovacího drátu LEGO 8886, rozříznutého na polovinu.

Krok 5: Dálkový ovladač

Dálkový ovladač
Dálkový ovladač

Řadič pouze zveřejňuje zprávy vlaku (definované přepínačem BCD).

Otočením kodéru dálkový ovladač odešle zprávy {{SPD1 ":"+"} nebo {" SPD1 ":"-"}.

Když vlak obdrží tuto zprávu „přírůstkový typ“, změní svou výstupní hodnotu PWM o 51 nebo -51.

Tímto způsobem může dálkový ovladač měnit rychlost vlaku v 5 krocích (každý směr).

Stisknutím inkrementálního kodéru odešlete {"SPD1": 0}.

Krok 6: Senzorový ovladač

Senzorový ovladač
Senzorový ovladač

Takzvaný senzorový senzor měří stavy svých vstupů a pokud se některý z nich změní, zveřejní tuto hodnotu.

Například: {"IN1": 0, "IN6": 1} v tomto příkladu 2 vstupy změnily stav současně.

Krok 7: Výstupní ovladač

Výstupní ovladač
Výstupní ovladač

Výstupní ovladač má 8 digitálních výstupů, které jsou připojeny k modulu založenému na ULN2803.

Přijímá zprávy prostřednictvím svého předplatného tématu.

Například zpráva {"OUT4": 1, "OUT7": 1} zapne 4. a 7. digitální výstup.

Krok 8: Raspberry Pi a WiFi router

Měl jsem použitý router Wi-Fi TP-Link, takže jsem to použil jako přístupový bod.

Broker MQTT je Raspberry Pi s nainstalovaným Mosquitto.

Používám standardní Raspbian OS s MQTT integrovaným s:

sudo apt-get install mosquitto mosquitto-clients python-mosquitto

Router TP-Link musí být nakonfigurován tak, aby měl rezervaci adresy pro Raspberry, takže po každém restartu má Pi stejnou IP adresu a může se k němu připojit každé zařízení.

A to je vše!

Krok 9: Hotové ovladače

Hotové ovladače
Hotové ovladače
Hotové ovladače
Hotové ovladače

Zde jsou hotové ovladače.

Loko v měřítku TT má tak malé rozměry, že desku Lolin bylo nutné zúžit (nařezat), aby byla dostatečně malá, aby se vešla do vlaku.

Zkompilované binární soubory lze stáhnout. Z bezpečnostních důvodů bylo rozšíření přihrádky nahrazeno txt.

Doporučuje: