תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
לאחר מערכת דגם רכבת ישנה בקנה מידה TT, היה לי מושג כיצד לשלוט בלוקוסים בנפרד.
עם זאת בחשבון, הלכתי צעד קדימה והבנתי מה נחוץ לא רק כדי לשלוט ברכבות, אלא גם לקבל מידע נוסף על כל הפריסה ולשלוט במשהו אחר (מנורות, מתגי רכבות …)
כך נולדת מערכת הרכבות בדגם WiFi המבוקר.
שלב 1: עקרונות המבצע
העיקרון העיקרי הוא לשלוט בכל אלמנט בנפרד, או מבקר יחיד, או ממקורות שליטה מרובים. זה מטבעו זקוק לשכבה פיזית משותפת - ככל הנראה WiFi - ופרוטוקול תקשורת נפוץ, MQTT.
המרכיב המרכזי הוא ברוקר MQTT. כל מכשיר מחובר (רכבת, חיישן, פלט …) רשאי לתקשר רק דרך הברוקר ויכול לקבל נתונים מהמתווך בלבד.
לב המכשירים הוא בקר WiFi מבוסס ESP8266, בעוד שמתווך MQTT פועל על פטל פטל.
בהתחלה כיסוי ה- Wifi מסופק על ידי נתב WiFi, והכל מחובר באמצעות אלחוטית.
ישנם 4 סוגי מכשירים:
- בקר רכבת: בעל 2 כניסות דיגיטליות, 1 פלט דיגיטלי, 2 יציאות PWM (לשליטה על 2 מנוע 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", זהו ספק הכוח של 12V של המסילה.
בקר ה- WiFi מופעל הוא בקר Wemos D1 מיני (מבוסס ESP8266).
אלקטרוניקה של נהג המנוע היא מודול מבוסס TB6612.
בקר הרכבת כולל 2 יציאות PWM הנשלטות בנפרד. באופן חריף האחד משמש לשליטה מוטורית והשני משמש לאיתור קל. בעל 2 יציאות לחישה מבוססת מגע קנים ופלט דיגיטלי אחד.
הבקר מקבל הודעות JSON באמצעות פרוטוקול WiFi ו- MQTT.
SPD1 שולט במנוע, לדוגמה: הודעת {"SPD1": -204} משמשת להנעת המנוע לאחור בעוצמה של 80% (ערך המהירות המרבית הוא -255).
SPD2 שולט בעוצמת אור LED "רגיש לכיוון": הודעת {"SPD2": -255} גורמת לנורית (לאחור) לזרוח במלוא עוצמתה.
OUT1 שולט על מצב הפלט הדיגיטלי: {"OUT1": 1} מפעיל את הפלט.
אם מצב הכניסה משתנה, הבקר שולח הודעה על פיו: {"IN1": 1}
אם הבקר מקבל הודעה תקפה, הוא מבצע אותה ומספק משוב לברוקר. המשוב הוא הפקודה שבוצעה בפועל. לדוגמה: אם הברוקר שולח {"SPD1": 280} המנוע פועל במלוא העוצמה אך הודעת המשוב תהיה: {"SPD1": 255}
שלב 4: LEGO Train Control
במקרה של רכבת LEGO, הסכימות מעט שונות.
הכוח מגיע ישירות מתיבת הסוללות.
יש צורך בממיר מיני למטה כדי לספק 3.5V ללוח Lolin המבוסס על ESP8266.
החיבורים מבוצעים בעזרת חוט הארכה לגו 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: פטל פטל ונתב WiFi
היה לי נתב TP-Link WiFI משומש, אז השתמשתי בזה כנקודת גישה.
מתווך MQTT הוא פטל פטל עם מותקן Mosquitto.
אני משתמש במערכת ההפעלה הסטנדרטית של Raspbian עם MQTT מותקן עם:
sudo apt-get להתקין יתוש mosquitto-clients python-mosquitto
יש להגדיר את נתב TP-Link כך שיש לו שמירת כתובות עבור הפטל, כך שאחרי כל הפעלה מחדש יש ל- Pi אותה כתובת IP וכל מכשיר יכול להתחבר אליו.
וזה הכל!
שלב 9: בקרים מוגמרים
להלן הבקרים המוגמרים.
ללוק בקנה מידה TT יש גודל כל כך קטן שצריך היה לצמצם (לחתוך) לוח לולין כדי שיהיה קטן מספיק כדי להיכנס לרכבת.
ניתן להוריד את הבינארים המורכבים. מטעמי אבטחה, הרחבת הפח הוחלפה ל- txt.