Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
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
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
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
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
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č
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
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 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
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.