Innehållsförteckning:
- Steg 1: Operationsprinciper
- Steg 2: MQTT Data Exchange och konfiguration
- Steg 3: Tågkontroller
- Steg 4: LEGO Train Control
- Steg 5: Fjärrkontroll
- Steg 6: Sensorkontroller
- Steg 7: Utmatningskontroller
- Steg 8: Raspberry Pi och WiFi Router
- Steg 9: Färdiga kontroller
Video: Modeltåg WiFi -kontroll med MQTT: 9 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Med ett gammalt tågmodellsystem i TT -skala hade jag en idé om hur jag skulle styra lokalen individuellt.
Med detta i åtanke gick jag ett steg längre och kom på vad som krävs för att inte bara styra tågen utan ha lite ytterligare information om hela layouten och styra något annat (lampor, järnvägsbrytare …)
Så här föds det WiFi -kontrollerade tågsystemet.
Steg 1: Operationsprinciper
Huvudprincipen är att styra varje element individuellt, antingen från en enda styrenhet eller från flera kontrollkällor. Detta behöver i sig ett gemensamt fysiskt lager - uppenbarligen WiFi - och ett gemensamt kommunikationsprotokoll, MQTT.
Det centrala elementet är MQTT -mäklaren. Varje ansluten enhet (tåg, sensor, utgång …) får endast kommunicera via mäklaren och kan endast ta emot data från mäklaren.
Enheternas hjärta är en ESP8266 -baserad WiFi -kontroller, medan MQTT -mäklaren körs på en Raspberry pi.
Först tillhandahålls Wifi -täckningen av en WiFi -router, och allt är anslutet via trådlöst.
Det finns 4 typer av enheter:
- Tågstyrenhet: har 2 digitala ingångar, 1 digital utgång, 2 PWM -utgångar (för styrning av 2 individuella likströmsmotorer), - Sensorkontroller: har 7 digitala ingångar (för ingångsbrytare, optosensorer …), - Utgångsregulator: har 8 digitala utgångar (för järnvägsbrytare …), - WiFi -fjärrkontroll: har 1 inkrementell encoderingång, 1 digital ingång (för fjärrstyrning av tåg).
Systemet kan också fungera från Node-Red (från surfplatta, PC eller smartphone …).
Steg 2: MQTT Data Exchange och konfiguration
Baserat på MQTT -protokollet prenumererar varje enhet först på ett visst ämne och kan publicera till ett annat ämne. Detta är grunden för tågkontrollnätverkets kommunikation.
Dessa kommunikationsberättelser placeras genom JSON -formaterade meddelanden för att vara korta och läsbara för människor.
Ser från ett längre perspektiv: Nätverket har en WiFi -router med ett eget SSID (nätverksnamn) och ett lösenord. Varje enhet måste kunna dessa 2 för att komma åt WiFi -nätverket. MQTT -mäklaren är också en del av detta nätverk, så för att kunna använda MQTT -protokoll måste varje enhet känna mäklarens IP -adress. Och slutligen har varje enhet ett eget ämne för prenumeration och publicering av meddelanden.
I praktiken använder en given fjärrkontroll samma ämne för att publicera meddelanden som ett visst tåg prenumererar på.
Steg 3: Tågkontroller
För att kunna styra ett leksakståg behöver vi i princip 3 saker: en strömförsörjning, en WiFi -aktiverad styrenhet och motorförarelektronik.
Strömförsörjningen beror på den faktiska användningsplanen: för LEGO är detta batterifacket Power Functions, i fallet med en "oldschool" TT eller H0 -tågsats är det spårets 12V strömförsörjning.
Den WiFi -aktiverade handkontrollen är en Wemos D1 mini (ESP8266 -baserad) styrenhet.
Motorförarens elektronik är en TB6612 -baserad modul.
Tågkontrollen har 2 individuellt styrda PWM -utgångar. Akut används en för motorstyrning och den andra för ljussignalering. Har 2 inpus för vasskontaktbaserad avkänning och en digital utgång.
Styrenheten accepterar JSON -meddelanden via WiFi och MQTT -protokoll.
SPD1 styr motorn, till exempel: {"SPD1": -204} meddelande används för att flytta motorn bakåt med 80% effekt (maxhastighetsvärdet är -255).
SPD2 styr den "riktningskänsliga" LED -ljusets intensitet: {"SPD2": -255} meddelande får (bakåt) LED att lysa med full effekt.
OUT1 styr den digitala utgångens tillstånd: {"OUT1": 1} slår på utgången.
Om tillståndet för en ingång ändras skickar styrenheten ett meddelande enligt det: {"IN1": 1}
Om den registeransvarige får ett giltigt meddelande, utför den det och ger en återkoppling till mäklaren. Återkopplingen är det faktiskt utförda kommandot. Till exempel: om mäklaren skickar {"SPD1": 280} körs motorn med full effekt men feedbackmeddelandet kommer att vara: {"SPD1": 255}
Steg 4: LEGO Train Control
För LEGO -tåg är schemat lite annorlunda.
Strömmen kommer direkt från batterilådan.
Det finns ett behov av en mini -step -down -omvandlare för att ge 3,5V för det ESP8266 -baserade Lolin -kortet.
Anslutningarna görs med en LEGO 8886 förlängningstråd, halverad.
Steg 5: Fjärrkontroll
Styrenheten publicerar bara meddelanden till tåget (definierat av BCD -omkopplaren).
Genom att rotera kodaren skickar fjärrkontrollen antingen {"SPD1": "+"} eller {"SPD1": "-"} meddelanden.
När tåget tar emot detta "inkrementell typ" -meddelande ändrar det sitt PWM -utgångsvärde med 51 eller -51.
På så sätt kan fjärrkontrollen ändra tågets hastighet i 5 steg (varje riktning).
Om du trycker på den inkrementella pulsgivaren skickas {"SPD1": 0}.
Steg 6: Sensorkontroller
Den så kallade sensorstyrenheten mäter tillståndet för dess ingångar, och om någon av dem ändras publicerar det värdet.
Till exempel: {"IN1": 0, "IN6": 1} i detta exempel har två ingångar ändrat tillstånd samtidigt.
Steg 7: Utmatningskontroller
Utgångskontrollen har 8 digitala utgångar, som är anslutna till en ULN2803 -baserad modul.
Det tar emot meddelanden genom sitt prenumererade ämne.
Till exempel aktiverar meddelandet {"OUT4": 1, "OUT7": 1} den digitala utgången 4. och 7..
Steg 8: Raspberry Pi och WiFi Router
Jag hade en begagnad TP-Link WiFI-router, så jag använde den här som en åtkomstpunkt.
MQTT -mäklaren är en Raspberry Pi med Mosquitto installerat.
Jag använder standard Raspbian OS med MQTT installerat med:
sudo apt-get install mosquitto mygg-klienter python-mygg
TP-Link-routern måste konfigureras för att ha en adressreservation för Hallon, så efter varje omstart har Pi samma IP-adress och varje enhet kan ansluta till den.
Och det är allt!
Steg 9: Färdiga kontroller
Här är de färdiga kontrollerna.
TT -skalan loko har så liten storlek att en Lolin -bräda måste smalas (skäras) för att vara tillräckligt liten för att passa in i tåget.
De sammanställda binärfilerna kan laddas ner. Av säkerhetsskäl ersattes fackförlängningen till txt.
Rekommenderad:
MQTT humörljus med ESP32: 4 steg (med bilder)
MQTT Mood Lights With ESP32: Jag hade frestats ganska länge att hoppa in på LED -vagnen, så jag sprang ut och hämtade en LED -remsa att leka med. Jag slutade göra dessa stämningsbelysning. De kan styras med MQTT, vilket gör det möjligt att lägga till alla möjliga smarts.Detta är en
MQTT/Google Home Flood/Water WIFI-sensor med ESP-01: 7 steg
MQTT/Google Home Flood/Water WIFI-sensor med ESP-01: I den här instruktören kommer jag att visa dig hur du bygger wifi översvämnings-/vattensensor med minimal kostnad. Hela projektet kostar mig mindre än $ 8 för delar som jag köper från ebay och mina befintliga reservdelar. I detta projekt kommer vi att använda ESP-01 för att tillhandahålla Wif
Komma igång med AWS IoT Med trådlös temperatursensor med MQTT: 8 steg
Komma igång med AWS IoT med trådlös temperatursensor med MQTT: I tidigare instruktioner har vi gått igenom olika molnplattformar som Azure, Ubidots, ThingSpeak, Losant etc. Vi har använt MQTT -protokollet för att skicka sensordata till molnet i nästan hela molnplattformen. För mer information
MQTT och Wifi Powered Mailbox Flag: 7 steg (med bilder)
MQTT och Wifi Powered Mailbox Flag: Obs: uppdaterad med ny firmware, schema och tips för en programmerare. Ett par år påbörjade jag ett eget hemautomatiseringsprojekt. Det började med att bygga en serverstyrd 433 MHz sändarbyggnad med en Arduino för att byta massor av billiga
Läs din huvudsakliga elmätare (ESP8266, WiFi, MQTT och Openhab): 6 steg (med bilder)
Läs din huvudsakliga elmätare (ESP8266, WiFi, MQTT och Openhab): I denna instruktionsbok får du veta hur jag läser min huvudsakliga elanvändning i mitt hus och publicerar den via en ESP8266, Wifi, MQTT i min Openhab -hemautomation. Jag har en "smart mätare" ISKRA typ MT372, men den har ingen enkel möjlighet att exportera