Model vlaka Wi -Fi nadzor z uporabo MQTT: 9 korakov
Model vlaka Wi -Fi nadzor z uporabo MQTT: 9 korakov
Anonim
Modeliranje upravljanja vlaka WiFi z uporabo MQTT
Modeliranje upravljanja vlaka WiFi z uporabo MQTT

Ob starem sistemu modelov vlakov na lestvici TT sem imel idejo, kako posamezno nadzorovati lokomotive.

S tem v mislih sem šel še korak dlje in ugotovil, kaj je potrebno ne le za nadzor vlakov, ampak tudi za dodatne informacije o celotni postavitvi in nadzoru česa drugega (svetilke, železniška stikala …)

Tako se rodi modelni sistem vlakov z nadzorom WiFi.

1. korak: Načela delovanja

Načela delovanja
Načela delovanja

Glavno načelo je krmiljenje vsakega elementa posebej, bodisi iz enega samega krmilnika bodisi iz več krmilnih virov. Ta sama po sebi potrebuje skupno fizično plast - najbolj očitno WiFi - in skupni komunikacijski protokol, MQTT.

Osrednji element je posrednik MQTT. Vsaka povezana naprava (vlak, senzor, izhod …) lahko komunicira samo prek posrednika in lahko sprejema le podatke od posrednika.

Srce naprav je krmilnik WiFi na osnovi ESP8266, posrednik MQTT pa deluje na Raspberry pi.

Sprva Wi -Fi pokriva usmerjevalnik WiFi, vse pa je povezano prek brezžične povezave.

Obstajajo 4 vrste naprav:

- Krmilnik vlaka: ima 2 digitalna vhoda, 1 digitalni izhod, 2 izhoda PWM (za krmiljenje 2 posameznih enosmernih motorjev), - Senzorski krmilnik: ima 7 digitalnih vhodov (za vhodna stikala, optosenzorje …), - Izhodni krmilnik: ima 8 digitalnih izhodov (za železniška stikala …), - Daljinski upravljalnik WiFi: ima 1 inkrementalni vhod za kodirnik, 1 digitalni vhod (za daljinsko upravljanje vlakov).

Sistem lahko deluje tudi z Node-Red (iz tabličnega računalnika, računalnika ali pametnega telefona …).

2. korak: izmenjava in konfiguracija podatkov MQTT

Izmenjava in konfiguracija podatkov MQTT
Izmenjava in konfiguracija podatkov MQTT

Na podlagi protokola MQTT se najprej vsaka naprava naroči na določeno temo in lahko objavi v drugi temi. To je osnova komunikacije omrežja za nadzor vlakov.

Te komunikacijske zgodbe so zapisane prek sporočil v obliki JSON in so kratka in berljiva za ljudi.

Če pogledamo z daljše perspektive: omrežje ima usmerjevalnik WiFi z lastnim SSID (ime omrežja) in geslom. Za dostop do omrežja WiFi mora vsaka naprava poznati ta dva. Posrednik MQTT je tudi del tega omrežja, zato mora vsaka naprava za uporabo protokola MQTT poznati IP -naslov posrednika. In nazadnje ima vsaka naprava svojo temo za naročanje in objavo sporočil.

Praktično določen daljinski upravljalnik uporablja isto temo za objavo sporočil, na katera je naročen določen vlak.

Korak: Kontrolnik vlaka

Kontrolor vlaka
Kontrolor vlaka

Za nadzor vlaka igrač potrebujemo v bistvu 3 stvari: napajalnik, krmilnik, ki podpira WiFi, in elektroniko strojevodje.

Napajanje je odvisno od dejanskega načrta uporabe: v primeru LEGO je to škatla za baterije Power Functions, v primeru "oldschool" sklopa vlakov TT ali H0 je 12V napajanje tira.

Krmilnik, ki podpira WiFi, je krmilnik Wemos D1 mini (na osnovi ESP8266).

Elektronika gonilnika motorja temelji na modulu TB6612.

Krmilnik vlaka ima 2 individualno vodena izhoda PWM. Eden se akutno uporablja za krmiljenje motorja, drugi pa za svetlobno signalizacijo. Ima 2 vhoda za zaznavanje trstičnih kontaktov in en digitalni izhod.

Krmilnik sprejema sporočila JSON prek protokola WiFi in MQTT.

SPD1 krmili motor, na primer: Sporočilo {"SPD1": -204} se uporablja za premik motorja nazaj pri 80% moči (največja vrednost hitrosti je -255).

SPD2 nadzoruje jakost LED, ki je "občutljiva na smer": sporočilo {"SPD2": -255} povzroči, da (nazaj) LED zasveti s polno močjo.

OUT1 nadzoruje stanje digitalnega izhoda: {"OUT1": 1} vklopi izhod.

Če se stanje vhoda spremeni, krmilnik v skladu z njim pošlje sporočilo: {"IN1": 1}

Če upravljavec prejme veljavno sporočilo, ga izvrši in posredniku posreduje povratno informacijo. Povratne informacije so dejansko izvedeni ukaz. Na primer: če posrednik pošlje {"SPD1": 280}, motor deluje s polno močjo, vendar bo sporočilo povratne informacije: {"SPD1": 255}

4. korak: Kontrola vlaka LEGO

Kontrola vlaka LEGO
Kontrola vlaka LEGO

V primeru vlaka LEGO so sheme nekoliko drugačne.

Napajanje prihaja neposredno iz škatle za baterije.

Za pretvorbo Lolin na osnovi ESP8266 je potreben mini pretvornik, ki zagotavlja 3,5 V.

Priključki so narejeni z LEGO 8886 podaljševalno žico, prepolovljeno.

5. korak: Daljinski upravljalnik

Daljinec
Daljinec

Krmilnik objavlja samo sporočila vlaku (opredeljeno s stikalom BCD).

Z vrtenjem kodirnika daljinski upravljalnik pošlje sporočila {"SPD1": "+"} ali {"SPD1": "-"}.

Ko vlak prejme to sporočilo "inkrementalni tip", spremeni svojo izhodno vrednost PWM za 51 ali -51.

Tako lahko daljinski upravljalnik spremeni hitrost vlaka v 5 korakih (v vsako smer).

S pritiskom na inkrementalni dajalnik se pošlje {"SPD1": 0}.

6. korak: Krmilnik senzorja

Krmilnik senzorja
Krmilnik senzorja

Tako imenovani senzorski krmilnik meri stanje svojih vhodov in če se kateri od njih spremeni, objavi to vrednost.

Na primer: {"IN1": 0, "IN6": 1} v tem primeru sta 2 vhoda spremenila stanje hkrati.

7. korak: Izhodni krmilnik

Izhodni krmilnik
Izhodni krmilnik

Izhodni krmilnik ima 8 digitalnih izhodov, ki so povezani z modulom, ki temelji na ULN2803.

Sporočila prejema prek naročene teme.

Na primer sporočilo {"OUT4": 1, "OUT7": 1} vklopi 4. in 7. digitalni izhod.

8. korak: Raspberry Pi in usmerjevalnik WiFi

Imel sem rabljen usmerjevalnik Wi-Fi TP-Link, zato sem ga uporabil kot dostopno točko.

Posrednik MQTT je Raspberry Pi z nameščenim komarjem.

Uporabljam standardni OS Raspbian z MQTT, ki vsebuje:

sudo apt-get install mosquitto mosquitto-odjemalci komarjev python-mosquitto

Usmerjevalnik TP-Link mora biti konfiguriran tako, da ima rezervacijo naslova za Raspberry, zato ima po vsakem ponovnem zagonu Pi enak naslov IP in vsaka naprava se lahko poveže z njim.

In to je to!

9. korak: Končani krmilniki

Končani krmilniki
Končani krmilniki
Končani krmilniki
Končani krmilniki

Tu so končni krmilniki.

Lestvica TT loko je tako majhna, da je bilo treba Lolinovo ploščo zožiti (razrezati), da je dovolj majhna, da se prilega vlaku.

Zbrane binarne datoteke lahko prenesete. Iz varnostnih razlogov je bil podaljšek koša zamenjan v txt.