Spisu treści:
- Krok 1: Zasady działania
- Krok 2: Wymiana i konfiguracja danych MQTT
- Krok 3: Kontroler pociągu
- Krok 4: Sterowanie pociągiem LEGO
- Krok 5: Pilot zdalnego sterowania
- Krok 6: Kontroler czujnika
- Krok 7: Kontroler wyjścia
- Krok 8: Raspberry Pi i router WiFi
- Krok 9: Gotowe kontrolery
Wideo: Sterowanie WiFi w modelu pociągu za pomocą MQTT: 9 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Mając stary system modeli pociągów w skali TT, wpadłem na pomysł, jak indywidualnie sterować lokomotywami.
Mając to na uwadze, poszedłem o krok dalej i wymyśliłem, co jest potrzebne, aby nie tylko sterować pociągami, ale mieć dodatkowe informacje o całym układzie i sterować czymś innym (lampy, zwrotnice…)
W ten sposób rodzi się sterowany przez Wi-Fi system modelowania pociągów.
Krok 1: Zasady działania
Główną zasadą jest sterowanie każdym elementem indywidualnie, albo z jednego sterownika, albo z wielu źródeł sterowania. To z natury wymaga wspólnej warstwy fizycznej – przede wszystkim Wi-Fi – i wspólnego protokołu komunikacyjnego, MQTT.
Centralnym elementem jest Broker MQTT. Każde podłączone urządzenie (pociąg, czujnik, wyjście…) może komunikować się wyłącznie za pośrednictwem Brokera i może odbierać dane tylko od Brokera.
Sercem urządzeń jest kontroler WiFi oparty na ESP8266, natomiast broker MQTT działa na Raspberry pi.
Na początku zasięg Wi-Fi zapewnia router Wi-Fi, a wszystko jest połączone bezprzewodowo.
Istnieją 4 rodzaje urządzeń:
- Sterownik pociągu: posiada 2 wejścia cyfrowe, 1 wyjście cyfrowe, 2 wyjścia PWM (do sterowania 2 pojedynczymi silnikami prądu stałego), - Kontroler czujnika: posiada 7 wejść cyfrowych (dla przełączników wejściowych, czujników optycznych…), - Kontroler wyjść: posiada 8 wyjść cyfrowych (dla zwrotnic szynowych…), - Pilot WiFi: posiada 1 wejście enkodera przyrostowego, 1 wejście cyfrowe (do zdalnego sterowania pociągami).
System może również działać z poziomu Node-Red (z tabletu, komputera lub smartfona…).
Krok 2: Wymiana i konfiguracja danych MQTT
W oparciu o protokół MQTT, każde urządzenie najpierw subskrybuje dany temat i może publikować w innym temacie. Jest to podstawa komunikacji sieci sterowania pociągiem.
Te opowieści komunikacyjne umieszczane są za pomocą wiadomości sformatowanych w formacie JSON, aby były krótkie i czytelne dla człowieka.
Patrząc z dalszej perspektywy: Sieć posiada router WiFi z własnym identyfikatorem SSID (nazwą sieci) i hasłem. Każde urządzenie musi znać te 2, aby uzyskać dostęp do sieci WiFi. Broker MQTT jest również częścią tej sieci, więc aby korzystać z protokołu MQTT, każde urządzenie musi znać adres IP brokera. I wreszcie każde urządzenie ma swój własny temat do subskrybowania i publikowania wiadomości.
Praktycznie dany pilot wykorzystuje ten sam temat do publikowania komunikatów, na które dany pociąg jest subskrybowany.
Krok 3: Kontroler pociągu
Aby sterować pociągiem zabawek, potrzebujemy w zasadzie 3 rzeczy: zasilacza, kontrolera obsługującego WiFi i elektroniki sterownika silnika.
Zasilanie zależy od faktycznego planu użytkowania: w przypadku LEGO jest to skrzynka na baterie Power Functions, w przypadku "oldschoolowego" zestawu pociągów w skali TT lub H0 jest to zasilanie 12V toru.
Kontroler obsługujący Wi-Fi to kontroler Wemos D1 mini (oparty na ESP8266).
Elektronika sterownika silnika to moduł oparty na TB6612.
Sterownik pociągu posiada 2 indywidualnie sterowane wyjścia PWM. Właściwie jeden służy do sterowania silnikiem, a drugi do sygnalizacji świetlnej. Posiada 2 wejścia do wykrywania kontaktronowego i jedno wyjście cyfrowe.
Kontroler akceptuje wiadomości JSON przez WiFi i protokół MQTT.
SPD1 steruje silnikiem, na przykład: komunikat {"SPD1": -204} służy do cofania silnika z mocą 80% (maksymalna wartość prędkości to -255).
SPD2 kontroluje intensywność światła LED "kierunkowo czułego": komunikat {"SPD2": -255} powoduje, że (wsteczna) dioda LED świeci pełną mocą.
OUT1 steruje stanem wyjścia cyfrowego: {"OUT1": 1} włącza wyjście.
W przypadku zmiany stanu wejścia sterownik wysyła komunikat zgodnie z nim: {"IN1": 1}
Jeśli kontroler odbierze prawidłowy komunikat, wykonuje go i przekazuje informację zwrotną do brokera. Informacja zwrotna jest faktycznie wykonanym poleceniem. Na przykład: jeśli broker wyśle {"SPD1": 280} to silnik pracuje z pełną mocą, ale komunikat zwrotny będzie brzmiał: {"SPD1": 255}
Krok 4: Sterowanie pociągiem LEGO
W przypadku pociągu LEGO schematy są nieco inne.
Zasilanie pochodzi bezpośrednio z pojemnika na baterie.
Potrzebny jest mini konwerter obniżający napięcie, aby zapewnić napięcie 3,5 V dla płyty Lolin opartej na ESP8266.
Połączenia wykonane są za pomocą przedłużacza LEGO 8886, przeciętego na pół.
Krok 5: Pilot zdalnego sterowania
Kontroler publikuje tylko komunikaty do pociągu (zdefiniowane przez przełącznik BCD).
Obracając enkoderem, pilot wysyła wiadomości {"SPD1": "+"} lub {"SPD1": "-"}.
Gdy pociąg odbiera ten komunikat „incremental type”, zmienia swoją wartość wyjściową PWM o 51 lub -51.
W ten sposób pilot może zmieniać prędkość pociągu w 5 krokach (w każdym kierunku).
Naciśnięcie enkodera inkrementalnego spowoduje wysłanie {"SPD1": 0}.
Krok 6: Kontroler czujnika
Tak zwany kontroler czujnika mierzy stany swoich wejść i jeśli któryś z nich się zmienia, publikuje tę wartość.
Na przykład: {"IN1": 0, "IN6": 1} w tym przykładzie 2 wejścia zmieniły stan w tym samym czasie.
Krok 7: Kontroler wyjścia
Kontroler wyjść posiada 8 wyjść cyfrowych, które są podłączone do modułu opartego na ULN2803.
Otrzymuje wiadomości za pośrednictwem subskrybowanego tematu.
Np. komunikat {"OUT4": 1, "OUT7": 1} załącza 4. i 7. wyjście cyfrowe.
Krok 8: Raspberry Pi i router WiFi
Miałem używany router WiFI TP-Link, więc użyłem go jako punktu dostępowego.
Broker MQTT to Raspberry Pi z zainstalowanym Mosquitto.
Używam standardowego Raspbian OS z MQTT z zainstalowanym:
sudo apt-get install mosquitto mosquitto-clients python-mosquitto
Router TP-Link musi być skonfigurowany tak, aby miał rezerwację adresu dla Raspberry, więc po każdym restarcie Pi ma ten sam adres IP i każde urządzenie może się z nim połączyć.
I to wszystko!
Krok 9: Gotowe kontrolery
Oto gotowe kontrolery.
Loko w skali TT ma tak małe rozmiary, że deska Lolin musiała zostać zwężona (przycięta), aby była na tyle mała, aby zmieściła się w pociągu.
Skompilowane pliki binarne można pobrać. Ze względów bezpieczeństwa rozszerzenie bin zostało zastąpione do txt.
Zalecana:
Zautomatyzowany układ modelu pociągu (wersja 1.0): 12 kroków
Automated Model Train Layout (Wersja 1.0): Modele pociągów to zawsze świetna zabawa. Ale ręczne sterowanie nimi czasami wydaje się trochę nudne. W tej instrukcji pokażę Ci, jak zautomatyzować układ modeli kolejowych, abyś mógł usiąść i zrelaksować się, oglądając
Kontroluj układ swojego modelu pociągu za pomocą KLAWIATURY!: 12 kroków
Kontroluj układ swojego modelu pociągu za pomocą KLAWIATURY!: W jednym z moich poprzednich instrukcji pokazałem, jak możesz sterować swoim modelem pociągu za pomocą pilota do telewizora. Zaktualizowaną wersję możesz sprawdzić również tutaj. W tej instrukcji pokażę, jak kontrolować układ modelu pociągu za pomocą klawiatury th
Kontroluj układ swojego modelu pociągu za pomocą telefonu komórkowego!: 11 kroków (ze zdjęciami)
Kontroluj układ modelu pociągu za pomocą telefonu komórkowego!: Sterowanie układem modelu pociągu za pomocą przewodowych sterowników przepustnicy i rozjazdów może być dobrym początkiem dla początkujących, ale stwarza problem braku możliwości przenoszenia. Ponadto dostępne na rynku sterowniki bezprzewodowe mogą sterować tylko niektórymi lokomotywami
Arduino 2-w-1 kontroler modelu pociągu: 4 kroki
Arduino 2-w-1 Kontroler Modelu Pociągu: Czterdzieści lat temu zaprojektowałem dla paru przyjaciół opartą na op-ampie przepustnicę do modelu pociągu, a następnie około cztery lata temu odtworzyłem ją za pomocą mikrokontrolera PIC. Ten projekt Arduino odtwarza wersję PIC, ale dodaje również możliwość korzystania z
Kontroluj układ swojego modelu pociągu za pomocą pilota telewizora!: 7 kroków (ze zdjęciami)
Kontroluj układ swojego modelu pociągu za pomocą telewizora PILOT!: W tej instrukcji pokażę, jak zrobić system zdalnego sterowania na podczerwień do modelu pociągu. Będziesz wtedy mógł kontrolować swoje pociągi, relaksując się na kanapie. Więc zacznijmy