Model Train Control WiFi Menggunakan MQTT: 9 Langkah
Model Train Control WiFi Menggunakan MQTT: 9 Langkah
Anonim
Model Kereta Api WiFi Control Menggunakan MQTT
Model Kereta Api WiFi Control Menggunakan MQTT

Mempunyai sistem model kereta api skala TT lama, saya mempunyai idea bagaimana mengendalikan lokasinya secara individu.

Dengan ini, saya melangkah lebih jauh dan mengetahui apa yang diperlukan untuk bukan sahaja mengawal kereta api tetapi juga mempunyai beberapa maklumat tambahan mengenai keseluruhan susun atur dan mengawal sesuatu yang lain (lampu, suis rel…)

Ini adalah bagaimana sistem kereta api model terkawal WiFi dilahirkan.

Langkah 1: Prinsip Operasi

Prinsip Operasi
Prinsip Operasi

Prinsip utama adalah mengawal setiap elemen secara individu, sama ada dari pengawal tunggal, atau dari pelbagai sumber kawalan. Ini semestinya memerlukan lapisan fizikal yang sama - paling jelas WiFi - dan protokol komunikasi yang sama, MQTT.

Unsur utama adalah MQTT Broker. Setiap peranti yang disambungkan (kereta api, sensor, output …) hanya dibenarkan berkomunikasi melalui Broker dan hanya dapat menerima data dari Broker.

Inti peranti adalah pengawal WiFi berasaskan ESP8266, sementara broker MQTT menggunakan Raspberry pi.

Pada mulanya liputan Wifi disediakan oleh penghala WiFi, dan semuanya disambungkan melalui wayarles.

Terdapat 4 jenis peranti:

- Pengawal kereta api: mempunyai 2 input digital, 1 output digital, 2 output PWM (untuk mengawal 2 motor DC individu), - Pengawal sensor: mempunyai 7 input digital (untuk suis input, optosensor…), - Pengawal output: mempunyai 8 output digital (untuk rel rel…), - Remote WiFi: mempunyai 1 input encoder tambahan, 1 input digital (untuk mengendalikan kereta api dari jauh).

Sistem ini juga mampu beroperasi dari Node-Red (dari tablet, PC, atau telefon pintar…).

Langkah 2: Pertukaran dan Konfigurasi Data MQTT

Pertukaran dan Konfigurasi Data MQTT
Pertukaran dan Konfigurasi Data MQTT

Berdasarkan protokol MQTT, pada mulanya setiap peranti melanggan topik tertentu, dan dapat menerbitkan topik lain. Ini adalah asas komunikasi rangkaian kawalan kereta api.

Cerita komunikasi ini dilakukan melalui mesej berformat JSON, agar ringkas dan mudah dibaca oleh manusia.

Melihat dari perspektif yang lebih jauh: Rangkaian mempunyai penghala WiFi dengan SSID sendiri (nama rangkaian) dan kata laluan. Setiap peranti mesti mengetahui 2 ini untuk mengakses rangkaian WiFi. Broker MQTT juga merupakan bagian dari rangkaian ini, jadi untuk menggunakan protokol MQTT setiap peranti harus mengetahui alamat IP broker. Dan terakhir setiap peranti mempunyai topik tersendiri untuk melanggan dan menerbitkan mesej.

Secara praktikal, alat kawalan jauh yang diberikan menggunakan topik yang sama untuk menerbitkan mesej yang dilanggan oleh kereta api tertentu.

Langkah 3: Train Controller

Kereta Api Pengawal
Kereta Api Pengawal

Untuk mengawal kereta mainan, pada dasarnya kita memerlukan 3 perkara: bekalan kuasa, pengawal berkemampuan WiFi, dan elektronik pemandu motor.

Bekalan kuasa bergantung pada rancangan penggunaan sebenar: sekiranya LEGO, ini adalah kotak bateri Power Functions, sekiranya set kereta lama "oldschool" TT atau H0, itu adalah bekalan kuasa 12V trek.

Pengawal berkemampuan WiFi adalah pengawal Wemos D1 mini (berasaskan ESP8266).

Elektronik pemacu motor adalah modul berasaskan TB6612.

Pengendali kereta api mempunyai 2 output PWM yang dikendalikan secara individu. Secara akut satu digunakan untuk kawalan motor dan yang lain digunakan untuk isyarat cahaya. Mempunyai 2 inpus untuk penginderaan berdasarkan kontak reed dan satu output digital.

Pengawal menerima mesej JSON melalui protokol WiFi dan MQTT.

SPD1 mengawal motor, misalnya: {{SPD1 : -204} mesej digunakan untuk menggerakkan motor ke belakang dengan kuasa 80% (nilai kelajuan maksimum adalah -255).

SPD2 mengawal intensiti cahaya LED "sensitif arah": {"SPD2": -255} menjadikan LED (kebelakang) bersinar dengan kekuatan penuh.

OUT1 mengawal keadaan output digital: {"OUT1": 1} menghidupkan output.

Sekiranya keadaan input berubah, pengawal menghantar mesej mengikutnya: {"IN1": 1}

Sekiranya pengawal menerima mesej yang sah, ia akan menyampaikannya dan memberikan maklum balas kepada broker. Maklum balas adalah arahan yang sebenarnya dilaksanakan. Contohnya: jika broker menghantar {"SPD1": 280} maka motor beroperasi dengan kuasa penuh tetapi mesej maklum balas akan: {"SPD1": 255}

Langkah 4: Kawalan Kereta LEGO

Kawalan Keretapi LEGO
Kawalan Keretapi LEGO

Sekiranya kereta LEGO, skema sedikit berbeza.

Kuasa langsung datang dari kotak bateri.

Terdapat keperluan untuk penukar turun mini untuk menyediakan 3.5V untuk papan Lolin berasaskan ESP8266.

Sambungan dibuat dengan wayar sambungan LEGO 8886, dipotong separuh.

Langkah 5: Alat kawalan jauh

Alat kawalan jauh
Alat kawalan jauh

Pengawal hanya menerbitkan mesej ke kereta api (ditentukan oleh suis BCD).

Dengan memutar pengekod, alat kawalan jauh menghantar mesej {"SPD1": "+"} atau {"SPD1": "-"}.

Apabila kereta api menerima mesej "jenis tambahan" ini, ia mengubah nilai output PWMnya sebanyak 51 atau -51.

Dengan cara ini alat kawalan jauh dapat mengubah kelajuan kereta api dalam 5 langkah (setiap arah).

Menekan pengekod tambahan akan menghantar {"SPD1": 0}.

Langkah 6: Pengawal Sensor

Pengawal Sensor
Pengawal Sensor

Pengawal sensor yang disebut mengukur keadaan inputnya, dan jika ada perubahan, menerbitkan nilai tersebut.

Contohnya: {"IN1": 0, "IN6": 1} dalam contoh ini 2 input berubah keadaan pada masa yang sama.

Langkah 7: Pengawal Output

Pengawal Keluaran
Pengawal Keluaran

Pengawal output mempunyai 8 output digital, yang disambungkan ke modul berasaskan ULN2803.

Ia menerima mesej melalui topik yang dilanggannya.

Contohnya mesej {"OUT4": 1, "OUT7": 1} menghidupkan output digital 4. dan 7..

Langkah 8: Raspberry Pi dan WiFi Router

Saya mempunyai penghala Wi-Fi TP-Link terpakai, jadi saya menggunakannya sebagai Titik Akses.

Broker MQTT adalah Raspberry Pi dengan Mosquitto terpasang.

Saya menggunakan OS Raspbian standard dengan MQTT yang dipasang dengan:

sudo apt-get install mosquitto mosquitto-klien python-mosquitto

Penghala TP-Link mesti dikonfigurasikan untuk memiliki tempahan alamat untuk Raspberry, jadi setelah setiap restart, Pi memiliki alamat IP yang sama dan setiap peranti dapat menyambung ke sana.

Dan itu sahaja!

Langkah 9: Pengawal Selesai

Pengawal Selesai
Pengawal Selesai
Pengawal Selesai
Pengawal Selesai

Berikut adalah pengawal siap.

Loko skala TT mempunyai ukuran yang kecil sehingga papan Lolin harus disempitkan (dipotong) sehingga cukup kecil untuk masuk ke dalam kereta api.

Binari yang disusun boleh dimuat turun. Atas sebab keselamatan, sambungan tong sampah diganti menjadi txt.

Disyorkan: