Sadržaj:

Model vlaka WiFi kontrola korištenjem MQTT: 9 koraka
Model vlaka WiFi kontrola korištenjem MQTT: 9 koraka

Video: Model vlaka WiFi kontrola korištenjem MQTT: 9 koraka

Video: Model vlaka WiFi kontrola korištenjem MQTT: 9 koraka
Video: Lego train points. Esp8266 with servo 9g 2024, Novembar
Anonim
Model Vlak Kontrola WiFi -a pomoću MQTT -a
Model Vlak Kontrola WiFi -a pomoću MQTT -a

Imajući stari sistem modela vlakova na TT skali, imao sam ideju kako pojedinačno kontrolirati lokote.

Imajući ovo na umu, otišao sam korak dalje i shvatio što je potrebno ne samo za kontrolu vlakova, već i za dodatne informacije o cijelom rasporedu i kontroli nečega drugog (svjetiljke, željeznički prekidači …)

Tako se rađa modelni sistem vlakova koji kontrolira WiFi.

Korak 1: Operativni principi

Operativni principi
Operativni principi

Glavni princip je kontrola svakog elementa pojedinačno, bilo iz jednog kontrolera, bilo iz više izvora upravljanja. Ovo inherentno zahtijeva zajednički fizički sloj - najočiglednije WiFi - i zajednički komunikacijski protokol, MQTT.

Centralni element je MQTT posrednik. Svaki povezani uređaj (vlak, senzor, izlaz …) smije komunicirati samo putem posrednika i može primati podatke samo od posrednika.

Srce uređaja je WiFi kontroler zasnovan na ESP8266, dok posrednik MQTT radi na Raspberry pi.

U početku Wi -Fi pokrivenost osigurava WiFi usmjerivač, a sve se povezuje putem bežične veze.

Postoje 4 vrste uređaja:

- Kontroler vlaka: ima 2 digitalna ulaza, 1 digitalni izlaz, 2 PWM izlaza (za upravljanje 2 pojedinačna istosmjerna motora), - Senzorski kontroler: ima 7 digitalnih ulaza (za ulazne prekidače, optosenzore …), - Izlazni kontroler: ima 8 digitalnih izlaza (za šinske sklopke …), - WiFi daljinski: ima 1 inkrementalni ulaz kodera, 1 digitalni ulaz (za daljinsko upravljanje vozovima).

Sistem takođe može raditi sa Node-Red-a (sa tableta, računara ili pametnog telefona …).

Korak 2: MQTT razmjena podataka i konfiguracija

MQTT razmjena podataka i konfiguracija
MQTT razmjena podataka i konfiguracija

Na temelju MQTT protokola, isprva se svaki uređaj pretplati na određenu temu i može objaviti na drugoj temi. Ovo je osnova komunikacije mreže za upravljanje vozovima.

Ove priče o komunikaciji postavljaju se putem poruka u JSON formatu, kako bi bile kratke i čitljive ljudima.

Gledajući iz dalje perspektive: Mreža ima WiFi usmjerivač sa vlastitim SSID -om (naziv mreže) i lozinkom. Svaki uređaj mora znati ovo 2 za pristup WiFi mreži. MQTT posrednik je također dio ove mreže, pa da bi mogao koristiti MQTT protokol, svaki uređaj mora znati IP adresu brokera. I na kraju, svaki uređaj ima svoju temu za pretplatu i objavljivanje poruka.

Praktično, dati daljinski upravljač koristi istu temu za objavljivanje poruka za koje je određeni vlak pretplaćen.

Korak 3: Kontrolor vlaka

Kontrolor vlaka
Kontrolor vlaka

Da bismo upravljali vozom s igračkama, u osnovi su nam potrebne 3 stvari: napajanje, WiFi kontroler i elektronika vozača motora.

Napajanje električnom energijom ovisi o stvarnom planu korištenja: u slučaju LEGO -a, ovo je kutija za baterije Power Functions, u slučaju "oldschool" kompleta vlakova TT ili H0, to je napajanje 12V na pruzi.

Wi -Fi kontroler je kontroler Wemos D1 mini (baziran na ESP8266).

Elektronika upravljačkog programa motora je modul zasnovan na TB6612.

Kontroler vlaka ima 2 individualno kontrolirana PWM izlaza. Jedan se akutno koristi za upravljanje motorom, a drugi za svjetlosnu signalizaciju. Ima 2 ulaza za senzor zasnovano na trskama i jedan digitalni izlaz.

Kontroler prihvaća JSON poruke putem WiFi i MQTT protokola.

SPD1 kontrolira motor, na primjer: {"SPD1": -204} poruka se koristi za pomicanje motora unatrag pri 80% snage (maksimalna vrijednost brzine je -255).

SPD2 kontroliše intenzitet LED svjetla osjetljivog na smjer: {"SPD2": -255} poruka čini (unatrag) LED da svijetli svom punom snagom.

OUT1 kontrolira stanje digitalnog izlaza: {"OUT1": 1} uključuje izlaz.

Ako se stanje ulaza promijeni, kontroler šalje poruku prema njemu: {"IN1": 1}

Ako kontrolor primi valjanu poruku, izvršava je i daje povratnu informaciju posredniku. Povratna informacija je zapravo izvršena naredba. Na primjer: ako posrednik pošalje {"SPD1": 280} tada motor radi punom snagom, ali će povratna poruka biti: {"SPD1": 255}

Korak 4: LEGO kontrola vlaka

LEGO Kontrola vlaka
LEGO Kontrola vlaka

U slučaju LEGO voza, sheme su malo drugačije.

Napajanje dolazi direktno iz kutije za baterije.

Postoji potreba za mini stepenim pretvaračem za napajanje 3,5 V za Lolin ploču zasnovanu na ESP8266.

Priključci su izvedeni pomoću LEGO 8886 produžne žice, prepolovljene.

Korak 5: Daljinski upravljač

Daljinski upravljac
Daljinski upravljac

Kontroler objavljuje samo poruke u vlaku (definirano BCD prekidačem).

Okretanjem kodera, daljinski upravljač šalje poruke {"SPD1": "+"} ili {"SPD1": "-"}.

Kada voz primi ovu poruku "inkrementalnog tipa", mijenja svoju izlaznu vrijednost PWM -a za 51 ili -51.

Na ovaj način daljinski upravljač može promijeniti brzinu voza u 5 koraka (svaki smjer).

Pritiskom na inkrementalni koder šalje se {"SPD1": 0}.

Korak 6: Kontroler senzora

Sensor Controller
Sensor Controller

Takozvani senzorski kontroler mjeri stanja svojih ulaza i, ako se bilo koji od njih promijeni, objavljuje tu vrijednost.

Na primjer: {"IN1": 0, "IN6": 1} u ovom primjeru 2 ulaza su promijenila stanje istovremeno.

Korak 7: Izlazni kontroler

Izlazni kontroler
Izlazni kontroler

Izlazni kontroler ima 8 digitalnih izlaza koji su spojeni na modul temeljen na ULN2803.

Prima poruke putem pretplaćene teme.

Na primjer, poruka "OUT4": 1, "OUT7": 1} uključuje 4. i 7. digitalni izlaz.

Korak 8: Raspberry Pi i WiFi usmjerivač

Imao sam korišćeni TP-Link WiFI ruter, pa sam ga koristio kao pristupnu tačku.

MQTT posrednik je Raspberry Pi sa instaliranim Mosquitto -om.

Koristim standardni Raspbian OS sa MQTT -om koji sadrži:

sudo apt-get install mosquitto mosquitto-klijenti python-mosquitto

TP-Link usmjerivač mora biti konfiguriran tako da ima rezervaciju adrese za Raspberry, tako da nakon svakog ponovnog pokretanja Pi ima istu IP adresu i svaki uređaj se može povezati s njim.

I to je to!

Korak 9: Gotovi kontroleri

Gotovi kontroleri
Gotovi kontroleri
Gotovi kontroleri
Gotovi kontroleri

Evo gotovih kontrolera.

TT ljestvica loko ima tako male veličine da je Lolin ploča morala biti sužena (izrezana) da bi bila dovoljno mala da stane u vlak.

Prevedene binarne datoteke mogu se preuzeti. Iz sigurnosnih razloga, produžetak kante je zamijenjen txt.

Preporučuje se: