6.0 KiB
Δημοσίευση θερμοκρασίας - Εικονικό IoT Υλικό και Raspberry Pi
Σε αυτό το μέρος του μαθήματος, θα δημοσιεύσετε τις τιμές θερμοκρασίας που ανιχνεύονται από το Raspberry Pi ή την Εικονική IoT Συσκευή μέσω MQTT, ώστε να μπορούν να χρησιμοποιηθούν αργότερα για τον υπολογισμό του GDD.
Δημοσίευση της θερμοκρασίας
Αφού διαβαστεί η θερμοκρασία, μπορεί να δημοσιευθεί μέσω MQTT σε κάποιον κώδικα "server" που θα διαβάσει τις τιμές και θα τις αποθηκεύσει, έτοιμες για χρήση στον υπολογισμό του GDD.
Εργασία - δημοσίευση της θερμοκρασίας
Προγραμματίστε τη συσκευή ώστε να δημοσιεύει τα δεδομένα θερμοκρασίας.
-
Ανοίξτε το έργο της εφαρμογής
temperature-sensor
αν δεν είναι ήδη ανοιχτό. -
Επαναλάβετε τα βήματα που κάνατε στο μάθημα 4 για να συνδεθείτε στο MQTT και να στείλετε τηλεμετρία. Θα χρησιμοποιήσετε τον ίδιο δημόσιο broker Mosquitto.
Τα βήματα για αυτό είναι:
- Προσθέστε το πακέτο pip για MQTT
- Προσθέστε τον κώδικα για σύνδεση στον broker MQTT
- Προσθέστε τον κώδικα για δημοσίευση τηλεμετρίας
⚠️ Ανατρέξτε στις οδηγίες για σύνδεση στο MQTT και στις οδηγίες για αποστολή τηλεμετρίας από το μάθημα 4, αν χρειαστεί.
-
Βεβαιωθείτε ότι το
client_name
αντικατοπτρίζει το όνομα αυτού του έργου:client_name = id + 'temperature_sensor_client'
-
Για την τηλεμετρία, αντί να στείλετε μια τιμή φωτεινότητας, στείλτε την τιμή θερμοκρασίας που διαβάζεται από τον αισθητήρα DHT σε μια ιδιότητα του JSON εγγράφου που ονομάζεται
temperature
:_, temp = sensor.read() telemetry = json.dumps({'temperature' : temp})
-
Η τιμή της θερμοκρασίας δεν χρειάζεται να διαβάζεται πολύ συχνά - δεν θα αλλάξει πολύ σε σύντομο χρονικό διάστημα, οπότε ορίστε το
time.sleep
στα 10 λεπτά:time.sleep(10 * 60);
💁 Η συνάρτηση
sleep
λαμβάνει τον χρόνο σε δευτερόλεπτα, οπότε για να είναι πιο εύκολο να διαβαστεί, η τιμή περνάει ως αποτέλεσμα ενός υπολογισμού. 60 δευτερόλεπτα σε ένα λεπτό, οπότε 10 x (60 δευτερόλεπτα σε ένα λεπτό) δίνει καθυστέρηση 10 λεπτών. -
Εκτελέστε τον κώδικα με τον ίδιο τρόπο που εκτελέσατε τον κώδικα από το προηγούμενο μέρος της εργασίας. Αν χρησιμοποιείτε μια εικονική IoT συσκευή, βεβαιωθείτε ότι η εφαρμογή CounterFit είναι ενεργοποιημένη και οι αισθητήρες υγρασίας και θερμοκρασίας έχουν δημιουργηθεί στις σωστές ακίδες.
pi@raspberrypi:~/temperature-sensor $ python3 app.py MQTT connected! Sending telemetry {"temperature": 25} Sending telemetry {"temperature": 25}
💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο code-publish-temperature/virtual-device ή στον φάκελο code-publish-temperature/pi.
😀 Έχετε δημοσιεύσει με επιτυχία τη θερμοκρασία ως τηλεμετρία από τη συσκευή σας.
Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.