22 KiB
Εικονικός υπολογιστής μονού πίνακα
Αντί να αγοράσετε μια συσκευή IoT μαζί με αισθητήρες και ενεργοποιητές, μπορείτε να χρησιμοποιήσετε τον υπολογιστή σας για να προσομοιώσετε το υλικό IoT. Το έργο CounterFit σας επιτρέπει να εκτελείτε μια εφαρμογή τοπικά που προσομοιώνει υλικό IoT, όπως αισθητήρες και ενεργοποιητές, και να έχετε πρόσβαση σε αυτούς μέσω τοπικού κώδικα Python, γραμμένου με τον ίδιο τρόπο όπως θα γράφατε σε ένα Raspberry Pi χρησιμοποιώντας φυσικό υλικό.
Ρύθμιση
Για να χρησιμοποιήσετε το CounterFit, θα χρειαστεί να εγκαταστήσετε δωρεάν λογισμικό στον υπολογιστή σας.
Εργασία
Εγκαταστήστε το απαραίτητο λογισμικό.
-
Εγκαταστήστε την Python. Ανατρέξτε στη σελίδα λήψεων της Python για οδηγίες σχετικά με την εγκατάσταση της τελευταίας έκδοσης της Python.
-
Εγκαταστήστε το Visual Studio Code (VS Code). Αυτός είναι ο επεξεργαστής που θα χρησιμοποιήσετε για να γράψετε τον κώδικα της εικονικής σας συσκευής σε Python. Ανατρέξτε στην τεκμηρίωση του VS Code για οδηγίες σχετικά με την εγκατάσταση του VS Code.
💁 Είστε ελεύθεροι να χρησιμοποιήσετε οποιοδήποτε IDE ή επεξεργαστή για Python αν έχετε κάποιο προτιμώμενο εργαλείο, αλλά τα μαθήματα θα παρέχουν οδηγίες βασισμένες στη χρήση του VS Code.
-
Εγκαταστήστε την επέκταση Pylance για το VS Code. Αυτή είναι μια επέκταση για το VS Code που παρέχει υποστήριξη για τη γλώσσα Python. Ανατρέξτε στην τεκμηρίωση της επέκτασης Pylance για οδηγίες σχετικά με την εγκατάσταση αυτής της επέκτασης στο VS Code.
Οι οδηγίες για την εγκατάσταση και τη ρύθμιση της εφαρμογής CounterFit θα δοθούν τη στιγμή που απαιτείται στις οδηγίες της εργασίας, καθώς εγκαθίσταται ανά έργο.
Hello world
Είναι παραδοσιακό όταν ξεκινάτε με μια νέα γλώσσα προγραμματισμού ή τεχνολογία να δημιουργείτε μια εφαρμογή 'Hello World' - μια μικρή εφαρμογή που εμφανίζει κάτι όπως το κείμενο "Hello World"
για να δείξει ότι όλα τα εργαλεία έχουν ρυθμιστεί σωστά.
Η εφαρμογή Hello World για το εικονικό υλικό IoT θα διασφαλίσει ότι έχετε εγκαταστήσει σωστά την Python και το Visual Studio Code. Θα συνδεθεί επίσης στο CounterFit για τους εικονικούς αισθητήρες και ενεργοποιητές IoT. Δεν θα χρησιμοποιήσει κανένα υλικό, απλώς θα συνδεθεί για να αποδείξει ότι όλα λειτουργούν.
Αυτή η εφαρμογή θα βρίσκεται σε έναν φάκελο που ονομάζεται nightlight
και θα επαναχρησιμοποιηθεί με διαφορετικό κώδικα σε μεταγενέστερα μέρη αυτής της εργασίας για να δημιουργηθεί η εφαρμογή nightlight.
Ρύθμιση ενός εικονικού περιβάλλοντος Python
Ένα από τα ισχυρά χαρακτηριστικά της Python είναι η δυνατότητα εγκατάστασης πακέτων Pip - αυτά είναι πακέτα κώδικα γραμμένα από άλλους και δημοσιευμένα στο Διαδίκτυο. Μπορείτε να εγκαταστήσετε ένα πακέτο Pip στον υπολογιστή σας με μία εντολή και στη συνέχεια να χρησιμοποιήσετε αυτό το πακέτο στον κώδικά σας. Θα χρησιμοποιήσετε το Pip για να εγκαταστήσετε ένα πακέτο για να επικοινωνήσετε με το CounterFit.
Από προεπιλογή, όταν εγκαθιστάτε ένα πακέτο, είναι διαθέσιμο παντού στον υπολογιστή σας, και αυτό μπορεί να οδηγήσει σε προβλήματα με τις εκδόσεις των πακέτων - όπως μια εφαρμογή που εξαρτάται από μια έκδοση ενός πακέτου που δεν λειτουργεί όταν εγκαθιστάτε μια νέα έκδοση για μια διαφορετική εφαρμογή. Για να παρακάμψετε αυτό το πρόβλημα, μπορείτε να χρησιμοποιήσετε ένα εικονικό περιβάλλον Python, ουσιαστικά ένα αντίγραφο της Python σε έναν αφιερωμένο φάκελο, και όταν εγκαθιστάτε πακέτα Pip, αυτά εγκαθίστανται μόνο σε αυτόν τον φάκελο.
💁 Αν χρησιμοποιείτε Raspberry Pi, τότε δεν ρυθμίσατε ένα εικονικό περιβάλλον σε αυτή τη συσκευή για να διαχειριστείτε τα πακέτα Pip, αντίθετα χρησιμοποιείτε παγκόσμια πακέτα, καθώς τα πακέτα Grove εγκαθίστανται παγκοσμίως από το σενάριο εγκατάστασης.
Εργασία - ρύθμιση ενός εικονικού περιβάλλοντος Python
Ρυθμίστε ένα εικονικό περιβάλλον Python και εγκαταστήστε τα πακέτα Pip για το CounterFit.
-
Από το τερματικό ή τη γραμμή εντολών σας, εκτελέστε τα παρακάτω σε μια τοποθεσία της επιλογής σας για να δημιουργήσετε και να μεταβείτε σε έναν νέο κατάλογο:
mkdir nightlight cd nightlight
-
Τώρα εκτελέστε τα παρακάτω για να δημιουργήσετε ένα εικονικό περιβάλλον στον φάκελο
.venv
:python3 -m venv .venv
💁 Πρέπει να καλέσετε ρητά το
python3
για να δημιουργήσετε το εικονικό περιβάλλον, σε περίπτωση που έχετε εγκατεστημένη την Python 2 εκτός από την Python 3 (την τελευταία έκδοση). Αν έχετε εγκατεστημένη την Python 2, τότε η κλήση τουpython
θα χρησιμοποιήσει την Python 2 αντί για την Python 3. -
Ενεργοποιήστε το εικονικό περιβάλλον:
-
Στα Windows:
-
Αν χρησιμοποιείτε το Command Prompt ή το Command Prompt μέσω του Windows Terminal, εκτελέστε:
.venv\Scripts\activate.bat
-
Αν χρησιμοποιείτε το PowerShell, εκτελέστε:
.\.venv\Scripts\Activate.ps1
Αν λάβετε ένα σφάλμα σχετικά με την απενεργοποίηση εκτέλεσης σεναρίων σε αυτό το σύστημα, θα χρειαστεί να ενεργοποιήσετε την εκτέλεση σεναρίων ορίζοντας μια κατάλληλη πολιτική εκτέλεσης. Μπορείτε να το κάνετε αυτό εκκινώντας το PowerShell ως διαχειριστής και εκτελώντας την παρακάτω εντολή:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Εισάγετε
Y
όταν σας ζητηθεί επιβεβαίωση. Στη συνέχεια, επανεκκινήστε το PowerShell και δοκιμάστε ξανά.Μπορείτε να επαναφέρετε αυτήν την πολιτική εκτέλεσης αργότερα, αν χρειαστεί. Μπορείτε να διαβάσετε περισσότερα σχετικά με αυτό στη σελίδα Πολιτικών Εκτέλεσης στα Microsoft Docs.
-
-
Σε macOS ή Linux, εκτελέστε:
source ./.venv/bin/activate
💁 Αυτές οι εντολές πρέπει να εκτελούνται από την ίδια τοποθεσία όπου εκτελέσατε την εντολή για να δημιουργήσετε το εικονικό περιβάλλον. Δεν θα χρειαστεί ποτέ να μεταβείτε στον φάκελο
.venv
, θα πρέπει πάντα να εκτελείτε την εντολή ενεργοποίησης και οποιεσδήποτε εντολές για την εγκατάσταση πακέτων ή την εκτέλεση κώδικα από τον φάκελο που βρισκόσασταν όταν δημιουργήσατε το εικονικό περιβάλλον. -
-
Μόλις ενεργοποιηθεί το εικονικό περιβάλλον, η προεπιλεγμένη εντολή
python
θα εκτελεί την έκδοση της Python που χρησιμοποιήθηκε για τη δημιουργία του εικονικού περιβάλλοντος. Εκτελέστε τα παρακάτω για να δείτε την έκδοση:python --version
Η έξοδος θα πρέπει να περιέχει τα εξής:
(.venv) ➜ nightlight python --version Python 3.9.1
💁 Η έκδοση της Python σας μπορεί να είναι διαφορετική - αρκεί να είναι η έκδοση 3.6 ή νεότερη, είστε εντάξει. Αν όχι, διαγράψτε αυτόν τον φάκελο, εγκαταστήστε μια νεότερη έκδοση της Python και δοκιμάστε ξανά.
-
Εκτελέστε τις παρακάτω εντολές για να εγκαταστήσετε τα πακέτα Pip για το CounterFit. Αυτά τα πακέτα περιλαμβάνουν την κύρια εφαρμογή CounterFit καθώς και shims για το υλικό Grove. Αυτά τα shims σας επιτρέπουν να γράφετε κώδικα σαν να προγραμματίζατε χρησιμοποιώντας φυσικούς αισθητήρες και ενεργοποιητές από το οικοσύστημα Grove, αλλά συνδεδεμένους σε εικονικές συσκευές IoT.
pip install CounterFit pip install counterfit-connection pip install counterfit-shims-grove
Αυτά τα πακέτα pip θα εγκατασταθούν μόνο στο εικονικό περιβάλλον και δεν θα είναι διαθέσιμα εκτός αυτού.
Γράψτε τον κώδικα
Μόλις το εικονικό περιβάλλον Python είναι έτοιμο, μπορείτε να γράψετε τον κώδικα για την εφαρμογή 'Hello World'.
Εργασία - γράψτε τον κώδικα
Δημιουργήστε μια εφαρμογή Python για να εκτυπώσετε "Hello World"
στην κονσόλα.
-
Από το τερματικό ή τη γραμμή εντολών σας, εκτελέστε τα παρακάτω μέσα στο εικονικό περιβάλλον για να δημιουργήσετε ένα αρχείο Python που ονομάζεται
app.py
:-
Στα Windows εκτελέστε:
type nul > app.py
-
Σε macOS ή Linux, εκτελέστε:
touch app.py
-
-
Ανοίξτε τον τρέχοντα φάκελο στο VS Code:
code .
💁 Αν το τερματικό σας επιστρέψει
command not found
σε macOS, σημαίνει ότι το VS Code δεν έχει προστεθεί στο PATH σας. Μπορείτε να προσθέσετε το VS Code στο PATH σας ακολουθώντας τις οδηγίες στην ενότητα Εκκίνηση από τη γραμμή εντολών της τεκμηρίωσης του VS Code και να εκτελέσετε την εντολή μετά. Το VS Code προστίθεται στο PATH από προεπιλογή στα Windows και Linux. -
Όταν το VS Code εκκινήσει, θα ενεργοποιήσει το εικονικό περιβάλλον Python. Το επιλεγμένο εικονικό περιβάλλον θα εμφανιστεί στη γραμμή κατάστασης στο κάτω μέρος:
-
Αν το τερματικό του VS Code είναι ήδη ανοιχτό όταν ξεκινά το VS Code, δεν θα έχει ενεργοποιηθεί το εικονικό περιβάλλον σε αυτό. Το πιο εύκολο πράγμα που μπορείτε να κάνετε είναι να τερματίσετε το τερματικό χρησιμοποιώντας το κουμπί Kill the active terminal instance:
Μπορείτε να καταλάβετε αν το τερματικό έχει ενεργοποιημένο το εικονικό περιβάλλον, καθώς το όνομα του εικονικού περιβάλλοντος θα είναι πρόθεμα στην προτροπή του τερματικού. Για παράδειγμα, μπορεί να είναι:
(.venv) ➜ nightlight
Αν δεν έχετε
.venv
ως πρόθεμα στην προτροπή, το εικονικό περιβάλλον δεν είναι ενεργό στο τερματικό. -
Εκκινήστε ένα νέο τερματικό στο VS Code επιλέγοντας Terminal -> New Terminal, ή πατώντας
CTRL+`
. Το νέο τερματικό θα φορτώσει το εικονικό περιβάλλον και η κλήση για την ενεργοποίησή του θα εμφανιστεί στο τερματικό. Η προτροπή θα έχει επίσης το όνομα του εικονικού περιβάλλοντος (.venv
):➜ nightlight source .venv/bin/activate (.venv) ➜ nightlight
-
Ανοίξτε το αρχείο
app.py
από τον εξερευνητή του VS Code και προσθέστε τον παρακάτω κώδικα:print('Hello World!')
Η συνάρτηση
print
εκτυπώνει ό,τι της δίνεται στην κονσόλα. -
Από το τερματικό του VS Code, εκτελέστε τα παρακάτω για να εκτελέσετε την εφαρμογή Python:
python app.py
Η έξοδος θα περιέχει τα εξής:
(.venv) ➜ nightlight python app.py Hello World!
😀 Το πρόγραμμα 'Hello World' σας ήταν επιτυχές!
Συνδέστε το 'υλικό'
Ως δεύτερο βήμα 'Hello World', θα εκτελέσετε την εφαρμογή CounterFit και θα συνδέσετε τον κώδικά σας με αυτήν. Αυτό είναι το εικονικό ισοδύναμο της σύνδεσης κάποιου υλικού IoT σε ένα dev kit.
Εργασία - συνδέστε το 'υλικό'
-
Από το τερματικό του VS Code, εκκινήστε την εφαρμογή CounterFit με την παρακάτω εντολή:
counterfit
Η εφαρμογή θα ξεκινήσει να εκτελείται και θα ανοίξει στον περιηγητή σας:
Θα εμφανίζεται ως Disconnected, με το LED στην επάνω δεξιά γωνία να είναι σβηστό.
-
Προσθέστε τον παρακάτω κώδικα στην αρχή του
app.py
:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
Αυτός ο κώδικας εισάγει την κλάση
CounterFitConnection
από τη μονάδαcounterfit_connection
, η οποία προέρχεται από το πακέτο pipcounterfit-connection
που εγκαταστήσατε νωρίτερα. Στη συνέχεια, αρχικοποιεί μια σύνδεση με την εφαρμογή CounterFit που εκτελείται στη διεύθυνση127.0.0.1
, η οποία είναι μια διεύθυνση IP που μπορείτε πάντα να χρησιμοποιείτε για πρόσβαση στον τοπικό σας υπολογιστή (συχνά αναφέρεται ως localhost), στη θύρα 5000.💁 Αν έχετε άλλες εφαρμογές που εκτελούνται στη θύρα 5000, μπορείτε να αλλάξετε αυτό ενημερώνοντας τη θύρα στον κώδικα και εκτελώντας το CounterFit χρησιμοποιώντας
CounterFit --port <port_number>
, αντικαθιστώντας το<port_number>
με τη θύρα που θέλετε να χρησιμοποιήσετε. -
Θα χρειαστεί να εκκινήσετε ένα νέο τερματικό στο VS Code επιλέγοντας το κουμπί Create a new integrated terminal. Αυτό συμβαίνει επειδή η εφαρμογή CounterFit εκτελείται στο τρέχον τερματικό.
-
Στο νέο αυτό τερματικό, εκτελέστε το αρχείο
app.py
όπως πριν. Η κατάσταση του CounterFit θα αλλάξει σε Connected και το LED θα ανάψει.
💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο code/virtual-device.
😀 Η σύνδεσή σας με το υλικό ήταν επιτυχής!
Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.