Innholdsfortegnelse:
- Trinn 1: Operasjonsprinsipper
- Trinn 2: MQTT datautveksling og konfigurasjon
- Trinn 3: Togkontroller
- Trinn 4: LEGO Train Control
- Trinn 5: Fjernkontroll
- Trinn 6: Sensorkontroller
- Trinn 7: Utgangskontroller
- Trinn 8: Raspberry Pi og WiFi Router
- Trinn 9: Ferdige kontrollere
Video: Modeltog WiFi -kontroll ved bruk av MQTT: 9 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
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
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
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
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
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
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
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
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
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:
Internett/skystyrt hjemmeautomatisering ved bruk av Esp8266 (aREST, MQTT, IoT): 7 trinn (med bilder)
Internett/skystyrt hjemmeautomatisering ved bruk av Esp8266 (aREST, MQTT, IoT): ALLE studiepoeng til http://arest.io/ for skytjenesten !! IoT det mest diskuterte emnet i verden akkurat nå !! Skyservere og -tjenester som gjør dette mulig er tiltrekningspunktet i dagens verden … UTGIVELSE AV DISTANCE BARRIER var og er
Hjemmeautomatisering ved bruk av MQTT og ESP8266: 6 trinn
Hjemmeautomatisering ved bruk av MQTT og ESP8266: I dag er hjemmeautomatisering en trender og en ny epoke for IoT (Internet of Things). Alle prøver å automatisere hjemmet på en eller annen måte, så kan det være fjernstyrt eller manuelt. Og som gjør livet lettere for dem. Det er mannsteknikker å kontrollere
Temperatur og fuktighet ved bruk av ESP32-DHT22-MQTT-MySQL-PHP: 7 trinn
Temperatur og fuktighet ved bruk av ESP32-DHT22-MQTT-MySQL-PHP: Kjæresten min ville ha et drivhus, så jeg lagde henne en. Men jeg ville ha en temperatur- og fuktighetssensor inne i drivhuset. Så jeg googlet etter eksempler og begynte å eksperimentere. Min konklusjon var at alle eksemplene jeg fant ikke var akkurat
Overvåke akselerasjon ved bruk av Raspberry Pi og AIS328DQTR ved hjelp av Python: 6 trinn
Overvåke akselerasjon ved hjelp av Raspberry Pi og AIS328DQTR Bruke Python: Akselerasjon er begrenset, tror jeg i henhold til noen fysikklover.- Terry Riley En gepard bruker fantastisk akselerasjon og raske endringer i hastighet når jeg jager. Den raskeste skapningen i land en gang i blant bruker sitt høyeste tempo for å fange byttedyr. Den
Atollic TrueStudio-Switch på LED-en ved å trykke på trykknappen ved bruk av STM32L100: 4 trinn
Atollic TrueStudio-Switch på LED-en ved å trykke på trykknappen ved bruk av STM32L100: I denne opplæringen til STM32 skal jeg fortelle deg hvordan du leser en GPIO-pin av STM32L100, så her skal jeg lage en ombord LED-glød av bare trykke på trykknappen