MQTT көмегімен пойыздың WiFi басқару үлгісі: 9 қадам
MQTT көмегімен пойыздың WiFi басқару үлгісі: 9 қадам
Anonim
MQTT көмегімен пойыздың WiFi басқару үлгісі
MQTT көмегімен пойыздың WiFi басқару үлгісі

Ескі TT масштабты пойыздардың модельдік жүйесі болғандықтан, мен локостарды қалай жеке басқаруға болатынын білдім.

Осыны ескере отырып, мен біршама ілгерілеп, пойыздарды басқару үшін ғана емес, сонымен қатар бүкіл схема туралы қосымша ақпарат алу және басқа нәрсені басқару үшін не қажет екенін білдім (шамдар, рельс қосқыштары …)

WiFi басқарылатын пойыз жүйесі осылайша туады.

1 -қадам: операцияның болжамдары

Операцияның болжамдары
Операцияның болжамдары

Негізгі принцип - әрбір элементті жеке бақылау, не бір контроллерден, не бірнеше басқару көздерінен. Бұл жалпы физикалық қабатты қажет етеді - анық WiFi - және жалпы байланыс протоколы MQTT.

Орталық элемент - MQTT брокері. Әрбір қосылған құрылғы (пойыз, сенсор, шығыс …) тек Брокер арқылы байланысуға рұқсат етілген және тек Брокерден деректерді қабылдай алады.

Құрылғылардың жүрегі - бұл ESP8266 негізіндегі WiFi контроллері, ал MQTT брокері Raspberry pi -де жұмыс істейді.

Алдымен Wi -Fi қамту WiFi маршрутизаторымен қамтамасыз етіледі, және бәрі сымсыз байланыс арқылы қосылады.

Құрылғының 4 түрі бар:

- Пойыз реттегіші: 2 цифрлық кіріс, 1 цифрлық шығыс, 2 PWM шығысы (2 жеке тұрақты ток қозғалтқышты басқару үшін), - Сенсор контроллері: 7 цифрлық кірісі бар (кіріс қосқыштары, оптосенсорлар үшін …), - Шығыс контроллері: 8 цифрлық шығысы бар (рельс қосқыштары үшін …), - WiFi қашықтан басқару пультінде: 1 қадамдық кодер кірісі, 1 цифрлық кіріс (пойыздарды қашықтықтан басқару үшін).

Жүйе сонымен қатар Node-Red (планшеттен, компьютерден немесе смартфоннан) жұмыс істей алады.

2 -қадам: MQTT деректермен алмасу және конфигурация

MQTT мәліметтер алмасу және конфигурация
MQTT мәліметтер алмасу және конфигурация

MQTT хаттамасына сүйене отырып, алдымен әрбір құрылғы берілген тақырыпқа жазылады және басқа тақырыпқа жариялай алады. Бұл пойыздарды басқару желісінің байланысының негізі.

Бұл қарым -қатынас ертегілері JSON пішімделген хабарламалар арқылы қысқа және адамдарға түсінікті болу үшін орналастырылады.

Басқа көзқараспен қарасақ: желіде өзіндік SSID (желі атауы) мен паролі бар WiFi маршрутизаторы бар. Wi -Fi желісіне кіру үшін әр құрылғы осы 2 білуі керек. MQTT брокері де осы желінің бөлігі болып табылады, сондықтан MQTT протоколын қолдану үшін әрбір құрылғы брокердің IP -мекен -жайын білуі керек. Ақырында, әр құрылғыда жазылудың және хабарламаларды жариялаудың өз тақырыбы бар.

Іс жүзінде берілген қашықтан басқару пульті осы пойызға жазылған хабарларды жариялау үшін сол тақырыпты пайдаланады.

3 -қадам: Пойыз контроллері

Пойыз контроллері
Пойыз контроллері

Ойыншық пойызды басқару үшін бізге негізінен 3 нәрсе қажет: қуат көзі, WiFi қосылған контроллер және мотор жүргізушісінің электроникасы.

Электрмен жабдықтау нақты пайдалану жоспарына байланысты: LEGO жағдайында бұл Power Functions аккумуляторлық қорабы, егер «oldschool» ТТ немесе Н0 шкаласы бар пойыз жиынтығы болса, бұл жолдың 12В қуат көзі.

WiFi қосылған контроллер - бұл Wemos D1 mini (ESP8266 негізіндегі) контроллері.

Қозғалтқыштың электроникасы - TB6612 негізіндегі модуль.

Пойыз диспетчерінде жеке басқарылатын 2 PWM шығысы бар. Біреуі қозғалтқышты басқару үшін, екіншісі жарық сигнализациясы үшін қолданылады. Қамыспен байланысқа негізделген зондтауға арналған 2 кіріс және бір сандық шығыс бар.

Контроллер JSON хабарламаларын WiFi және MQTT протоколы арқылы қабылдайды.

SPD1 қозғалтқышты басқарады, мысалы: {«SPD1»: -204} хабары моторды 80% қуатпен артқа жылжыту үшін қолданылады (максималды жылдамдық мәні -255).

SPD2 «бағытқа сезімтал» жарықдиодты шамның қарқындылығын басқарады: {«SPD2»: -255} хабары (артқа) жарықдиодты толық қуатында жарқыратады.

OUT1 сандық шығыс күйін басқарады: {«OUT1»: 1} шығуды қосады.

Егер кіріс жағдайы өзгерсе, контроллер оған сәйкес хабар жібереді: {«IN1»: 1}

Егер контроллер жарамды хабарлама алса, ол оны орындайды және брокерге кері байланыс береді. Кері байланыс - бұл нақты орындалған команда. Мысалы: егер брокер {«SPD1»: 280} жіберсе, онда қозғалтқыш толық қуатында жұмыс істейді, бірақ кері байланыс хабары: {«SPD1»: 255}

4 -қадам: LEGO Train Control

LEGO пойызды басқару
LEGO пойызды басқару

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 брокері - Mosquitto орнатылған Raspberry Pi.

Мен MQTT бар Raspbian стандартты ОЖ қолданамын:

sudo apt-get mosquitto mosquitto-client python-mosquitto орнатыңыз

TP-Link маршрутизаторы таңқурай үшін мекенжай брондауы үшін конфигурациялануы керек, сондықтан әрбір қайта жүктеуден кейін Pi бірдей IP мекенжайға ие болады және оған кез келген құрылғы қосыла алады.

Және бұл!

9 -қадам: Дайын контроллерлер

Аяқталған контроллерлер
Аяқталған контроллерлер
Аяқталған контроллерлер
Аяқталған контроллерлер

Міне дайын контроллерлер.

TT масштабты локоның өлшемі соншалықты, Лолин тақтасы пойызға сыймайтындай етіп тарылуы керек.

Жиналған екілік файлдарды жүктеуге болады. Қауіпсіздік мақсатында қоқыс жәшігін кеңейту txt -ке ауыстырылды.

Ұсынылған: