Obsah:
- Krok 1: Provozní zásady
- Krok 2: Výměna a konfigurace dat MQTT
- Krok 3: Train Controller
- Krok 4: LEGO Train Control
- Krok 5: Dálkový ovladač
- Krok 6: Senzorový ovladač
- Krok 7: Výstupní ovladač
- Krok 8: Raspberry Pi a WiFi router
- Krok 9: Hotové ovladače
Video: Modelování vlaku WiFi ovládání pomocí MQTT: 9 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
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
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
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
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
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č
Ř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č
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č 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
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:
(Velmi jednoduché) Modelování nemocí (pomocí Scratch): 5 kroků
(Velmi jednoduché) Modelování nemocí (pomocí Scratch): Dnes budeme simulovat vypuknutí nemoci, přičemž jde o jakoukoli nemoc, ne nutně COVID-19. Tato simulace byla inspirována videem od 3blue1brown, na které odkazuji. Jelikož se jedná o přetahování, nemůžeme s JS nebo Pyt dělat tolik, kolik můžeme
Ovládejte rozvržení svého modelu vlaku pomocí KLÁVESNICE !: 12 kroků
Ovládejte rozvržení svého modelového vlaku pomocí KEYBOARDU !: V jednom z mých předchozích Instructable jsem vám ukázal, jak můžete ovládat svůj modelový vlak dálkovým ovladačem k televizi. Aktualizovanou verzi si můžete prohlédnout také zde. V tomto Instructable vám ukážu, jak ovládat rozložení modelového vlaku pomocí klávesnice
Ovládání jasu Ovládání LED na základě PWM pomocí tlačítek, Raspberry Pi a Scratch: 8 kroků (s obrázky)
Ovládání jasu Ovládání LED na základě PWM pomocí tlačítek, Raspberry Pi a Scratch: Zkoušel jsem najít způsob, jak vysvětlit, jak PWM funguje u mých studentů, a tak jsem si dal za úkol zkusit ovládat jas LED pomocí 2 tlačítek - jedno tlačítko zvyšuje jas LED a druhé jej stmívá. Programovat
Rádiové ovládání RF 433MHZ pomocí HT12D HT12E - Vytvoření dálkového ovládání RF pomocí HT12E a HT12D s 433 MHz: 5 kroků
Rádiové ovládání RF 433MHZ pomocí HT12D HT12E | Výroba dálkového ovládání RF pomocí HT12E a HT12D s 433 MHz: V tomto návodu vám ukážu, jak vytvořit RADIO dálkové ovládání pomocí přijímače přijímače 433 MHz s kódováním HT12E a IC dekodér HT12D. V tomto instruktážním programu budete moci odesílat a přijímat data pomocí velmi levných KOMPONENTŮ LIKE: HT
Ovládání zařízení pomocí hlasového ovládání pomocí NodeMCU: 7 kroků (s obrázky)
Ovládání zařízení pomocí hlasového ovládání pomocí NodeMCU: Chci jen pozdravit všechny, toto je poprvé, co píšu instruktážní projekt. Angličtina není můj rodný jazyk, takže se pokusím udělat co nejkratší a nejsrozumitelnější. Ovládání zařízení hlasovým příkazem není nic zvláštního