Turinys:

Modelio traukinio „WiFi“valdymas naudojant MQTT: 9 žingsniai
Modelio traukinio „WiFi“valdymas naudojant MQTT: 9 žingsniai

Video: Modelio traukinio „WiFi“valdymas naudojant MQTT: 9 žingsniai

Video: Modelio traukinio „WiFi“valdymas naudojant MQTT: 9 žingsniai
Video: Kas yra prekės ženklas? Kokį vaidmenį versle vaidina prekės ženklas? 2024, Lapkritis
Anonim
Modelio traukinio „WiFi“valdymas naudojant MQTT
Modelio traukinio „WiFi“valdymas naudojant MQTT

Turėdamas seną TT masto traukinių modelių sistemą, turėjau idėją, kaip individualiai valdyti lokomotyvus.

Turėdamas tai omenyje, žengiau dar vieną žingsnį ir supratau, ko reikia ne tik valdyti traukinius, bet ir turėti papildomos informacijos apie visą išdėstymą ir valdyti ką nors kitą (lempas, bėgių jungiklius …)

Taip gimsta „WiFi“valdoma traukinių modelio sistema.

1 žingsnis: operacijos planai

Operacijos planai
Operacijos planai

Pagrindinis principas yra valdyti kiekvieną elementą atskirai, iš vieno valdiklio arba iš kelių valdymo šaltinių. Tam iš esmės reikia bendro fizinio sluoksnio - akivaizdžiausiai „WiFi“- ir bendro ryšio protokolo MQTT.

Pagrindinis elementas yra „MQTT Broker“. Kiekvienas prijungtas įrenginys (traukinys, jutiklis, išvestis …) gali bendrauti tik per Brokerį ir gali gauti tik duomenis iš Brokerio.

Įrenginių širdis yra ESP8266 pagrįstas „WiFi“valdiklis, o „MQTT“brokeris veikia su „Raspberry pi“.

Iš pradžių „Wifi“aprėptį teikia „WiFi“maršrutizatorius, o viskas prijungta per belaidį ryšį.

Yra 4 prietaisų tipai:

- Traukinio valdiklis: turi 2 skaitmeninius įėjimus, 1 skaitmeninį išėjimą, 2 PWM išėjimus (2 atskirų nuolatinės srovės variklių valdymui), - Jutiklio valdiklis: turi 7 skaitmeninius įėjimus (įvesties jungikliams, optosensoriams …), - Išvesties valdiklis: turi 8 skaitmeninius išėjimus (geležinkelio jungikliams …), - „WiFi“nuotolinio valdymo pultas: turi 1 papildomą kodavimo įvestį, 1 skaitmeninę įvestį (valdyti traukinius nuotoliniu būdu).

Sistema taip pat gali veikti iš raudonojo mazgo (iš planšetinio kompiuterio, kompiuterio ar išmaniojo telefono …).

2 žingsnis: MQTT duomenų mainai ir konfigūravimas

MQTT duomenų mainai ir konfigūravimas
MQTT duomenų mainai ir konfigūravimas

Remiantis MQTT protokolu, iš pradžių kiekvienas įrenginys prenumeruoja tam tikrą temą ir gali paskelbti kitą temą. Tai yra traukinių valdymo tinklo ryšio pagrindas.

Šios komunikacijos pasakos pateikiamos per JSON suformatuotus pranešimus, kad būtų trumpos ir lengvai skaitomos žmonėms.

Žvelgiant iš tolimesnės perspektyvos: tinklas turi „WiFi“maršrutizatorių su savo SSID (tinklo pavadinimu) ir slaptažodžiu. Kiekvienas įrenginys turi žinoti šiuos 2, kad galėtų prisijungti prie „WiFi“tinklo. MQTT brokeris taip pat yra šio tinklo dalis, todėl norint naudoti MQTT protokolą kiekvienas įrenginys turi žinoti brokerio IP adresą. Galiausiai kiekvienas įrenginys turi savo temą, skirtą prenumeruoti ir skelbti pranešimus.

Praktiškai tam tikras nuotolinio valdymo pultas naudoja tą pačią temą, kad paskelbtų pranešimus, kuriuos prenumeruoja atitinkamas traukinys.

3 žingsnis: traukinio valdiklis

Traukinio valdytojas
Traukinio valdytojas

Norint valdyti žaislinį traukinį, iš esmės mums reikia 3 dalykų: maitinimo šaltinio, „WiFi“valdiklio ir variklio vairuotojo elektronikos.

Maitinimo šaltinis priklauso nuo tikrojo naudojimo plano: LEGO atveju tai yra „Power Functions“akumuliatoriaus dėžė, „oldschool“TT arba H0 masto traukinių komplekto atveju - 12 V takelio maitinimo šaltinis.

„WiFi“valdiklis yra „Wemos D1 mini“(pagrįstas ESP8266) valdiklis.

Variklio vairuotojo elektronika yra modulis TB6612.

Traukinio valdiklis turi 2 individualiai valdomus PWM išėjimus. Vienas iš jų naudojamas variklio valdymui, o kitas - šviesos signalizavimui. Turi 2 inpus, skirtas jutimui nendrių kontaktų pagrindu, ir vieną skaitmeninę išvestį.

Valdiklis priima JSON pranešimus per „WiFi“ir MQTT protokolą.

SPD1 valdo variklį, pavyzdžiui: {"SPD1": -204} pranešimas naudojamas varikliui judėti atgal esant 80% galiai (maksimali greičio reikšmė yra -255).

SPD2 kontroliuoja „kryptingai jautrios“šviesos diodo šviesos intensyvumą: pranešimas „{SPD2“: -255} priverčia (atgalinį) šviesos diodą šviesti visu pajėgumu.

OUT1 valdo skaitmeninės išvesties būseną: {"OUT1": 1} įjungia išvestį.

Jei pasikeičia įvesties būsena, valdiklis siunčia pranešimą pagal tai: {"IN1": 1}

Jei valdytojas gauna galiojantį pranešimą, jis jį vykdo ir pateikia brokeriui atsiliepimą. Grįžtamasis ryšys yra iš tikrųjų įvykdyta komanda. Pavyzdžiui: jei brokeris siunčia {"SPD1": 280}, variklis veikia visu pajėgumu, tačiau atsiliepimas bus toks: {"SPD1": 255}

4 žingsnis: „LEGO Train Control“

LEGO traukinių valdymas
LEGO traukinių valdymas

LEGO traukinio schemos šiek tiek skiriasi.

Maitinimas tiesiogiai gaunamas iš akumuliatoriaus dėžės.

Norint, kad ESP8266 pagrindu pagaminta „Lolin“plokštė būtų aprūpinta 3,5 V įtampa, reikia mini pakopinio keitiklio.

Sujungimai atliekami per pusę perpjauta LEGO 8886 ilginamąja viela.

5 žingsnis: nuotolinio valdymo pultas

Nuotolinis valdiklis
Nuotolinis valdiklis

Valdytojas traukiniui skelbia tik pranešimus (apibrėžtus BCD jungikliu).

Pasukdamas kodavimo įrenginį, nuotolinio valdymo pultas siunčia {"SPD1": "+"} arba {"SPD1": "-"} pranešimus.

Kai traukinys gauna šį „papildomo tipo“pranešimą, jis pakeičia savo PWM išvesties vertę 51 arba -51.

Taip nuotolinio valdymo pultas gali pakeisti traukinio greitį 5 žingsniais (kiekviena kryptimi).

Paspaudus papildomą kodavimo priemonę, bus išsiųstas {„SPD1“: 0}.

6 žingsnis: jutiklio valdiklis

Jutiklio valdiklis
Jutiklio valdiklis

Vadinamasis jutiklio valdiklis matuoja įvesties būsenas ir, jei kuris nors iš jų pasikeičia, paskelbia šią vertę.

Pavyzdžiui: {"IN1": 0, "IN6": 1} šiame pavyzdyje 2 įėjimai tuo pačiu metu pakeitė būseną.

7 žingsnis: išvesties valdiklis

Išvesties valdiklis
Išvesties valdiklis

Išvesties valdiklis turi 8 skaitmeninius išėjimus, kurie yra prijungti prie modulio ULN2803.

Jis gauna pranešimus per savo prenumeruojamą temą.

Pavyzdžiui, pranešimas „{OUT4“: 1, „OUT7“: 1} įjungia 4. ir 7. skaitmeninę išvestį.

8 veiksmas: „Raspberry Pi“ir „WiFi“maršrutizatorius

Turėjau naudotą „TP-Link WiFI“maršrutizatorių, todėl jį naudojau kaip prieigos tašką.

„MQTT“brokeris yra „Raspberry Pi“su įdiegta „Mosquitto“.

Aš naudoju standartinę Raspbian OS su MQTT, įdiegta:

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

„TP-Link“maršrutizatorius turi būti sukonfigūruotas taip, kad būtų rezervuotas „Raspberry“adresas, todėl po kiekvieno paleidimo „Pi“turi tą patį IP adresą ir kiekvienas įrenginys gali prie jo prisijungti.

Štai ir viskas!

9 veiksmas: baigti valdikliai

Baigti valdikliai
Baigti valdikliai
Baigti valdikliai
Baigti valdikliai

Čia yra baigti valdikliai.

TT skalės loko dydis yra toks mažas, kad „Lolin“lentą reikėjo susiaurinti (supjaustyti), kad ji būtų pakankamai maža, kad tilptų į traukinį.

Sudėtinius dvejetainius failus galima atsisiųsti. Saugumo sumetimais dėžės išplėtimas buvo pakeistas į txt.

Rekomenduojamas: