Satura rādītājs:

Vilciena WiFi vadības modelis, izmantojot MQTT: 9 soļi
Vilciena WiFi vadības modelis, izmantojot MQTT: 9 soļi

Video: Vilciena WiFi vadības modelis, izmantojot MQTT: 9 soļi

Video: Vilciena WiFi vadības modelis, izmantojot MQTT: 9 soļi
Video: Zigbee датчик освещенности, температуры и влажности с экраном на электронных чернилах Moes 2024, Novembris
Anonim
Vilciena WiFi vadības modelis, izmantojot MQTT
Vilciena WiFi vadības modelis, izmantojot MQTT

Man bija veca TT mēroga vilcienu modeļu sistēma, un man bija ideja, kā individuāli kontrolēt lokomotīves.

Paturot to prātā, es devos soli tālāk un sapratu, kas nepieciešams, lai ne tikai kontrolētu vilcienus, bet lai iegūtu papildu informāciju par visu izkārtojumu un kontrolētu kaut ko citu (lampas, sliežu slēdži …)

Tā dzimst WiFi kontrolētā modeļa vilcienu sistēma.

1. darbība: darbības plāni

Operācija paredz
Operācija paredz

Galvenais princips ir kontrolēt katru elementu atsevišķi, vai nu no viena kontroliera, vai no vairākiem vadības avotiem. Tam pēc būtības ir nepieciešams kopīgs fiziskais slānis - acīmredzot WiFi - un kopīgs sakaru protokols MQTT.

Centrālais elements ir MQTT brokeris. Katrai pievienotajai ierīcei (vilciens, sensors, izeja …) ir atļauts sazināties tikai ar Brokeru, un tā var saņemt datus tikai no Brokera.

Ierīču sirds ir uz ESP8266 balstīts WiFi kontrolieris, savukārt MQTT brokeris darbojas ar Raspberry pi.

Sākumā Wifi pārklājumu nodrošina WiFi maršrutētājs, un viss ir savienots, izmantojot bezvadu savienojumu.

Ir 4 veidu ierīces:

- Vilciena kontrolieris: ir 2 digitālās ieejas, 1 digitālā izeja, 2 PWM izejas (2 atsevišķu līdzstrāvas motoru vadīšanai), - Sensora kontrollerim: ir 7 digitālās ieejas (ieejas slēdžiem, optosensoriem …), - Izejas kontrolieris: ir 8 digitālās izejas (sliežu slēdžiem …), - WiFi tālvadības pults: ir 1 papildu kodētāja ieeja, 1 digitālā ieeja (lai vilcienus vadītu attālināti).

Sistēma var darboties arī no sarkanā mezgla (no planšetdatora, datora vai viedtālruņa …).

2. darbība: MQTT datu apmaiņa un konfigurēšana

MQTT datu apmaiņa un konfigurēšana
MQTT datu apmaiņa un konfigurēšana

Pamatojoties uz MQTT protokolu, vispirms katra ierīce abonē noteiktu tēmu un var publicēt citā tēmā. Tas ir vilcienu vadības tīkla sakaru pamats.

Šie saziņas stāsti tiek veidoti, izmantojot JSON formatētus ziņojumus, lai tie būtu īsi un cilvēkiem lasāmi.

Skatoties no tālākas perspektīvas: tīklam ir WiFi maršrutētājs ar savu SSID (tīkla nosaukumu) un paroli. Katrai ierīcei ir jāzina šie 2, lai piekļūtu WiFi tīklam. Arī MQTT brokeris ir daļa no šī tīkla, tāpēc, lai izmantotu MQTT protokolu, katrai ierīcei ir jāzina brokera IP adrese. Visbeidzot, katrai ierīcei ir sava tēma abonēšanai un ziņojumu publicēšanai.

Praktiski konkrētā tālvadības pults izmanto vienu un to pašu tēmu, lai publicētu ziņas, par kurām konkrētais vilciens ir abonēts.

3. solis: vilciena kontrolieris

Vilciena kontrolieris
Vilciena kontrolieris

Lai kontrolētu rotaļlietu vilcienu, mums būtībā ir vajadzīgas 3 lietas: barošanas avots, WiFi iespējots kontrolieris un motora vadītāja elektronika.

Barošanas avots ir atkarīgs no faktiskā lietošanas plāna: LEGO gadījumā šī ir barošanas funkciju akumulatora kārba, "oldschool" TT vai H0 mēroga vilcienu komplekta gadījumā tas ir sliežu ceļa 12V barošanas avots.

Kontrolleris ar iespējotu WiFi ir Wemos D1 mini (uz ESP8266 balstīts) kontrolieris.

Motora vadītāja elektronika ir uz TB6612 balstīts modulis.

Vilciena kontrolierim ir 2 individuāli kontrolētas PWM izejas. Akūti viens tiek izmantots motora vadībai, bet otrs - gaismas signalizācijai. Ir 2 inpus uz niedru kontaktiem balstītai uztveršanai un viena digitālā izeja.

Kontrolieris pieņem JSON ziņojumus, izmantojot WiFi un MQTT protokolu.

SPD1 kontrolē motoru, piemēram: {"SPD1": -204} ziņojums tiek izmantots, lai pārvietotu motoru atpakaļ ar 80% jaudu (maksimālā ātruma vērtība ir -255).

SPD2 kontrolē "virzienjutīgo" LED gaismas intensitāti: ziņojums {"SPD2": -255} liek (atpakaļ) LED mirdzēt ar pilnu jaudu.

OUT1 kontrolē digitālās izejas stāvokli: {"OUT1": 1} ieslēdz izeju.

Ja ievades stāvoklis mainās, kontrolieris nosūta ziņojumu atbilstoši tam: {"IN1": 1}

Ja pārzinis saņem derīgu ziņojumu, tas to izpilda un sniedz atgriezenisko saiti brokerim. Atgriezeniskā saite ir faktiski izpildītā komanda. Piemēram: ja starpnieks sūta {"SPD1": 280}, motors darbojas ar pilnu jaudu, bet atgriezeniskās saites ziņojums būs šāds: {"SPD1": 255}

4. solis: LEGO Train Control

LEGO vilcienu vadība
LEGO vilcienu vadība

LEGO vilciena gadījumā shēmas ir nedaudz atšķirīgas.

Jauda tiek piegādāta tieši no akumulatora kastes.

Ir nepieciešams mini atkāpšanās pārveidotājs, lai nodrošinātu ESV8266 balstītas Lolin plates 3,5V spriegumu.

Savienojumi tiek veikti ar LEGO 8886 pagarinājuma vadu, pārgrieztu uz pusēm.

5. darbība: tālvadības pults

Tālvadības pults
Tālvadības pults

Kontrolieris vilcienam publicē tikai ziņojumus (to nosaka BCD slēdzis).

Pagriežot kodētāju, tālvadības pults nosūta ziņojumus {"SPD1": "+"} vai {"SPD1": "-"}.

Kad vilciens saņem šo "pieaugošā tipa" ziņojumu, tas maina PWM izejas vērtību par 51 vai -51.

Tādā veidā tālvadības pults var mainīt vilciena ātrumu 5 soļos (katrā virzienā).

Nospiežot inkrementālo kodētāju, tiks nosūtīts {"SPD1": 0}.

6. darbība: sensora kontrolieris

Sensora kontrolieris
Sensora kontrolieris

Tā sauktais sensora kontrolieris mēra ievades stāvokli un, ja kāds no tiem mainās, publicē šo vērtību.

Piemēram: {"IN1": 0, "IN6": 1} šajā piemērā 2 ieejas vienlaikus mainīja stāvokli.

7. darbība: izvades kontrolieris

Izejas kontrolieris
Izejas kontrolieris

Izejas kontrolierim ir 8 digitālās izejas, kas ir savienotas ar moduli, kura pamatā ir ULN2803.

Tā saņem ziņas, izmantojot savu abonēto tēmu.

Piemēram, ziņojums {"OUT4": 1, "OUT7": 1} ieslēdz 4. un 7. digitālo izeju.

8. darbība: Raspberry Pi un WiFi maršrutētājs

Man bija izmantots TP-Link WiFI maršrutētājs, tāpēc es to izmantoju kā piekļuves punktu.

MQTT brokeris ir Raspberry Pi ar instalētu Mosquitto.

Es izmantoju standarta Raspbian OS ar MQTT, kas iebūvēts ar:

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

TP-Link maršrutētājam ir jākonfigurē aveņu adrešu rezervācija, tāpēc pēc katras restartēšanas Pi ir vienāda IP adrese un katra ierīce var tam izveidot savienojumu.

Un tas arī viss!

9. darbība. Pabeigtie kontrolieri

Gatavie kontrolieri
Gatavie kontrolieri
Gatavie kontrolieri
Gatavie kontrolieri

Šeit ir gatavie kontrolieri.

TT mēroga loko ir tik mazs izmērs, ka Lolin dēli vajadzēja sašaurināt (sagriezt), lai tas būtu pietiekami mazs, lai ietilptu vilcienā.

Apkopotos bināros failus var lejupielādēt. Drošības apsvērumu dēļ atkritumu tvertnes paplašinājums tika aizstāts ar txt.

Ieteicams: