Innholdsfortegnelse:

Modeltog WiFi -kontroll ved bruk av MQTT: 9 trinn
Modeltog WiFi -kontroll ved bruk av MQTT: 9 trinn

Video: Modeltog WiFi -kontroll ved bruk av MQTT: 9 trinn

Video: Modeltog WiFi -kontroll ved bruk av MQTT: 9 trinn
Video: Служба планирования MOBA - Приложение 001 - Подвесной виадук и небольшая оконечная станция в H0 (2) 2024, November
Anonim
Modeltog WiFi -kontroll ved bruk av MQTT
Modeltog WiFi -kontroll ved bruk av MQTT

Etter å ha et gammelt togmodellsystem i TT -skala, hadde jeg en idé om hvordan jeg kunne kontrollere lokoene individuelt.

Med dette i bakhodet gikk jeg et skritt videre og fant ut hva som er nødvendig for ikke bare å kontrollere togene, men for å ha litt tilleggsinformasjon om hele oppsettet og kontrollere noe annet (lamper, jernbanebrytere …)

Slik blir det WiFi -kontrollerte modelltogsystemet født.

Trinn 1: Operasjonsprinsipper

Operasjonsprinsipper
Operasjonsprinsipper

Hovedprinsippet er å kontrollere hvert element individuelt, enten fra en enkelt kontroller eller fra flere kontrollkilder. Dette trenger iboende et felles fysisk lag - tydeligst WiFi - og en felles kommunikasjonsprotokoll, MQTT.

Det sentrale elementet er MQTT -megleren. Hver tilkoblet enhet (tog, sensor, utgang …) har bare lov til å kommunisere gjennom megleren og kan bare motta data fra megleren.

Enhetenes hjerte er en ESP8266 -basert WiFi -kontroller, mens MQTT -megleren kjører på en Raspberry pi.

Først tilbys Wifi -dekningen av en WiFi -ruter, og alt kobles til via trådløs.

Det er 4 typer enheter:

- Togkontroller: har 2 digitale innganger, 1 digital utgang, 2 PWM -utganger (for styring av 2 individuelle likestrømsmotorer), - Sensorkontroller: har 7 digitale innganger (for inngangsbrytere, optosensorer …), - Utgangskontroller: har 8 digitale utganger (for skinnebrytere …), - WiFi -fjernkontroll: har 1 inkrementell encoder -inngang, 1 digital inngang (for å styre tog eksternt).

Systemet kan også fungere fra Node-Red (fra nettbrett, PC eller smarttelefon …).

Trinn 2: MQTT datautveksling og konfigurasjon

MQTT datautveksling og konfigurasjon
MQTT datautveksling og konfigurasjon

Basert på MQTT -protokollen, abonnerer først hver enhet på et gitt emne, og kan først publisere til et annet emne. Dette er grunnlaget for togkontrollnettverkets kommunikasjon.

Denne kommunikasjonshistorien finner sted gjennom JSON -formaterte meldinger, for å være korte og lesbare for mennesker.

Ser fra et lengre perspektiv: Nettverket har en WiFi -ruter med sin egen SSID (nettverksnavn) og et passord. Hver enhet må kjenne disse 2 for å få tilgang til WiFi -nettverket. MQTT -megleren er også en del av dette nettverket, så for å bruke MQTT -protokollen må hver enhet kjenne meglerens IP -adresse. Og til slutt har hver enhet sitt eget emne for abonnement og publisering av meldinger.

I praksis bruker en gitt fjernkontroll det samme emnet for å publisere meldinger som et gitt tog abonnerer på.

Trinn 3: Togkontroller

Togkontroller
Togkontroller

For å kontrollere et leketog, trenger vi i utgangspunktet 3 ting: en strømforsyning, en WiFi -aktivert kontroller og motorførerelektronikk.

Strømforsyningen avhenger av den faktiske bruksplanen: for LEGO er dette batterifunksjonen Power Functions, i tilfelle et "oldschool" TT- eller H0 -togsett, er det sporets 12V strømforsyning.

WiFi -aktivert kontroller er en Wemos D1 mini (ESP8266 -basert) kontroller.

Motordriverelektronikken er en TB6612 -basert modul.

Togkontrolleren har 2 individuelt kontrollerte PWM -utganger. Akutt brukes den ene til motorstyring og den andre brukes til lyssignalering. Har 2 inpus for sivkontaktbasert sansing og en digital utgang.

Kontrolleren godtar JSON -meldinger via WiFi og MQTT -protokoll.

SPD1 styrer motoren, for eksempel: {"SPD1": -204} melding brukes til å flytte motoren bakover med 80% effekt (maksimal hastighetsverdi er -255).

SPD2 styrer den "retningsfølsomme" LED -lysets intensitet: {"SPD2": -255} -meldingen får (bakover) LED til å skinne for fullt.

OUT1 styrer den digitale utgangens tilstand: {"OUT1": 1} slår på utgangen.

Hvis tilstanden til en inngang endres, sender kontrolleren en melding i henhold til den: {"IN1": 1}

Hvis kontrolleren mottar en gyldig melding, utfører den den og gir en tilbakemelding til megleren. Tilbakemeldingen er den faktisk utførte kommandoen. For eksempel: hvis megleren sender {"SPD1": 280}, fungerer motoren med full effekt, men tilbakemeldingsmeldingen vil være: {"SPD1": 255}

Trinn 4: LEGO Train Control

LEGO togkontroll
LEGO togkontroll

Når det gjelder LEGO -tog, er skjemaene litt annerledes.

Strømmen kommer direkte fra batteriboksen.

Det er behov for en mini -trinn -ned -omformer for å gi 3,5V for det ESP8266 -baserte Lolin -kortet.

Tilkoblingene er laget med en LEGO 8886 forlengelsestråd, delt i to.

Trinn 5: Fjernkontroll

Fjernkontroll
Fjernkontroll

Kontrolleren publiserer bare meldinger til toget (definert av BCD -bryteren).

Ved å rotere koderen sender enten fjernkontrollen {"SPD1": "+"} eller {"SPD1": "-"} meldinger.

Når toget mottar denne "inkrementell type" -meldingen, endrer den PWM -utgangsverdien med 51 eller -51.

På denne måten kan fjernkontrollen endre togets hastighet i 5 trinn (hver retning).

Hvis du trykker på inkrementellkoderen, sendes {"SPD1": 0}.

Trinn 6: Sensorkontroller

Sensorkontroller
Sensorkontroller

Den såkalte sensorkontrolleren måler tilstanden til inngangene, og hvis noen av dem endres, publiserer den verdien.

For eksempel: {"IN1": 0, "IN6": 1} i dette eksempelet endret to innganger tilstand samtidig.

Trinn 7: Utgangskontroller

Utgangskontroller
Utgangskontroller

Utgangskontrolleren har 8 digitale utganger, som er koblet til en ULN2803 -basert modul.

Den mottar meldinger gjennom emnet det abonnerer på.

For eksempel slår meldingen {"OUT4": 1, "OUT7": 1} på 4. og 7. digital utgang.

Trinn 8: Raspberry Pi og WiFi Router

Jeg hadde en brukt TP-Link WiFI-ruter, så jeg brukte dette som et tilgangspunkt.

MQTT -megleren er en Raspberry Pi med Mosquitto installert.

Jeg bruker standard Raspbian OS med MQTT installert med:

sudo apt-get install mygg mosquitto-klienter python-mosquitto

TP-Link-ruteren må konfigureres til å ha en adressereservasjon for bringebæret, så etter hver omstart har Pi den samme IP-adressen, og hver enhet kan koble seg til den.

Og det er det!

Trinn 9: Ferdige kontrollere

Ferdige kontrollere
Ferdige kontrollere
Ferdige kontrollere
Ferdige kontrollere

Her er de ferdige kontrollerne.

TT -skalaen loko har så liten størrelse at et Lolin -brett måtte innsnevres (kuttes) for å være lite nok til å passe inn i toget.

De kompilerte binærene kan lastes ned. Av sikkerhetshensyn ble skuffeforlengelsen erstattet til txt.

Anbefalt: