You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/he/1-getting-started/lessons/4-connect-internet/single-board-computer-comma...

4.1 KiB

שלוט בתאורת הלילה שלך דרך האינטרנט - חומרה וירטואלית של IoT ו-Raspberry Pi

בחלק זה של השיעור, תתחבר לפקודות שנשלחות ממתווך MQTT אל ה-Raspberry Pi או אל מכשיר IoT וירטואלי שלך.

התחברות לפקודות

השלב הבא הוא להתחבר לפקודות שנשלחות ממתווך MQTT ולהגיב אליהן.

משימה

התחבר לפקודות.

  1. פתח את פרויקט תאורת הלילה ב-VS Code.

  2. אם אתה משתמש במכשיר IoT וירטואלי, ודא שהטרמינל פועל בסביבה הווירטואלית. אם אתה משתמש ב-Raspberry Pi, לא תשתמש בסביבה וירטואלית.

  3. הוסף את הקוד הבא לאחר ההגדרות של client_telemetry_topic:

    server_command_topic = id + '/commands'
    

    ה-server_command_topic הוא נושא ה-MQTT שהמכשיר יתחבר אליו כדי לקבל פקודות להפעלת ה-LED.

  4. הוסף את הקוד הבא ממש מעל הלולאה הראשית, לאחר השורה mqtt_client.loop_start():

    def handle_command(client, userdata, message):
        payload = json.loads(message.payload.decode())
        print("Message received:", payload)
    
        if payload['led_on']:
            led.on()
        else:
            led.off()
    
    mqtt_client.subscribe(server_command_topic)
    mqtt_client.on_message = handle_command
    

    קוד זה מגדיר פונקציה בשם handle_command, שקוראת הודעה כמסמך JSON ומחפשת את הערך של המאפיין led_on. אם הערך מוגדר כ-True, ה-LED נדלק, אחרת הוא נכבה.

    לקוח ה-MQTT מתחבר לנושא שהשרת ישלח אליו הודעות ומגדיר את הפונקציה handle_command שתיקרא כאשר מתקבלת הודעה.

    💁 המטפל on_message נקרא עבור כל הנושאים שאליהם התחברת. אם בהמשך תכתוב קוד שמאזין למספר נושאים, תוכל לקבל את הנושא שאליו נשלחה ההודעה מתוך אובייקט message שמועבר לפונקציית המטפל.

  5. הרץ את הקוד באותו אופן שבו הרצת את הקוד מהחלק הקודם של המשימה. אם אתה משתמש במכשיר IoT וירטואלי, ודא שהאפליקציה CounterFit פועלת וחיישן האור וה-LED נוצרו על הפינים הנכונים.

  6. התאם את רמות האור שמזוהות על ידי המכשיר הפיזי או הווירטואלי שלך. הודעות שמתקבלות ופקודות שנשלחות ייכתבו לטרמינל. ה-LED גם יידלק וייכבה בהתאם לרמת האור.

💁 תוכל למצוא את הקוד הזה בתיקייה code-commands/virtual-device או בתיקייה code-commands/pi.

😀 הצלחת לקודד את המכשיר שלך כך שיגיב לפקודות ממתווך MQTT.


כתב ויתור:
מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית Co-op Translator. למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.