جدول المحتويات:
- الخطوة 1: مبادئ التشغيل
- الخطوة 2: تبادل البيانات وتكوين MQTT
- الخطوة 3: جهاز التحكم في القطار
- الخطوة 4: LEGO Train Control
- الخطوة 5: جهاز التحكم عن بعد
- الخطوة 6: وحدة التحكم في المستشعر
- الخطوة 7: وحدة تحكم الإخراج
- الخطوة 8: Raspberry Pi و WiFi Router
- الخطوة 9: وحدات التحكم النهائية
فيديو: نموذج تدريب WiFi Control باستخدام MQTT: 9 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
بوجود نظام نموذج قطار قديم على نطاق TT ، كانت لدي فكرة عن كيفية التحكم في المواقع بشكل فردي.
مع وضع ذلك في الاعتبار ، ذهبت إلى أبعد من ذلك واكتشفت ما هو مطلوب ليس فقط للتحكم في القطارات ولكن للحصول على بعض المعلومات الإضافية حول التصميم بالكامل والتحكم في شيء آخر (المصابيح ومفاتيح السكك الحديدية …)
هذه هي الطريقة التي يولد بها نظام القطار النموذجي الذي يتم التحكم فيه بواسطة WiFi.
الخطوة 1: مبادئ التشغيل
المبدأ الرئيسي هو التحكم في كل عنصر على حدة ، إما من وحدة تحكم واحدة ، أو من مصادر تحكم متعددة. يحتاج هذا بطبيعته إلى طبقة مادية مشتركة - من الواضح أن WiFi - وبروتوكول اتصال مشترك ، MQTT.
العنصر المركزي هو وسيط MQTT. يُسمح لكل جهاز متصل (قطار ، جهاز استشعار ، مخرج …) بالاتصال فقط من خلال الوسيط ويمكنه فقط تلقي البيانات من الوسيط.
قلب الأجهزة عبارة عن وحدة تحكم WiFi قائمة على ESP8266 ، بينما يعمل وسيط MQTT على Raspberry pi.
في البداية ، يتم توفير تغطية Wifi بواسطة جهاز توجيه WiFi ، ويتم توصيل كل شيء عبر شبكة لاسلكية.
هناك 4 أنواع من الأجهزة:
- جهاز التحكم في القطار: يحتوي على مدخلين رقميين ، ومخرج رقمي واحد ، ومخرجات PWM (للتحكم في محركي DC فرديين) ،
- جهاز التحكم في المستشعر: يحتوي على 7 مداخل رقمية (لمفاتيح الإدخال ، وأجهزة الاستشعار الضوئية …) ،
- جهاز التحكم في الإخراج: يحتوي على 8 مخارج رقمية (لمفاتيح السكك الحديدية …) ،
- جهاز تحكم عن بعد لشبكة WiFi: يحتوي على إدخال تشفير إضافي واحد ، ومدخل رقمي واحد (للتحكم في القطارات عن بُعد).
النظام قادر أيضًا على العمل من Node-Red (من الكمبيوتر اللوحي أو الكمبيوتر الشخصي أو الهاتف الذكي …).
الخطوة 2: تبادل البيانات وتكوين MQTT
استنادًا إلى بروتوكول MQTT ، يشترك كل جهاز في البداية في موضوع معين ، ويمكنه النشر في موضوع آخر. هذا هو أساس اتصالات شبكة التحكم في القطار.
يتم وضع حكايات الاتصال هذه من خلال رسائل بتنسيق JSON ، لتكون قصيرة وقابلة للقراءة.
النظر من منظور أبعد: تحتوي الشبكة على موجه WiFi مع SSID (اسم الشبكة) وكلمة مرور. يجب أن يعرف كل جهاز هذين الجهازين للوصول إلى شبكة WiFi. يعتبر وسيط MQTT جزءًا من هذه الشبكة أيضًا ، لذلك من أجل استخدام بروتوكول MQTT ، يجب أن يعرف كل جهاز عنوان IP الخاص بالوسيط. وأخيرًا ، لكل جهاز موضوعه الخاص للاشتراك ونشر الرسائل.
عمليًا ، يستخدم جهاز التحكم عن بعد نفس الموضوع لنشر الرسائل التي تم الاشتراك في قطار معين.
الخطوة 3: جهاز التحكم في القطار
من أجل التحكم في قطار لعبة ، نحتاج أساسًا إلى 3 أشياء: مصدر طاقة ، ووحدة تحكم مزودة بتقنية WiFi ، وإلكترونيات لسائق المحرك.
يعتمد مصدر الطاقة على خطة الاستخدام الفعلية: في حالة LEGO ، هذا هو صندوق بطارية Power Functions ، في حالة مجموعة قطار مقياس TT أو H0 "oldschool" ، فهو مزود طاقة المسار 12 فولت.
وحدة التحكم التي تدعم WiFi هي وحدة تحكم Wemos D1 mini (ESP8266).
إلكترونيات محرك المحرك هي وحدة قائمة على TB6612.
جهاز التحكم في القطار لديه 2 مخرجات PWM يتم التحكم فيها بشكل فردي. يستخدم أحدهما بشكل حاد للتحكم في المحرك والآخر يستخدم للإشارات الضوئية. يحتوي على 2 inpus للاستشعار القائم على اتصال القصب ومخرج رقمي واحد.
تقبل وحدة التحكم رسائل JSON عبر بروتوكول WiFi و MQTT.
يتحكم SPD1 في المحرك ، على سبيل المثال: {"SPD1": -204} تُستخدم رسالة لتحريك المحرك للخلف بقوة 80٪ (قيمة السرعة القصوى هي -255).
يتحكم SPD2 في شدة ضوء LED "الحساسة للاتجاه": {"SPD2": -255} تجعل رسالة LED (الخلفية) تلمع بكامل طاقتها.
يتحكم OUT1 في حالة الإخراج الرقمي: {"OUT1": 1} يقوم بتشغيل الإخراج.
إذا تغيرت حالة الإدخال ، ترسل وحدة التحكم رسالة وفقًا لذلك: {"IN1": 1}
إذا تلقت وحدة التحكم رسالة صالحة ، فإنها تنفذها وتقدم ملاحظات إلى الوسيط. التغذية الراجعة هي الأمر الذي تم تنفيذه بالفعل. على سبيل المثال: إذا أرسل الوسيط {"SPD1": 280} فإن المحرك يعمل بكامل طاقته ولكن رسالة الملاحظات ستكون: {"SPD1": 255}
الخطوة 4: LEGO Train Control
في حالة قطار LEGO ، تختلف المخططات قليلاً.
تأتي الطاقة مباشرة من صندوق البطارية.
هناك حاجة لمحول تنحي صغير لتوفير 3.5 فولت للوحة Lolin القائمة على ESP8266.
يتم إجراء التوصيلات بسلك تمديد LEGO 8886 ، مقطوع إلى نصفين.
الخطوة 5: جهاز التحكم عن بعد
تنشر وحدة التحكم الرسائل فقط إلى القطار (المحدد بواسطة مفتاح BCD).
من خلال تدوير وحدة التشفير ، يرسل جهاز التحكم عن بُعد إما رسائل {"SPD1": "+"} أو {"SPD1": "-"}.
عندما يتلقى القطار رسالة "النوع التزايدي" ، فإنه يغير قيمة خرج PWM بمقدار 51 أو -51.
بهذه الطريقة يمكن لجهاز التحكم عن بعد تغيير سرعة القطار في 5 خطوات (كل اتجاه).
سيؤدي الضغط على وحدة التشفير التزايدية إلى إرسال {"SPD1": 0}.
الخطوة 6: وحدة التحكم في المستشعر
يقيس ما يسمى بوحدة التحكم في المستشعر حالات مدخلاته ، وإذا تغير أي منها ، تنشر هذه القيمة.
على سبيل المثال: {"IN1": 0 ، "IN6": 1} في هذا المثال تم تغيير حالة إدخالين في نفس الوقت.
الخطوة 7: وحدة تحكم الإخراج
يحتوي جهاز التحكم في الإخراج على 8 مخرجات رقمية ، متصلة بوحدة نمطية قائمة على ULN2803.
يتلقى الرسائل من خلال موضوعه المشترك.
على سبيل المثال ، رسالة {"OUT4": 1 ، "OUT7": 1} تقوم بتشغيل 4. و 7. الإخراج الرقمي.
الخطوة 8: Raspberry Pi و WiFi Router
كان لدي جهاز توجيه TP-Link WiFI مستخدم ، لذلك استخدمت هذا كنقطة وصول.
وسيط MQTT هو Raspberry Pi مثبت عليه Mosquitto.
أستخدم نظام التشغيل Raspbian القياسي مع MQTT مع:
sudo apt-get install mosquitto mosquitto-clients-python-mosquitto تثبيت
يجب تكوين جهاز التوجيه TP-Link ليحصل على حجز عنوان لـ Raspberry ، لذلك بعد كل إعادة تشغيل ، يكون لـ Pi نفس عنوان IP ويمكن لكل جهاز الاتصال به.
وهذا كل شيء!
الخطوة 9: وحدات التحكم النهائية
ها هي وحدات التحكم النهائية.
مقياس TT loko له حجم صغير لدرجة أنه كان لابد من تضييق (قطع) لوحة Lolin لتكون صغيرة بما يكفي لتناسب القطار.
يمكن تنزيل الثنائيات المترجمة. لأسباب أمنية ، تم استبدال ملحق bin إلى txt.
موصى به:
آلة تدريب الطية الخلفية: 4 خطوات
آلة التدريب القابلة للطي للخلف: لقد صممت هذا المشروع لأنني أصبت الآن بفيروس كورونا في كل مكان ويشعر الناس بالملل للبقاء في المنزل دون فعل أي شيء. يمكن لهذه الآلة تدريب جسمك ومهاراتك في الركض. هذه الآلة تجعل الأشخاص الذين يحبونهم ولكنهم لا يستطيعون الخروج إلى
جهاز تدريب اللياقة البدنية: 4 خطوات
آلة تدريب اللياقة البدنية: لقد صنعت هذا الجهاز للأشخاص الذين لا يجيدون اللياقة البدنية ، مثل تمارين البطن والجلوس والقفز الطويل والجري. يمكن أن يساعدهم هذا في القيام بوضعية جيدة في كل مرة يفعلون فيها ذلك. لذلك ، يمكنهم معرفة عدد المرات التي يفعلون فيها ذلك. كثير من الناس لا يجيدون ممارسة اللياقة البدنية ،
تدريب تحسينات البرمجة في MATLAB: 6 خطوات
تحسينات برمجة التدريب في MATLAB: الهدف: الهدف من هذا النظام المبرمج هو النظر إلى Arduino على نطاق صغير وتطبيق الترميز على نطاق أوسع لتعزيز ميزات أمان معينة لأنظمة Amtrak Railroad. من أجل القيام بذلك ، قمنا بإضافة مقياس رطوبة التربة
تدريب رد فعل حارس المرمى لكرة القدم من Arduino: 5 خطوات
تدريب رد فعل Soccer Goalie من Arduino: وصف لمشروع Arduino الخاص بي: Reflect Trainer - اختبر خفة حركتك واستجابتك لليسار واليمين. أمام وخلف؛ محاكاة رد فعل حارس مرمى كرة القدم. ضع خمسة ألواح بألوان مختلفة على الأرض ؛ لوحة بيضاء واحدة في
منصة تدريب أردوينو: 7 خطوات
منصة تدريب أردوينو: مرحبًا ما الأمر يا رفاق هنا مرة أخرى برنامج تعليمي جديد ومشروع خاص جديد ، وهذه المرة التقطت مشروعًا مطلوبًا حقيقيًا لجميع مصنعي الإلكترونيات ، مشروع اليوم حول كيفية إنشاء منصة تدريب Arduino الخاصة بك ، هذا البرنامج التعليمي خطوة بخطوة