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/el/1-getting-started/lessons/4-connect-internet/single-board-computer-comma...

67 lines
5.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "c527ce85d69b1a3875366ec61cbed8aa",
"translation_date": "2025-08-27T21:14:57+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-commands.md",
"language_code": "el"
}
-->
# Ελέγξτε το νυχτερινό σας φως μέσω του Διαδικτύου - Εικονικό IoT Υλικό και Raspberry Pi
Σε αυτό το μέρος του μαθήματος, θα εγγραφείτε σε εντολές που αποστέλλονται από έναν MQTT broker προς το Raspberry Pi ή την εικονική IoT συσκευή σας.
## Εγγραφή σε εντολές
Το επόμενο βήμα είναι να εγγραφείτε στις εντολές που αποστέλλονται από τον MQTT broker και να ανταποκριθείτε σε αυτές.
### Εργασία
Εγγραφείτε σε εντολές.
1. Ανοίξτε το έργο του νυχτερινού φωτός στο VS Code.
1. Αν χρησιμοποιείτε μια εικονική IoT συσκευή, βεβαιωθείτε ότι το τερματικό εκτελεί το εικονικό περιβάλλον. Αν χρησιμοποιείτε Raspberry Pi, δεν θα χρησιμοποιήσετε εικονικό περιβάλλον.
1. Προσθέστε τον παρακάτω κώδικα μετά τους ορισμούς του `client_telemetry_topic`:
```python
server_command_topic = id + '/commands'
```
Το `server_command_topic` είναι το MQTT θέμα στο οποίο η συσκευή θα εγγραφεί για να λαμβάνει εντολές για το LED.
1. Προσθέστε τον παρακάτω κώδικα ακριβώς πάνω από την κύρια επανάληψη, μετά τη γραμμή `mqtt_client.loop_start()`:
```python
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 client εγγράφεται στο θέμα στο οποίο ο server θα στέλνει μηνύματα και ορίζει τη συνάρτηση `handle_command` να καλείται όταν λαμβάνεται ένα μήνυμα.
> 💁 Ο χειριστής `on_message` καλείται για όλα τα θέματα στα οποία έχει εγγραφεί. Αν αργότερα γράψετε κώδικα που ακούει σε πολλαπλά θέματα, μπορείτε να πάρετε το θέμα στο οποίο στάλθηκε το μήνυμα από το αντικείμενο `message` που περνά στη συνάρτηση χειρισμού.
1. Εκτελέστε τον κώδικα με τον ίδιο τρόπο που εκτελέσατε τον κώδικα από το προηγούμενο μέρος της εργασίας. Αν χρησιμοποιείτε μια εικονική IoT συσκευή, βεβαιωθείτε ότι η εφαρμογή CounterFit εκτελείται και ότι ο αισθητήρας φωτός και το LED έχουν δημιουργηθεί στις σωστές ακίδες.
1. Ρυθμίστε τα επίπεδα φωτός που ανιχνεύονται από τη φυσική ή εικονική συσκευή σας. Τα μηνύματα που λαμβάνονται και οι εντολές που αποστέλλονται θα εμφανίζονται στο τερματικό. Το LED θα ανάβει και θα σβήνει ανάλογα με το επίπεδο φωτός.
> 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code-commands/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/virtual-device) ή στον φάκελο [code-commands/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/pi).
😀 Έχετε προγραμματίσει με επιτυχία τη συσκευή σας να ανταποκρίνεται σε εντολές από έναν MQTT broker.
---
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.