3.5 KiB
שלוט בתאורת הלילה שלך דרך האינטרנט - חומרה וירטואלית של IoT ו-Raspberry Pi
בחלק זה של השיעור, תשלח נתוני טלמטריה עם רמות אור מ-Raspberry Pi או ממכשיר IoT וירטואלי ל-MQTT broker.
פרסום טלמטריה
השלב הבא הוא ליצור מסמך JSON עם נתוני טלמטריה ולשלוח אותו ל-MQTT broker.
משימה
פרסם טלמטריה ל-MQTT broker.
-
פתח את פרויקט תאורת הלילה ב-VS Code.
-
אם אתה משתמש במכשיר IoT וירטואלי, ודא שהטרמינל פועל בסביבה הווירטואלית. אם אתה משתמש ב-Raspberry Pi, לא תשתמש בסביבה וירטואלית.
-
הוסף את הייבוא הבא לראש קובץ
app.py
:import json
ספריית
json
משמשת לקידוד הטלמטריה כמסמך JSON. -
הוסף את הקוד הבא לאחר ההצהרה של
client_name
:client_telemetry_topic = id + '/telemetry'
client_telemetry_topic
הוא נושא ה-MQTT שהמכשיר יפרסם אליו את רמות האור. -
החלף את התוכן של הלולאה
while True:
בסוף הקובץ בקוד הבא:while True: light = light_sensor.light telemetry = json.dumps({'light' : light}) print("Sending telemetry ", telemetry) mqtt_client.publish(client_telemetry_topic, telemetry) time.sleep(5)
קוד זה אורז את רמת האור למסמך JSON ומפרסם אותו ל-MQTT broker. לאחר מכן הוא מבצע השהיה כדי להפחית את תדירות שליחת ההודעות.
-
הרץ את הקוד באותו אופן שבו הרצת את הקוד מהחלק הקודם של המשימה. אם אתה משתמש במכשיר IoT וירטואלי, ודא שהאפליקציה CounterFit פועלת וחיישן האור וה-LED נוצרו על הפינים הנכונים.
(.venv) ➜ nightlight python app.py MQTT connected! Sending telemetry {"light": 0} Sending telemetry {"light": 0}
💁 תוכל למצוא את הקוד הזה בתיקיית code-telemetry/virtual-device או בתיקיית code-telemetry/pi.
😀 הצלחת לשלוח טלמטריה מהמכשיר שלך.
כתב ויתור:
מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית Co-op Translator. למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.