|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "4efc74299e19f5d08f2f3f34451a11ba",
|
|
|
"translation_date": "2025-08-27T22:07:21+00:00",
|
|
|
"source_file": "2-farm/lessons/1-predict-plant-growth/single-board-computer-temp-publish.md",
|
|
|
"language_code": "el"
|
|
|
}
|
|
|
-->
|
|
|
# Δημοσίευση θερμοκρασίας - Εικονικό IoT Υλικό και Raspberry Pi
|
|
|
|
|
|
Σε αυτό το μέρος του μαθήματος, θα δημοσιεύσετε τις τιμές θερμοκρασίας που ανιχνεύονται από το Raspberry Pi ή την Εικονική IoT Συσκευή μέσω MQTT, ώστε να μπορούν να χρησιμοποιηθούν αργότερα για τον υπολογισμό του GDD.
|
|
|
|
|
|
## Δημοσίευση της θερμοκρασίας
|
|
|
|
|
|
Αφού διαβαστεί η θερμοκρασία, μπορεί να δημοσιευθεί μέσω MQTT σε κάποιον κώδικα "server" που θα διαβάσει τις τιμές και θα τις αποθηκεύσει, έτοιμες για χρήση στον υπολογισμό του GDD.
|
|
|
|
|
|
### Εργασία - δημοσίευση της θερμοκρασίας
|
|
|
|
|
|
Προγραμματίστε τη συσκευή ώστε να δημοσιεύει τα δεδομένα θερμοκρασίας.
|
|
|
|
|
|
1. Ανοίξτε το έργο της εφαρμογής `temperature-sensor` αν δεν είναι ήδη ανοιχτό.
|
|
|
|
|
|
1. Επαναλάβετε τα βήματα που κάνατε στο μάθημα 4 για να συνδεθείτε στο MQTT και να στείλετε τηλεμετρία. Θα χρησιμοποιήσετε τον ίδιο δημόσιο broker Mosquitto.
|
|
|
|
|
|
Τα βήματα για αυτό είναι:
|
|
|
|
|
|
- Προσθέστε το πακέτο pip για MQTT
|
|
|
- Προσθέστε τον κώδικα για σύνδεση στον broker MQTT
|
|
|
- Προσθέστε τον κώδικα για δημοσίευση τηλεμετρίας
|
|
|
|
|
|
> ⚠️ Ανατρέξτε στις [οδηγίες για σύνδεση στο MQTT](../../../1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md) και στις [οδηγίες για αποστολή τηλεμετρίας](../../../1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md) από το μάθημα 4, αν χρειαστεί.
|
|
|
|
|
|
1. Βεβαιωθείτε ότι το `client_name` αντικατοπτρίζει το όνομα αυτού του έργου:
|
|
|
|
|
|
```python
|
|
|
client_name = id + 'temperature_sensor_client'
|
|
|
```
|
|
|
|
|
|
1. Για την τηλεμετρία, αντί να στείλετε μια τιμή φωτεινότητας, στείλτε την τιμή θερμοκρασίας που διαβάζεται από τον αισθητήρα DHT σε μια ιδιότητα του JSON εγγράφου που ονομάζεται `temperature`:
|
|
|
|
|
|
```python
|
|
|
_, temp = sensor.read()
|
|
|
telemetry = json.dumps({'temperature' : temp})
|
|
|
```
|
|
|
|
|
|
1. Η τιμή της θερμοκρασίας δεν χρειάζεται να διαβάζεται πολύ συχνά - δεν θα αλλάξει πολύ σε σύντομο χρονικό διάστημα, οπότε ορίστε το `time.sleep` στα 10 λεπτά:
|
|
|
|
|
|
```cpp
|
|
|
time.sleep(10 * 60);
|
|
|
```
|
|
|
|
|
|
> 💁 Η συνάρτηση `sleep` λαμβάνει τον χρόνο σε δευτερόλεπτα, οπότε για να είναι πιο εύκολο να διαβαστεί, η τιμή περνάει ως αποτέλεσμα ενός υπολογισμού. 60 δευτερόλεπτα σε ένα λεπτό, οπότε 10 x (60 δευτερόλεπτα σε ένα λεπτό) δίνει καθυστέρηση 10 λεπτών.
|
|
|
|
|
|
1. Εκτελέστε τον κώδικα με τον ίδιο τρόπο που εκτελέσατε τον κώδικα από το προηγούμενο μέρος της εργασίας. Αν χρησιμοποιείτε μια εικονική IoT συσκευή, βεβαιωθείτε ότι η εφαρμογή CounterFit είναι ενεργοποιημένη και οι αισθητήρες υγρασίας και θερμοκρασίας έχουν δημιουργηθεί στις σωστές ακίδες.
|
|
|
|
|
|
```output
|
|
|
pi@raspberrypi:~/temperature-sensor $ python3 app.py
|
|
|
MQTT connected!
|
|
|
Sending telemetry {"temperature": 25}
|
|
|
Sending telemetry {"temperature": 25}
|
|
|
```
|
|
|
|
|
|
> 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code-publish-temperature/virtual-device](../../../../../2-farm/lessons/1-predict-plant-growth/code-publish-temperature/virtual-device) ή στον φάκελο [code-publish-temperature/pi](../../../../../2-farm/lessons/1-predict-plant-growth/code-publish-temperature/pi).
|
|
|
|
|
|
😀 Έχετε δημοσιεύσει με επιτυχία τη θερμοκρασία ως τηλεμετρία από τη συσκευή σας.
|
|
|
|
|
|
---
|
|
|
|
|
|
**Αποποίηση ευθύνης**:
|
|
|
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης. |