מעבדת אינטגרציה מעשית ומימוש קוד
כתיבת קוד אמיתי ב-JavaScript, Python ו-ESP32, ושימוש בכלי CLI. כעת, לאחר ששלטנו בעקרונות התיאורטיים ובארכיטקטורה של MQTT, הגיע הזמן לראות כיצד מיישמים פתרונות אלו בקוד אמיתי במגוון פלטפורמות: ממיקרו-בקרים מבוססי ESP32, דרך שרתי Node.js ועד סקריפטים של פייתון.
פתחו את היחידה האינטראקטיבית עם הסימולטור ←🎥 סרטון ההדרכה
🖼️ היחידה באינפוגרפיקה

💡 מושגי מפתח
שימוש בכלי שורת הפקודה (Mosquitto CLI)
כלי ה-CLI המפורסמים mosquitto_sub ו-mosquitto_pub מאפשרים לבדוק ברוקר ישירות מהטרמינל ללא כתיבת קוד. מועיל ביותר לניפוי שגיאות ופיתוח מהיר.
✏️ דוגמה: האזנה: mosquitto_sub -h broker.emqx.io -t "home/#" -v פרסום: mosquitto_pub -h broker.emqx.io -t "home/light" -m "ON" -q 1
ספריית mqtt.js (JavaScript / TypeScript)
הספרייה המובילה בעולם ה-Web ו-Node.js. תומכת ב-MQTT מעל WebSockets בדפדפן, בחיבורי TCP בשרת ובכל רמות ה-QoS.
✏️ דוגמה: const client = mqtt.connect("wss://broker.emqx.io:8084/mqtt"); client.on("connect", () => client.subscribe("iot/+"));
ספריית paho-mqtt בפייתון
ספריית התקן של Eclipse לפייתון. מאפשרת יצירת שירותי עיבוד נתונים ואנליטיקה, למידת מכונה ובוטים שמקשיבים לטלמטריה ומגיבים בזמן אמת.
✏️ דוגמה: client.on_message = lambda c, u, msg: print(msg.topic, msg.payload.decode())
📌 מה לקחת מהיחידה
- כלי CLI כמו mosquitto_sub ו-mosquitto_pub חיוניים לבדיקה מהירה.
- דפדפנים מתחברים ל-MQTT דרך WebSockets.
- בפייתון ו-Node.js הקוד מתבסס על Event Listeners פשוטים (connect, message).
❓ שאלות ותשובות
איזה פרוטוקול מאפשר לדפדפני אינטרנט רגילים (Chrome, Safari) להתחבר ישירות לברוקר MQTT?
MQTT over WebSockets. דפדפנים אינם מאפשרים פתיחת Raw TCP Sockets מסיבות אבטחה, ולכן תקן MQTT מאפשר עטיפת חבילות ה-MQTT מעל ערוץ WebSocket (בדרך כלל פורט 8083/8084).
מה עושה הפרמטר -v בפקודת mosquitto_sub?
מדפיס גם את שם הנושא (Topic) לצד תוכן ההודעה (Verbose). הדגל -v (Verbose) מורה לפקודה להדפיס את שם הטופיק לפני תוכן ההודעה, כך שקל להבין מאיזה נושא הגיעה כל הודעה ברקע.