8.0 KiB
Ανίχνευση Εγγύτητας - Εικονικό Υλικό IoT
Σε αυτό το μέρος του μαθήματος, θα προσθέσετε έναν αισθητήρα εγγύτητας στη συσκευή IoT σας και θα διαβάσετε αποστάσεις από αυτόν.
Υλικό
Η εικονική συσκευή IoT θα χρησιμοποιήσει έναν προσομοιωμένο αισθητήρα απόστασης.
Σε μια φυσική συσκευή IoT, θα χρησιμοποιούσατε έναν αισθητήρα με μονάδα μέτρησης απόστασης με λέιζερ για την ανίχνευση αποστάσεων.
Προσθήκη του αισθητήρα απόστασης στο CounterFit
Για να χρησιμοποιήσετε έναν εικονικό αισθητήρα απόστασης, πρέπει να προσθέσετε έναν στην εφαρμογή CounterFit.
Εργασία - προσθήκη του αισθητήρα απόστασης στο CounterFit
Προσθέστε τον αισθητήρα απόστασης στην εφαρμογή CounterFit.
-
Ανοίξτε τον κώδικα
fruit-quality-detector
στο VS Code και βεβαιωθείτε ότι το εικονικό περιβάλλον είναι ενεργοποιημένο. -
Εγκαταστήστε ένα επιπλέον πακέτο Pip για να εγκαταστήσετε ένα CounterFit shim που μπορεί να επικοινωνεί με αισθητήρες απόστασης, προσομοιώνοντας το rpi-vl53l0x Pip package, ένα πακέτο Python που αλληλεπιδρά με έναν αισθητήρα απόστασης VL53L0X. Βεβαιωθείτε ότι το εγκαθιστάτε από ένα τερματικό με ενεργοποιημένο το εικονικό περιβάλλον.
pip install counterfit-shims-rpi-vl53l0x
-
Βεβαιωθείτε ότι η εφαρμογή ιστού CounterFit εκτελείται.
-
Δημιουργήστε έναν αισθητήρα απόστασης:
-
Στο πλαίσιο Create sensor στον πίνακα Sensors, ανοίξτε το αναπτυσσόμενο μενού Sensor type και επιλέξτε Distance.
-
Αφήστε τις Units ως
Millimeter
. -
Αυτός ο αισθητήρας είναι αισθητήρας I²C, οπότε ορίστε τη διεύθυνση σε
0x29
. Εάν χρησιμοποιούσατε έναν φυσικό αισθητήρα VL53L0X, θα ήταν προρυθμισμένος σε αυτή τη διεύθυνση. -
Επιλέξτε το κουμπί Add για να δημιουργήσετε τον αισθητήρα απόστασης.
Ο αισθητήρας απόστασης θα δημιουργηθεί και θα εμφανιστεί στη λίστα αισθητήρων.
-
Προγραμματισμός του αισθητήρα απόστασης
Η εικονική συσκευή IoT μπορεί τώρα να προγραμματιστεί για να χρησιμοποιεί τον προσομοιωμένο αισθητήρα απόστασης.
Εργασία - προγραμματισμός του αισθητήρα χρόνου πτήσης
-
Δημιουργήστε ένα νέο αρχείο στο έργο
fruit-quality-detector
με όνομαdistance-sensor.py
.💁 Ένας εύκολος τρόπος για να προσομοιώσετε πολλές συσκευές IoT είναι να τις υλοποιήσετε σε διαφορετικά αρχεία Python και να τις εκτελείτε ταυτόχρονα.
-
Ξεκινήστε μια σύνδεση με το CounterFit με τον παρακάτω κώδικα:
from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Προσθέστε τον παρακάτω κώδικα κάτω από αυτό:
import time from counterfit_shims_rpi_vl53l0x.vl53l0x import VL53L0X
Αυτό εισάγει τη βιβλιοθήκη shim για τον αισθητήρα χρόνου πτήσης VL53L0X.
-
Κάτω από αυτό, προσθέστε τον παρακάτω κώδικα για πρόσβαση στον αισθητήρα:
distance_sensor = VL53L0X() distance_sensor.begin()
Αυτός ο κώδικας δηλώνει έναν αισθητήρα απόστασης και στη συνέχεια τον εκκινεί.
-
Τέλος, προσθέστε έναν ατέρμονο βρόχο για ανάγνωση αποστάσεων:
while True: distance_sensor.wait_ready() print(f'Distance = {distance_sensor.get_distance()} mm') time.sleep(1)
Αυτός ο κώδικας περιμένει μια τιμή να είναι έτοιμη για ανάγνωση από τον αισθητήρα και στη συνέχεια την εκτυπώνει στην κονσόλα.
-
Εκτελέστε αυτόν τον κώδικα.
💁 Μην ξεχάσετε ότι αυτό το αρχείο ονομάζεται
distance-sensor.py
! Βεβαιωθείτε ότι το εκτελείτε μέσω Python, όχιapp.py
. -
Θα δείτε μετρήσεις αποστάσεων να εμφανίζονται στην κονσόλα. Αλλάξτε την τιμή στο CounterFit για να δείτε αυτή την τιμή να αλλάζει ή χρησιμοποιήστε τυχαίες τιμές.
(.venv) ➜ fruit-quality-detector python distance-sensor.py Distance = 37 mm Distance = 42 mm Distance = 29 mm
💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο code-proximity/virtual-iot-device.
😀 Το πρόγραμμα του αισθητήρα εγγύτητας ήταν επιτυχές!
Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.