Upravljanje WiFi modelom vlakom pomoću MQTT -a: 9 koraka
Upravljanje WiFi modelom vlakom pomoću MQTT -a: 9 koraka
Anonim
Model vlaka WiFi kontrole pomoću MQTT -a
Model vlaka WiFi kontrole pomoću MQTT -a

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

Imajući to 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 sustav vlakova koji kontrolira WiFi.

Korak 1: Operativni principi

Načela operacije
Načela operacije

Glavni princip je upravljanje svakim elementom zasebno, bilo iz jednog kontrolera, bilo iz više izvora upravljanja. To inherentno zahtijeva zajednički fizički sloj - najočitije WiFi - i zajednički komunikacijski protokol, MQTT.

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

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

Isprva Wi -Fi pokrivenost osigurava WiFi usmjerivač, a sve je spojeno 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 regulator: ima 7 digitalnih ulaza (za ulazne prekidače, optosenzore …), - Izlazni kontroler: ima 8 digitalnih izlaza (za željezničke prekidače …), - WiFi daljinski: ima 1 inkrementalni ulaz kodera, 1 digitalni ulaz (za daljinsko upravljanje vlakovima).

Sustav također može raditi s Node-Redom (s tableta, računala 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 drugu temu. To je temelj komunikacije mreže za upravljanje vlakovima.

Ove priče o komunikaciji smještaju 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 također je 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, dani 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 vlakom s igračkama, u osnovi su nam potrebne 3 stvari: napajanje, kontroler s omogućenim WiFi -jem i elektronika pogona motora.

Napajanje električnom energijom ovisi o stvarnom planu uporabe: u slučaju LEGO -a, ovo je kutija za baterije Power Functions, u slučaju "oldschool" vlaka TT ili H0 mjerila, to je napajanje pruge od 12V.

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

Elektronika upravljačkog programa motora je modul temeljen 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 osjetljivost na kontaktima trske i jedan digitalni izlaz.

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

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

SPD2 kontrolira intenzitet LED svjetla osjetljivog na smjer: {"SPD2": -255} poruka čini (unatrag) LED da zasja svom 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 izvedena naredba. Na primjer: ako posrednik pošalje {"SPD1": 280} tada motor radi punom snagom, ali će povratna poruka biti: {"SPD1": 255}

Korak 4: Kontrola vlaka LEGO

LEGO Kontrola vlaka
LEGO Kontrola vlaka

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

Napajanje izravno dolazi iz kutije za baterije.

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

Spojevi su izvedeni pomoću LEGO 8886 produžne žice, prerezane na pola.

Korak 5: Daljinski upravljač

Daljinski upravljač
Daljinski upravljač

Upravljač objavljuje samo poruke u vlaku (definirano sklopkom BCD).

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

Kad vlak 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 vlaka u 5 koraka (svaki smjer).

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

Korak 6: Kontroler senzora

Kontroler senzora
Kontroler senzora

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 regulator 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 rabljeni TP-Link WiFI usmjerivač pa sam ga koristio kao pristupnu točku.

MQTT posrednik je Raspberry Pi s instaliranim Mosquittom.

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

sudo apt-get install mosquitto mosquitto-clients 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 se uređaj 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.

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