|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "90fb93446e03c38f3c0e4009c2471906",
|
|
|
"translation_date": "2025-08-27T21:15:43+00:00",
|
|
|
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md",
|
|
|
"language_code": "el"
|
|
|
}
|
|
|
-->
|
|
|
# Ελέγξτε το νυχτερινό σας φως μέσω του Διαδικτύου - Εικονικό IoT Υλικό και Raspberry Pi
|
|
|
|
|
|
Η συσκευή IoT πρέπει να προγραμματιστεί ώστε να επικοινωνεί με το *test.mosquitto.org* χρησιμοποιώντας το MQTT για να στέλνει τιμές τηλεμετρίας με την ανάγνωση του αισθητήρα φωτός και να λαμβάνει εντολές για τον έλεγχο του LED.
|
|
|
|
|
|
Σε αυτό το μέρος του μαθήματος, θα συνδέσετε το Raspberry Pi ή την εικονική συσκευή IoT σας με έναν MQTT broker.
|
|
|
|
|
|
## Εγκατάσταση του πακέτου πελάτη MQTT
|
|
|
|
|
|
Για να επικοινωνήσετε με τον MQTT broker, πρέπει να εγκαταστήσετε μια βιβλιοθήκη MQTT μέσω pip είτε στο Pi σας είτε στο εικονικό περιβάλλον σας, αν χρησιμοποιείτε εικονική συσκευή.
|
|
|
|
|
|
### Εργασία
|
|
|
|
|
|
Εγκαταστήστε το πακέτο pip
|
|
|
|
|
|
1. Ανοίξτε το έργο του νυχτερινού φωτός στο VS Code.
|
|
|
|
|
|
1. Αν χρησιμοποιείτε εικονική συσκευή IoT, βεβαιωθείτε ότι το τερματικό εκτελεί το εικονικό περιβάλλον. Αν χρησιμοποιείτε Raspberry Pi, δεν θα χρησιμοποιήσετε εικονικό περιβάλλον.
|
|
|
|
|
|
1. Εκτελέστε την παρακάτω εντολή για να εγκαταστήσετε το πακέτο MQTT μέσω pip:
|
|
|
|
|
|
```sh
|
|
|
pip3 install paho-mqtt
|
|
|
```
|
|
|
|
|
|
## Προγραμματίστε τη συσκευή
|
|
|
|
|
|
Η συσκευή είναι έτοιμη για προγραμματισμό.
|
|
|
|
|
|
### Εργασία
|
|
|
|
|
|
Γράψτε τον κώδικα της συσκευής.
|
|
|
|
|
|
1. Προσθέστε την παρακάτω εισαγωγή στην κορυφή του αρχείου `app.py`:
|
|
|
|
|
|
```python
|
|
|
import paho.mqtt.client as mqtt
|
|
|
```
|
|
|
|
|
|
Η βιβλιοθήκη `paho.mqtt.client` επιτρέπει στην εφαρμογή σας να επικοινωνεί μέσω MQTT.
|
|
|
|
|
|
1. Προσθέστε τον παρακάτω κώδικα μετά τους ορισμούς του αισθητήρα φωτός και του LED:
|
|
|
|
|
|
```python
|
|
|
id = '<ID>'
|
|
|
|
|
|
client_name = id + 'nightlight_client'
|
|
|
```
|
|
|
|
|
|
Αντικαταστήστε το `<ID>` με ένα μοναδικό ID που θα χρησιμοποιηθεί ως όνομα για αυτόν τον πελάτη της συσκευής και αργότερα για τα θέματα που αυτή η συσκευή δημοσιεύει και εγγράφεται. Ο broker *test.mosquitto.org* είναι δημόσιος και χρησιμοποιείται από πολλούς ανθρώπους, συμπεριλαμβανομένων άλλων μαθητών που εργάζονται σε αυτήν την εργασία. Έχοντας ένα μοναδικό όνομα πελάτη MQTT και μοναδικά ονόματα θεμάτων διασφαλίζεται ότι ο κώδικάς σας δεν θα συγκρουστεί με άλλους. Θα χρειαστείτε επίσης αυτό το ID όταν δημιουργείτε τον κώδικα του διακομιστή αργότερα σε αυτήν την εργασία.
|
|
|
|
|
|
> 💁 Μπορείτε να χρησιμοποιήσετε έναν ιστότοπο όπως το [GUIDGen](https://www.guidgen.com) για να δημιουργήσετε ένα μοναδικό ID.
|
|
|
|
|
|
Το `client_name` είναι ένα μοναδικό όνομα για αυτόν τον πελάτη MQTT στον broker.
|
|
|
|
|
|
1. Προσθέστε τον παρακάτω κώδικα κάτω από αυτόν τον νέο κώδικα για να δημιουργήσετε ένα αντικείμενο πελάτη MQTT και να συνδεθείτε με τον MQTT broker:
|
|
|
|
|
|
```python
|
|
|
mqtt_client = mqtt.Client(client_name)
|
|
|
mqtt_client.connect('test.mosquitto.org')
|
|
|
|
|
|
mqtt_client.loop_start()
|
|
|
|
|
|
print("MQTT connected!")
|
|
|
```
|
|
|
|
|
|
Αυτός ο κώδικας δημιουργεί το αντικείμενο πελάτη, συνδέεται με τον δημόσιο MQTT broker και ξεκινά έναν βρόχο επεξεργασίας που εκτελείται σε ένα νήμα παρασκηνίου, ακούγοντας μηνύματα σε οποιαδήποτε εγγεγραμμένα θέματα.
|
|
|
|
|
|
1. Εκτελέστε τον κώδικα με τον ίδιο τρόπο που εκτελέσατε τον κώδικα από το προηγούμενο μέρος της εργασίας. Αν χρησιμοποιείτε εικονική συσκευή IoT, βεβαιωθείτε ότι η εφαρμογή CounterFit εκτελείται και ότι ο αισθητήρας φωτός και το LED έχουν δημιουργηθεί στις σωστές ακίδες.
|
|
|
|
|
|
```output
|
|
|
(.venv) ➜ nightlight python app.py
|
|
|
MQTT connected!
|
|
|
Light level: 0
|
|
|
Light level: 0
|
|
|
```
|
|
|
|
|
|
> 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code-mqtt/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/virtual-device) ή στον φάκελο [code-mqtt/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/pi).
|
|
|
|
|
|
😀 Έχετε συνδέσει επιτυχώς τη συσκευή σας με έναν MQTT broker.
|
|
|
|
|
|
---
|
|
|
|
|
|
**Αποποίηση ευθύνης**:
|
|
|
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης. |