# Ανίχνευση Εγγύτητας - Εικονικό Υλικό IoT Σε αυτό το μέρος του μαθήματος, θα προσθέσετε έναν αισθητήρα εγγύτητας στη συσκευή IoT σας και θα διαβάσετε αποστάσεις από αυτόν. ## Υλικό Η εικονική συσκευή IoT θα χρησιμοποιήσει έναν προσομοιωμένο αισθητήρα απόστασης. Σε μια φυσική συσκευή IoT, θα χρησιμοποιούσατε έναν αισθητήρα με μονάδα μέτρησης απόστασης με λέιζερ για την ανίχνευση αποστάσεων. ### Προσθήκη του αισθητήρα απόστασης στο CounterFit Για να χρησιμοποιήσετε έναν εικονικό αισθητήρα απόστασης, πρέπει να προσθέσετε έναν στην εφαρμογή CounterFit. #### Εργασία - προσθήκη του αισθητήρα απόστασης στο CounterFit Προσθέστε τον αισθητήρα απόστασης στην εφαρμογή CounterFit. 1. Ανοίξτε τον κώδικα `fruit-quality-detector` στο VS Code και βεβαιωθείτε ότι το εικονικό περιβάλλον είναι ενεργοποιημένο. 1. Εγκαταστήστε ένα επιπλέον πακέτο Pip για να εγκαταστήσετε ένα CounterFit shim που μπορεί να επικοινωνεί με αισθητήρες απόστασης, προσομοιώνοντας το [rpi-vl53l0x Pip package](https://pypi.org/project/rpi-vl53l0x/), ένα πακέτο Python που αλληλεπιδρά με [έναν αισθητήρα απόστασης VL53L0X](https://wiki.seeedstudio.com/Grove-Time_of_Flight_Distance_Sensor-VL53L0X/). Βεβαιωθείτε ότι το εγκαθιστάτε από ένα τερματικό με ενεργοποιημένο το εικονικό περιβάλλον. ```sh pip install counterfit-shims-rpi-vl53l0x ``` 1. Βεβαιωθείτε ότι η εφαρμογή ιστού CounterFit εκτελείται. 1. Δημιουργήστε έναν αισθητήρα απόστασης: 1. Στο πλαίσιο *Create sensor* στον πίνακα *Sensors*, ανοίξτε το αναπτυσσόμενο μενού *Sensor type* και επιλέξτε *Distance*. 1. Αφήστε τις *Units* ως `Millimeter`. 1. Αυτός ο αισθητήρας είναι αισθητήρας I²C, οπότε ορίστε τη διεύθυνση σε `0x29`. Εάν χρησιμοποιούσατε έναν φυσικό αισθητήρα VL53L0X, θα ήταν προρυθμισμένος σε αυτή τη διεύθυνση. 1. Επιλέξτε το κουμπί **Add** για να δημιουργήσετε τον αισθητήρα απόστασης. ![Οι ρυθμίσεις του αισθητήρα απόστασης](../../../../../translated_images/counterfit-create-distance-sensor.967c9fb98f27888d95920c9784d004c972490eb71f70397fe13bd70a79a879a3.el.png) Ο αισθητήρας απόστασης θα δημιουργηθεί και θα εμφανιστεί στη λίστα αισθητήρων. ![Ο αισθητήρας απόστασης δημιουργήθηκε](../../../../../translated_images/counterfit-distance-sensor.079eefeeea0b68afc36431ce8fcbe2f09a7e4916ed1cd5cb30e696db53bc18fa.el.png) ## Προγραμματισμός του αισθητήρα απόστασης Η εικονική συσκευή IoT μπορεί τώρα να προγραμματιστεί για να χρησιμοποιεί τον προσομοιωμένο αισθητήρα απόστασης. ### Εργασία - προγραμματισμός του αισθητήρα χρόνου πτήσης 1. Δημιουργήστε ένα νέο αρχείο στο έργο `fruit-quality-detector` με όνομα `distance-sensor.py`. > 💁 Ένας εύκολος τρόπος για να προσομοιώσετε πολλές συσκευές IoT είναι να τις υλοποιήσετε σε διαφορετικά αρχεία Python και να τις εκτελείτε ταυτόχρονα. 1. Ξεκινήστε μια σύνδεση με το CounterFit με τον παρακάτω κώδικα: ```python from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000) ``` 1. Προσθέστε τον παρακάτω κώδικα κάτω από αυτό: ```python import time from counterfit_shims_rpi_vl53l0x.vl53l0x import VL53L0X ``` Αυτό εισάγει τη βιβλιοθήκη shim για τον αισθητήρα χρόνου πτήσης VL53L0X. 1. Κάτω από αυτό, προσθέστε τον παρακάτω κώδικα για πρόσβαση στον αισθητήρα: ```python distance_sensor = VL53L0X() distance_sensor.begin() ``` Αυτός ο κώδικας δηλώνει έναν αισθητήρα απόστασης και στη συνέχεια τον εκκινεί. 1. Τέλος, προσθέστε έναν ατέρμονο βρόχο για ανάγνωση αποστάσεων: ```python while True: distance_sensor.wait_ready() print(f'Distance = {distance_sensor.get_distance()} mm') time.sleep(1) ``` Αυτός ο κώδικας περιμένει μια τιμή να είναι έτοιμη για ανάγνωση από τον αισθητήρα και στη συνέχεια την εκτυπώνει στην κονσόλα. 1. Εκτελέστε αυτόν τον κώδικα. > 💁 Μην ξεχάσετε ότι αυτό το αρχείο ονομάζεται `distance-sensor.py`! Βεβαιωθείτε ότι το εκτελείτε μέσω Python, όχι `app.py`. 1. Θα δείτε μετρήσεις αποστάσεων να εμφανίζονται στην κονσόλα. Αλλάξτε την τιμή στο CounterFit για να δείτε αυτή την τιμή να αλλάζει ή χρησιμοποιήστε τυχαίες τιμές. ```output (.venv) ➜ fruit-quality-detector python distance-sensor.py Distance = 37 mm Distance = 42 mm Distance = 29 mm ``` > 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code-proximity/virtual-iot-device](../../../../../4-manufacturing/lessons/4-trigger-fruit-detector/code-proximity/virtual-iot-device). 😀 Το πρόγραμμα του αισθητήρα εγγύτητας ήταν επιτυχές! --- **Αποποίηση ευθύνης**: Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.