# Ελέγξτε το νυχτερινό φως σας μέσω του Διαδικτύου - Εικονικό IoT Υλικό και Raspberry Pi Σε αυτό το μέρος του μαθήματος, θα στείλετε τηλεμετρία με επίπεδα φωτός από το Raspberry Pi ή την εικονική IoT συσκευή σας σε έναν MQTT broker. ## Δημοσίευση τηλεμετρίας Το επόμενο βήμα είναι να δημιουργήσετε ένα έγγραφο JSON με τηλεμετρία και να το στείλετε στον MQTT broker. ### Εργασία Δημοσιεύστε τηλεμετρία στον MQTT broker. 1. Ανοίξτε το έργο του νυχτερινού φωτός στο VS Code. 1. Εάν χρησιμοποιείτε μια εικονική IoT συσκευή, βεβαιωθείτε ότι το τερματικό εκτελεί το εικονικό περιβάλλον. Εάν χρησιμοποιείτε Raspberry Pi, δεν θα χρησιμοποιείτε εικονικό περιβάλλον. 1. Προσθέστε την ακόλουθη εισαγωγή στην κορυφή του αρχείου `app.py`: ```python import json ``` Η βιβλιοθήκη `json` χρησιμοποιείται για την κωδικοποίηση της τηλεμετρίας ως έγγραφο JSON. 1. Προσθέστε το ακόλουθο μετά τη δήλωση του `client_name`: ```python client_telemetry_topic = id + '/telemetry' ``` Το `client_telemetry_topic` είναι το MQTT θέμα στο οποίο η συσκευή θα δημοσιεύει τα επίπεδα φωτός. 1. Αντικαταστήστε το περιεχόμενο του βρόχου `while True:` στο τέλος του αρχείου με το ακόλουθο: ```python 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. Στη συνέχεια, κάνει παύση για να μειώσει τη συχνότητα αποστολής μηνυμάτων. 1. Εκτελέστε τον κώδικα με τον ίδιο τρόπο που εκτελέσατε τον κώδικα από το προηγούμενο μέρος της εργασίας. Εάν χρησιμοποιείτε μια εικονική IoT συσκευή, βεβαιωθείτε ότι η εφαρμογή CounterFit εκτελείται και ότι ο αισθητήρας φωτός και το LED έχουν δημιουργηθεί στις σωστές ακίδες. ```output (.venv) ➜ nightlight python app.py MQTT connected! Sending telemetry {"light": 0} Sending telemetry {"light": 0} ``` > 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code-telemetry/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-telemetry/virtual-device) ή στον φάκελο [code-telemetry/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-telemetry/pi). 😀 Έχετε στείλει με επιτυχία τηλεμετρία από τη συσκευή σας. --- **Αποποίηση ευθύνης**: Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.