Modell vonat WiFi vezérlés az MQTT használatával: 9 lépés
Modell vonat WiFi vezérlés az MQTT használatával: 9 lépés
Anonim
Modell vonat WiFi vezérlés az MQTT használatával
Modell vonat WiFi vezérlés az MQTT használatával

Régi TT léptékű vonatmodellrendszerrel rendelkeztem, ötletem volt, hogyan lehet egyénileg szabályozni a mozdonyokat.

Ezt szem előtt tartva, egy lépéssel tovább mentem, és rájöttem, hogy mi szükséges ahhoz, hogy ne csak a vonatokat irányítsuk, hanem további információkkal is rendelkezzünk a teljes elrendezésről és valami másról (lámpák, vasúti kapcsolók…)

Így születik meg a WiFi által vezérelt modell vonatrendszer.

1. lépés: Műveleti tervek

Műveleti tervek
Műveleti tervek

A fő elv az, hogy minden elemet egyedileg vezéreljen, akár egyetlen vezérlőből, akár több vezérlőforrásból. Ehhez eleve szükség van egy közös fizikai rétegre - nyilvánvalóan a WiFi -re - és egy közös kommunikációs protokollra, az MQTT -re.

A központi elem az MQTT Broker. Minden csatlakoztatott eszköz (vonat, érzékelő, kimenet …) csak a Brókeren keresztül kommunikálhat, és csak a Brókertől fogadhat adatokat.

Az eszközök szíve egy ESP8266 alapú WiFi vezérlő, míg az MQTT bróker Raspberry pi -n fut.

Eleinte a Wifi lefedettséget egy WiFi router biztosítja, és minden vezeték nélküli kapcsolaton keresztül történik.

4 típusú eszköz létezik:

- Vonatvezérlő: 2 digitális bemenettel, 1 digitális kimenettel, 2 PWM kimenettel (2 egyenáramú motor vezérléséhez), - Érzékelővezérlő: 7 digitális bemenettel rendelkezik (bemeneti kapcsolókhoz, optoszenzorokhoz stb.), - Kimenetvezérlő: 8 digitális kimenettel rendelkezik (sínkapcsolókhoz), - WiFi távirányító: 1 inkrementális jeladó bemenettel, 1 digitális bemenettel rendelkezik (a vonatok távoli vezérlésére).

A rendszer Node-Red-ről is képes működni (táblagépről, számítógépről vagy okostelefonról …).

2. lépés: MQTT adatcsere és konfiguráció

MQTT adatcsere és konfiguráció
MQTT adatcsere és konfiguráció

Az MQTT protokoll alapján először minden eszköz feliratkozik egy adott témára, és közzétehet egy másik témában. Ez az alapja a vonatirányító hálózat kommunikációjának.

Ez a kommunikációs történet a JSON formátumú üzeneteken keresztül történik, hogy rövid és ember által olvasható legyen.

Távolabbról nézve: A hálózat rendelkezik WiFi útválasztóval saját SSID -vel (hálózatnév) és jelszóval. Minden eszköznek ismernie kell ezt a kettőt a WiFi hálózat eléréséhez. Az MQTT bróker is ennek a hálózatnak a része, így az MQTT protokoll használatához minden eszköznek ismernie kell a közvetítő IP -címét. Végül minden eszköznek megvan a saját témája az előfizetésekhez és az üzenetek közzétételéhez.

Gyakorlatilag egy adott távirányító ugyanazt a témát használja az adott vonatra előfizetett üzenetek közzétételéhez.

3. lépés: Vonatvezérlő

Vonatvezérlő
Vonatvezérlő

A játékvonat vezérléséhez alapvetően három dologra van szükségünk: tápegységre, WiFi -kompatibilis vezérlőre és motorvezérlő elektronikára.

Az áramellátás a tényleges használati tervtől függ: LEGO esetén ez a Power Functions akkumulátor doboza, "oldschool" TT vagy H0 méretű szerelvény esetén a pálya 12V -os tápegysége.

A WiFi -kompatibilis vezérlő egy Wemos D1 mini (ESP8266 alapú) vezérlő.

A motorvezérlő elektronika TB6612 alapú modul.

A vonatvezérlő 2 egyedileg vezérelt PWM kimenettel rendelkezik. Akut módon az egyiket motorvezérlésre, a másikat fényjelzésre használják. 2 inpus a nádérintéses érzékeléshez és egy digitális kimenet.

A vezérlő WiFi és MQTT protokollon keresztül fogadja a JSON üzeneteket.

Az SPD1 vezérli a motort, például: {"SPD1": -204} üzenet a motor visszafelé mozgatására szolgál 80% -os teljesítmény mellett (a maximális fordulatszám -255).

Az SPD2 szabályozza az "irányérzékeny" LED -fényerősségét: {"SPD2": -255} üzenet a (visszafelé) LED -et teljes erejével ragyog.

Az OUT1 vezérli a digitális kimenet állapotát: {"OUT1": 1} bekapcsolja a kimenetet.

Ha a bemenet állapota megváltozik, a vezérlő ennek megfelelően üzenetet küld: {"IN1": 1}

Ha a vezérlő érvényes üzenetet kap, végrehajtja azt, és visszajelzést ad a brókernek. A visszacsatolás a ténylegesen végrehajtott parancs. Például: ha a közvetítő {"SPD1": 280} -ot küld, akkor a motor teljes erővel működik, de a visszajelző üzenet a következő lesz: {"SPD1": 255}

4. lépés: LEGO Train Control

LEGO Train Control
LEGO Train Control

A LEGO vonat esetében a vázlatok kissé eltérnek.

Az áram közvetlenül az elemtartóból származik.

Szükség van egy mini step down konverterre, amely 3,5 V feszültséget biztosít az ESP8266 alapú Lolin kártyához.

A csatlakozásokat LEGO 8886 hosszabbító dróttal készítik, félbevágva.

5. lépés: Távirányító

Távirányító
Távirányító

A vezérlő csak üzeneteket tesz közzé a vonatnak (a BCD kapcsoló határozza meg).

A kódoló elforgatásával a távirányító vagy {"SPD1": "+"} vagy {"SPD1": "-"} üzeneteket küld.

Amikor a vonat megkapja ezt az "növekményes típusú" üzenetet, 51 vagy -51 -gyel módosítja a PWM kimeneti értékét.

Így a távirányító 5 lépésben (irányonként) változtathatja a vonat sebességét.

Az inkrementális kódoló megnyomásával a (z) "SPD1": 0} üzenet jelenik meg.

6. lépés: Érzékelő vezérlő

Érzékelő vezérlő
Érzékelő vezérlő

Az úgynevezett érzékelővezérlő méri a bemenetek állapotát, és ha bármelyikük megváltozik, közzéteszi ezt az értéket.

Például: {"IN1": 0, "IN6": 1} ebben a példában 2 bemenet váltott állapotot egyszerre.

7. lépés: Kimeneti vezérlő

Kimeneti vezérlő
Kimeneti vezérlő

A kimeneti vezérlő 8 digitális kimenettel rendelkezik, amelyek egy ULN2803 alapú modulhoz vannak csatlakoztatva.

Előfizetett témáján keresztül fogad üzeneteket.

Például az {"OUT4": 1, "OUT7": 1} üzenet bekapcsolja a 4. és a 7. digitális kimenetet.

8. lépés: Raspberry Pi és WiFi útválasztó

Volt egy használt TP-Link WiFI routerem, ezért ezt használtam hozzáférési pontként.

Az MQTT bróker egy Raspberry Pi, amelyhez Mosquitto telepítve van.

A szabványos Raspbian operációs rendszert használom, az MQTT -vel telepítve:

sudo apt-get install mosquitto mosquitto-customers python-mosquitto

A TP-Link útválasztót úgy kell konfigurálni, hogy legyen címfoglalása a Raspberry számára, így minden újraindítás után a Pi azonos IP-címmel rendelkezik, és minden eszköz csatlakozhat hozzá.

És ez az!

9. lépés: Kész vezérlők

Kész vezérlők
Kész vezérlők
Kész vezérlők
Kész vezérlők

Itt vannak a kész vezérlők.

A TT skála loko olyan kicsi, hogy egy Lolin táblát szűkíteni (vágni) kellett ahhoz, hogy elég kicsi legyen ahhoz, hogy elférjen a vonatban.

Az összeállított bináris fájlok letölthetők. Biztonsági okokból a tároló bővítését txt -re cseréltük.

Ajánlott: