4.8 KiB
שלוט בתאורת הלילה שלך דרך האינטרנט - חומרת IoT וירטואלית ו-Raspberry Pi
מכשיר ה-IoT צריך להיות מתוכנת לתקשר עם test.mosquitto.org באמצעות MQTT כדי לשלוח ערכי טלמטריה עם קריאת חיישן האור, ולקבל פקודות לשליטה בנורת ה-LED.
בחלק זה של השיעור, תחבר את ה-Raspberry Pi או את מכשיר ה-IoT הווירטואלי שלך ל-MQTT broker.
התקנת חבילת לקוח MQTT
כדי לתקשר עם ה-MQTT broker, עליך להתקין חבילת ספריית MQTT באמצעות pip, בין אם על ה-Pi שלך או בסביבה הווירטואלית אם אתה משתמש במכשיר וירטואלי.
משימה
התקן את חבילת ה-pip
-
פתח את פרויקט תאורת הלילה ב-VS Code.
-
אם אתה משתמש במכשיר IoT וירטואלי, ודא שהטרמינל פועל בסביבה הווירטואלית. אם אתה משתמש ב-Raspberry Pi, לא תשתמש בסביבה וירטואלית.
-
הרץ את הפקודה הבאה כדי להתקין את חבילת ה-pip של MQTT:
pip3 install paho-mqtt
כתיבת קוד למכשיר
המכשיר מוכן לקידוד.
משימה
כתוב את קוד המכשיר.
-
הוסף את הייבוא הבא לראש קובץ
app.py
:import paho.mqtt.client as mqtt
ספריית
paho.mqtt.client
מאפשרת לאפליקציה שלך לתקשר באמצעות MQTT. -
הוסף את הקוד הבא לאחר ההגדרות של חיישן האור וה-LED:
id = '<ID>' client_name = id + 'nightlight_client'
החלף את
<ID>
ב-ID ייחודי שישמש כשם של לקוח המכשיר הזה, ובהמשך לנושאים שהמכשיר הזה יפרסם וירשם אליהם. ה-broker test.mosquitto.org הוא ציבורי ומשמש אנשים רבים, כולל תלמידים אחרים שעובדים על משימה זו. שימוש בשם לקוח MQTT ייחודי ושמות נושאים ייחודיים מבטיח שהקוד שלך לא יתנגש עם קוד של אחרים. תצטרך גם את ה-ID הזה כאשר תיצור את קוד השרת בהמשך המשימה.💁 תוכל להשתמש באתר כמו GUIDGen כדי ליצור ID ייחודי.
ה-
client_name
הוא שם ייחודי עבור לקוח ה-MQTT הזה ב-broker. -
הוסף את הקוד הבא מתחת לקוד החדש הזה כדי ליצור אובייקט לקוח MQTT ולהתחבר ל-MQTT broker:
mqtt_client = mqtt.Client(client_name) mqtt_client.connect('test.mosquitto.org') mqtt_client.loop_start() print("MQTT connected!")
קוד זה יוצר את אובייקט הלקוח, מתחבר ל-MQTT broker הציבורי, ומתחיל לולאת עיבוד שרצה ברקע ומאזינה להודעות בכל נושא שהמכשיר רשום אליו.
-
הרץ את הקוד באותו אופן שבו הרצת את הקוד מהחלק הקודם של המשימה. אם אתה משתמש במכשיר IoT וירטואלי, ודא שאפליקציית CounterFit פועלת ושחיישן האור וה-LED נוצרו על הפינים הנכונים.
(.venv) ➜ nightlight python app.py MQTT connected! Light level: 0 Light level: 0
💁 תוכל למצוא את הקוד הזה בתיקייה code-mqtt/virtual-device או בתיקייה code-mqtt/pi.
😀 הצלחת לחבר את המכשיר שלך ל-MQTT broker.
כתב ויתור:
מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית Co-op Translator. בעוד שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.