Մոդելի գնացքի WiFi հսկողություն MQTT- ի միջոցով. 9 քայլ
Մոդելի գնացքի WiFi հսկողություն MQTT- ի միջոցով. 9 քայլ
Anonim
Մոդելի գնացքի WiFi հսկողություն MQTT- ի միջոցով
Մոդելի գնացքի WiFi հսկողություն MQTT- ի միջոցով

Ունենալով հին TT մասշտաբի գնացքների մոդելային համակարգ, ես գաղափար ունեի, թե ինչպես կարելի է անհատապես վերահսկել լոկոները:

Սա հաշվի առնելով ՝ ես մի քայլ առաջ գնացի և պարզեցի, թե ինչ է անհրաժեշտ ոչ միայն գնացքները կառավարելու, այլև ամբողջ հատակագծի մասին լրացուցիչ տեղեկություններ ունենալու և այլ բան վերահսկելու համար (լամպեր, երկաթուղային անջատիչներ …)

Այսպես է ծնվում WiFi վերահսկվող մոդելի գնացքի համակարգը:

Քայլ 1: Գործողության կանխատեսումներ

Գործողության կանխատեսումներ
Գործողության կանխատեսումներ

Հիմնական սկզբունքն է վերահսկել յուրաքանչյուր տարր առանձին ՝ կամ մեկ վերահսկիչից, կամ կառավարման մի քանի աղբյուրներից: Սա, ըստ էության, պահանջում է ընդհանուր ֆիզիկական շերտ `առավել ակնհայտորեն WiFi, և ընդհանուր հաղորդակցության արձանագրություն` MQTT:

Կենտրոնական տարրը MQTT բրոքերն է: Յուրաքանչյուր միացված սարքի (գնացք, տվիչ, ելք…) թույլատրվում է հաղորդակցվել միայն Բրոքերի միջոցով և կարող է տվյալներ ստանալ միայն Բրոքերից:

Սարքերի սիրտը ESP8266- ի վրա հիմնված WiFi վերահսկիչն է, իսկ MQTT բրոքերը աշխատում է Raspberry pi- ով:

Սկզբում Wifi ծածկույթն ապահովում է WiFi երթուղիչը, և ամեն ինչ միացված է անլար ցանցի միջոցով:

Կան 4 տեսակի սարքեր.

- Գնացքի վերահսկիչ. Ունի 2 թվային մուտք, 1 թվային ելք, 2 PWM ելք (2 առանձին DC շարժիչի կառավարման համար), - Սենսորային վերահսկիչ. Ունի 7 թվային մուտք (մուտքային անջատիչների, օպտոսենսորների համար …), - Ելքի վերահսկիչ. Ունի 8 թվային ելք (երկաթուղային անջատիչների համար …), - WiFi հեռակառավարիչ. Ունի 1 լրացուցիչ կոդավորիչի մուտք, 1 թվային մուտք (գնացքները հեռակա կարգով կառավարելու համար):

Համակարգը կարող է գործել նաև Node-Red- ից (պլանշետից, համակարգչից կամ սմարթֆոնից …):

Քայլ 2: MQTT տվյալների փոխանակում և կազմաձևում

MQTT տվյալների փոխանակում և կազմաձևում
MQTT տվյալների փոխանակում և կազմաձևում

MQTT արձանագրության հիման վրա սկզբում յուրաքանչյուր սարք բաժանորդագրվում է տվյալ թեմային և կարող է հրապարակել մեկ այլ թեմայի: Սա գնացքների կառավարման ցանցի հաղորդակցության հիմքն է:

Այս հաղորդակցման հեքիաթները տեղադրվում են JSON ձևաչափված հաղորդագրությունների միջոցով `կարճ և մարդկային ընթեռնելի լինելու համար:

Ավելի հեռանկարից նայելը. Networkանցն ունի WiFi երթուղիչ `իր SSID- ով (ցանցի անվանում) և գաղտնաբառ: Յուրաքանչյուր սարք պետք է իմանա այս երկուսը ՝ WiFi ցանց մուտք գործելու համար: MQTT բրոքերը նույնպես այս ցանցի մի մասն է, ուստի MQTT արձանագրությունից օգտվելու համար յուրաքանչյուր սարք պետք է իմանա բրոքերի IP հասցեն: Եվ վերջապես, յուրաքանչյուր սարք ունի իր թեման ՝ բաժանորդագրվելու և հաղորդագրություններ հրապարակելու համար:

Գործնականում, տվյալ հեռակառավարման վահանակը օգտագործում է նույն թեման ՝ հաղորդագրություններ հրապարակելու համար, որոնց բաժանորդագրված է տվյալ գնացքը:

Քայլ 3: Վերապատրաստեք վերահսկիչ

Գնացքների վերահսկիչ
Գնացքների վերահսկիչ

Խաղալիք գնացքը կառավարելու համար մեզ հիմնականում անհրաժեշտ է 3 բան ՝ էներգիայի մատակարարում, WiFi միացված հսկիչ և շարժիչ վարորդի էլեկտրոնիկա:

Էլեկտրաէներգիայի մատակարարումը կախված է իրական օգտագործման պլանից. LEGO- ի դեպքում սա Power Power գործառույթների մարտկոցի տուփն է, «oldschool» TT կամ H0 մասշտաբի գնացքների հավաքածուի դեպքում դա ուղու 12 Վ լարման աղբյուր է:

WiFi- ով միացված վերահսկիչը Wemos D1 մինի (ESP8266 հիման վրա) վերահսկիչ է:

Շարժիչի վարորդի էլեկտրոնիկան TB6612- ի վրա հիմնված մոդուլ է:

Գնացքի վերահսկիչն ունի 2 անհատական վերահսկվող PWM ելք: Կտրուկ մեկը օգտագործվում է շարժիչի կառավարման համար, իսկ մյուսը `լուսային ազդանշանի համար: Ունի 2 մուտք եղեգի շփման վրա հիմնված զգայունության և մեկ թվային ելքի համար:

Հսկիչը ընդունում է JSON հաղորդագրությունները WiFi- ի և MQTT արձանագրության միջոցով:

SPD1- ը վերահսկում է շարժիչը, օրինակ ՝ {"SPD1": -204} հաղորդագրությունը օգտագործվում է շարժիչը 80% հզորությամբ հետ շարժելու համար (առավելագույն արագության արժեքը -255 է):

SPD2- ը վերահսկում է «ուղղության նկատմամբ զգայուն» LED լույսի ինտենսիվությունը. {"SPD2": -255} հաղորդագրությունը ստիպում է (հետին) LED- ին փայլել իր ողջ հզորությամբ:

OUT1- ը վերահսկում է թվային ելքի վիճակը. {"OUT1": 1} միացնում է ելքը:

Եթե մուտքի վիճակը փոխվում է, վերահսկիչն ըստ դրա հաղորդագրություն է ուղարկում ՝ {"IN1": 1}

Եթե վերահսկիչը ստանում է վավեր հաղորդագրություն, այն կատարում է այն և հետադարձ կապ տրամադրում բրոքերին: Հետադարձ կապը իրականում կատարված հրաման է: Օրինակ ՝ եթե միջնորդը ուղարկում է {"SPD1": 280}, ապա շարժիչը գործում է ամբողջ հզորությամբ, սակայն հետադարձ հաղորդագրությունը կլինի. {"SPD1": 255}

Քայլ 4: LEGO գնացքների վերահսկում

LEGO Train Control
LEGO Train Control

LEGO գնացքի դեպքում սխեմաները մի փոքր այլ են:

Էլեկտրաէներգիան ուղղակիորեն գալիս է մարտկոցի տուփից:

ESP8266- ի վրա հիմնված Lolin տախտակի համար 3.5 Վ լարման ապահովման համար անհրաժեշտ է մինի իջեցման փոխարկիչ:

Կապերը կատարվում են LEGO 8886 երկարացման մետաղալարով, կիսով չափ կտրված:

Քայլ 5: Հեռակառավարիչ

Հեռակառավարիչ
Հեռակառավարիչ

Վերահսկիչը միայն հաղորդագրություններ է հրապարակում գնացքին (սահմանված է BCD անջատիչով):

Կոդավորիչը պտտելով ՝ հեռակառավարիչը ուղարկում է կամ {"SPD1": "+"} կամ {"SPD1": "-"} հաղորդագրություններ:

Երբ գնացքը ստանում է այս «ավելորդ տիպի» հաղորդագրությունը, այն փոխում է իր PWM ելքային արժեքը 51 -ով կամ -51 -ով:

Այս կերպ հեռակառավարիչը կարող է փոխել գնացքի արագությունը 5 քայլով (յուրաքանչյուր ուղղությամբ):

Լրացուցիչ կոդավորիչը սեղմելով ՝ կուղարկվի {"SPD1": 0}:

Քայլ 6: Սենսորների վերահսկիչ

Սենսորային վերահսկիչ
Սենսորային վերահսկիչ

Այսպես կոչված սենսորային վերահսկիչը չափում է իր մուտքերի վիճակները, և եթե դրանցից որևէ մեկը փոխվում է, հրապարակում է այդ արժեքը:

Օրինակ ՝ {"IN1": 0, "IN6": 1} այս օրինակում 2 մուտքեր միաժամանակ փոխեցին վիճակը:

Քայլ 7: Ելքի վերահսկիչ

Ելքի վերահսկիչ
Ելքի վերահսկիչ

Ելքային վերահսկիչն ունի 8 թվային ելք, որոնք միացված են ULN2803 մոդուլին:

Այն հաղորդագրություններ է ստանում իր բաժանորդագրված թեմայի միջոցով:

Օրինակ ՝ {"OUT4": 1, "OUT7": 1} հաղորդագրությունը միացրեք 4. և 7. թվային ելքը:

Քայլ 8: Raspberry Pi և WiFi երթուղիչ

Ես ունեի օգտագործված TP-Link WiFI երթուղիչ, ուստի այն օգտագործեցի որպես Մուտքի կետ:

MQTT բրոքերը Raspberry Pi է ՝ տեղադրված Mosquitto- ով:

Ես օգտագործում եմ ստանդարտ Raspbian OS- ը MQTT- ով `տեղադրված հետևյալի հետ.

sudo apt-get տեղադրել mosquitto mosquitto-clients python-mosquitto

TP-Link երթուղիչը պետք է կազմաձևված լինի, որպեսզի ունենա Ազնվամորիի հասցեի ամրագրում, այնպես որ յուրաքանչյուր վերագործարկումից հետո Pi- ն ունի նույն IP հասցեն, և յուրաքանչյուր սարք կարող է միանալ դրան:

Եվ վերջ!

Քայլ 9: Ավարտված վերահսկիչներ

Ավարտված վերահսկիչներ
Ավարտված վերահսկիչներ
Ավարտված վերահսկիչներ
Ավարտված վերահսկիչներ

Ահա պատրաստի վերահսկիչները:

TT սանդղակի լոկոն այնքան փոքր չափ ունի, որ Lolin տախտակը պետք է նեղացվեր (կտրվեր), որպեսզի բավական փոքր լիներ գնացքում տեղավորվելու համար:

Կազմված երկուական ֆայլերը կարելի է ներբեռնել: Անվտանգության նկատառումներից ելնելով, աղբարկղի ընդլայնումը փոխարինվեց txt- ով:

Խորհուրդ ենք տալիս: