Sisukord:

Mudeli rongi WiFi juhtimine MQTT abil: 9 sammu
Mudeli rongi WiFi juhtimine MQTT abil: 9 sammu

Video: Mudeli rongi WiFi juhtimine MQTT abil: 9 sammu

Video: Mudeli rongi WiFi juhtimine MQTT abil: 9 sammu
Video: Умный выключатель в круглый подрозетник с радио повторителем, легкая и быстрая установка 2024, November
Anonim
Mudeli rongi WiFi juhtimine MQTT abil
Mudeli rongi WiFi juhtimine MQTT abil

Omades vana TT -skaala rongimudelite süsteemi, oli mul idee, kuidas lokosid individuaalselt juhtida.

Seda silmas pidades läksin sammu kaugemale ja mõistsin, mida on vaja mitte ainult rongide juhtimiseks, vaid ka lisateabe saamiseks kogu paigutuse kohta ja millegi muu juhtimiseks (lambid, rööpmelülitid …)

Nii sünnib WiFi juhitav mudelrongisüsteem.

1. samm: operatsiooni eeldused

Operatsiooni eeldused
Operatsiooni eeldused

Peamine põhimõte on juhtida iga elementi eraldi, kas ühelt kontrollerilt või mitmest juhtimisallikast. See nõuab oma olemuselt ühist füüsilist kihti - ilmselgelt WiFi -ühendust - ja ühist suhtlusprotokolli MQTT.

Keskne element on MQTT maakler. Igal ühendatud seadmel (rong, andur, väljund …) on lubatud suhelda ainult maakleri kaudu ja see võib vastu võtta ainult vahendaja andmeid.

Seadmete süda on ESP8266 -põhine WiFi -kontroller, samas kui MQTT maakler töötab Raspberry pi -ga.

Esialgu pakub WiFi -leviala WiFi -ruuter ja kõik ühendatakse traadita ühenduse kaudu.

Seadmeid on 4 tüüpi:

- rongikontroller: sellel on 2 digitaalsisendit, 1 digitaalne väljund, 2 PWM -väljundit (kahe eraldi alalisvoolumootori juhtimiseks), - andurikontroller: sellel on 7 digitaalsisendit (sisendlülititele, optoanduritele jne), - väljundkontroller: sellel on 8 digitaalset väljundit (raudteelülitite jaoks), - WiFi -kaugjuhtimispult: sellel on 1 kodeerija sisend, 1 digitaalsisend (rongide kaugjuhtimiseks).

Süsteem on võimeline töötama ka sõlmpunast (tahvelarvutist, arvutist või nutitelefonist …).

2. samm: MQTT andmevahetus ja konfigureerimine

MQTT andmevahetus ja seadistamine
MQTT andmevahetus ja seadistamine

Tuginedes MQTT protokollile, tellib algul iga seade antud teema ja saab avaldada mõne muu teema. See on rongijuhtimisvõrgu side alus.

See suhtlusjutt paigutatakse JSON -vormingus sõnumite kaudu lühikeseks ja inimloetavaks.

Vaadates kaugemalt: võrgul on WiFi -ruuter, millel on oma SSID (võrgu nimi) ja parool. WiFi -võrku pääsemiseks peab iga seade neid 2 teadma. Ka MQTT maakler on osa sellest võrgustikust, nii et MQTT protokolli kasutamiseks peab iga seade teadma maakleri IP -aadressi. Ja lõpuks on igal seadmel oma teema tellimiseks ja sõnumite avaldamiseks.

Praktiliselt kasutab antud kaugjuhtimispult sama teemat, et avaldada teateid, mille jaoks antud rong on tellitud.

3. samm: rongikontroller

Rongijuht
Rongijuht

Mängurongi juhtimiseks vajame põhimõtteliselt kolme asja: toiteallikat, WiFi -toega kontrollerit ja mootorijuhi elektroonikat.

Toiteallikas sõltub tegelikust kasutusplaanist: LEGO puhul on see Power Functions akukarp, "oldschool" TT või H0 skaala rongikomplekti puhul on see raja 12V toide.

WiFi -toega kontroller on Wemos D1 mini (ESP8266 -põhine) kontroller.

Mootori juhi elektroonika on TB6612 põhinev moodul.

Rongikontrolleril on 2 individuaalselt juhitavat PWM -väljundit. Ühte kasutatakse akuutselt mootori juhtimiseks ja teist valgussignaaliks. Sellel on 2 sisendit pillirooga kokkupuute tuvastamiseks ja üks digitaalne väljund.

Kontroller aktsepteerib JSON -sõnumeid WiFi ja MQTT protokolli kaudu.

SPD1 juhib mootorit, näiteks: sõnumit {"SPD1": -204} kasutatakse mootori 80% võimsusel tagurpidi liigutamiseks (maksimaalne kiirus on -255).

SPD2 juhib suunatundliku LED -valgustugevuse intensiivsust: teade {"SPD2": -255} paneb (tagurpidi) LED -i täisvõimsusel särama.

OUT1 juhib digitaalse väljundi olekut: {"OUT1": 1} lülitab väljundi sisse.

Kui sisendi olek muutub, saadab kontroller selle järgi sõnumi: {"IN1": 1}

Kui vastutav töötleja saab kehtiva teate, täidab ta selle ja annab maaklerile tagasisidet. Tagasiside on tegelikult täidetud käsk. Näiteks: kui maakler saadab {"SPD1": 280}, töötab mootor täisvõimsusel, kuid tagasiside on järgmine: {"SPD1": 255}

4. samm: LEGO Train Control

LEGO rongijuhtimine
LEGO rongijuhtimine

LEGO rongi puhul on skeemid pisut erinevad.

Toide tuleb otse akukarbist.

ESP8266 -põhise Lolin -plaadi jaoks 3,5 V toiteks on vaja mini -astmelist muundurit.

Ühendused tehakse pooleks lõigatud LEGO 8886 pikendusjuhtmega.

Samm: kaugjuhtimispult

Kaugjuhtimispult
Kaugjuhtimispult

Kontroller avaldab teateid ainult rongile (määratletud BCD lülitiga).

Kodeerija pööramisel saadab kaugjuhtimispult kas {"SPD1": "+"} või {"SPD1": "-"} sõnumeid.

Kui rong saab selle "inkrementaalse tüübi" teate, muudab see oma PWM -väljundväärtust 51 või -51 võrra.

Nii saab kaugjuhtimispult muuta rongi kiirust 5 sammuga (igas suunas).

Inkrementaalse kodeerija vajutamisel saadetakse {"SPD1": 0}.

6. samm: andurikontroller

Anduri kontroller
Anduri kontroller

Niinimetatud andurikontroller mõõdab oma sisendite olekuid ja kui mõni neist muutub, avaldab selle väärtuse.

Näiteks: {"IN1": 0, "IN6": 1} selles näites muutis 2 sisendit korraga olekut.

Samm 7: väljundkontroller

Väljundi kontroller
Väljundi kontroller

Väljundkontrolleril on 8 digitaalset väljundit, mis on ühendatud ULN2803 -põhise mooduliga.

See võtab sõnumeid vastu tellitud teema kaudu.

Näiteks teade {"OUT4": 1, "OUT7": 1} lülitab sisse 4. ja 7. digitaalse väljundi.

Samm: Raspberry Pi ja WiFi -ruuter

Mul oli kasutatud TP-Link WiFI ruuter, seega kasutasin seda pääsupunktina.

MQTT maakler on Raspberry Pi, millele on installitud Mosquitto.

Ma kasutan standardset Raspbian OS -i, mille MQTT on installitud:

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

TP-Linki ruuter peab olema konfigureeritud nii, et sellel oleks Raspberry aadressireservatsioon, nii et pärast iga taaskäivitamist on Pi-l sama IP-aadress ja iga seade saab sellega ühenduse luua.

Ja see ongi kõik!

9. samm: valmis kontrollerid

Valmis kontrollerid
Valmis kontrollerid
Valmis kontrollerid
Valmis kontrollerid

Siin on valmis kontrollerid.

TT skaala loko on nii väikese suurusega, et Lolini tahvlit tuli kitsendada (lõigata), et see oleks rongi mahutamiseks piisavalt väike.

Koondatud binaarfailid saab alla laadida. Turvakaalutlustel asendati prügikasti laiend txt -ks.

Soovitan: