

> Σκίτσο-σημείωση από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
Η εφαρμογή θα ξεκινήσει να εκτελείται και θα ανοίξει στον περιηγητή σας:


Θα εμφανίζεται ως *Disconnected*, με το LED στην επάνω δεξιά γωνία να είναι σβηστό.
@ -224,7 +224,7 @@
1. Στο νέο αυτό τερματικό, εκτελέστε το αρχείο `app.py` όπως πριν. Η κατάσταση του CounterFit θα αλλάξει σε **Connected** και το LED θα ανάψει.


> 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device).


> Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -38,7 +38,7 @@
Αυτές οι συσκευές αλληλεπιδρούν με τον φυσικό κόσμο είτε χρησιμοποιώντας αισθητήρες γιανα συλλέξουν δεδομένα από το περιβάλλον τους είτε ελέγχοντας εξόδους ή ενεργοποιητές γιανα κάνουν φυσικές αλλαγές. Ένα τυπικό παράδειγμα είναι ένας έξυπνος θερμοστάτης - μια συσκευή που διαθέτει αισθητήρα θερμοκρασίας, έναν τρόπο ρύθμισης της επιθυμητής θερμοκρασίας, όπως ένας διακόπτης ή μια οθόνη αφής, και μια σύνδεση με ένα σύστημα θέρμανσης ή ψύξης που μπορεί να ενεργοποιηθεί όταν η ανιχνευόμενη θερμοκρασία είναι εκτός του επιθυμητού εύρους. Ο αισθητήρας θερμοκρασίας ανιχνεύει ότι το δωμάτιο είναι πολύ κρύο και ένας ενεργοποιητής ενεργοποιεί τη θέρμανση.


Υπάρχει μια τεράστια ποικιλία διαφορετικών πραγμάτων που μπορούν να λειτουργήσουν ως συσκευές IoT, από εξειδικευμένο υλικό που ανιχνεύει ένα πράγμα, έως γενικής χρήσης συσκευές, ακόμα και το smartphone σας! Ένα smartphone μπορεί να χρησιμοποιήσει αισθητήρες γιανα ανιχνεύσει τον κόσμο γύρω του και ενεργοποιητές γιανα αλληλεπιδράσει με τον κόσμο - για παράδειγμα, χρησιμοποιώντας έναν αισθητήρα GPS γιανα ανιχνεύσει την τοποθεσία σας και ένα ηχείο γιανα σας δώσει οδηγίες πλοήγησης προς έναν προορισμό.
@ -54,7 +54,7 @@
Στο παράδειγμα ενός έξυπνου θερμοστάτη, ο θερμοστάτης θα συνδεθεί χρησιμοποιώντας το WiFi του σπιτιού σε μια υπηρεσία cloud. Θα στείλει τα δεδομένα θερμοκρασίας σε αυτή την υπηρεσία cloud, και από εκεί θα γραφτούν σε μια βάση δεδομένων, επιτρέποντας στον ιδιοκτήτη του σπιτιού να ελέγξει τις τρέχουσες και παρελθούσες θερμοκρασίες μέσω μιας εφαρμογής στο τηλέφωνο. Μια άλλη υπηρεσία στο cloud θα γνωρίζει ποια θερμοκρασία θέλει ο ιδιοκτήτης και θα στέλνει μηνύματα πίσω στη συσκευή IoT μέσω της υπηρεσίας cloud γιανα πει στο σύστημα θέρμανσης να ενεργοποιηθεί ή να απενεργοποιηθεί.


Μια ακόμα πιο έξυπνη έκδοση θα μπορούσε να χρησιμοποιεί AI στο cloud με δεδομένα από άλλους αισθητήρες συνδεδεμένους σε άλλες συσκευές IoT, όπως αισθητήρες παρουσίας που ανιχνεύουν ποια δωμάτια χρησιμοποιούνται, καθώς και δεδομένα όπως ο καιρός και το ημερολόγιό σας, γιανα παίρνει αποφάσεις σχετικά με τη ρύθμιση της θερμοκρασίας με έξυπνο τρόπο. Για παράδειγμα, θα μπορούσε να απενεργοποιήσει τη θέρμανση αν διαβάσει από το ημερολόγιό σας ότι είστε σε διακοπές ή να απενεργοποιήσει τη θέρμανση ανά δωμάτιο ανάλογα με το ποια δωμάτια χρησιμοποιείτε, μαθαίνοντας από τα δεδομένα γιανα γίνεται όλο και πιο ακριβής με την πάροδο του χρόνου.
@ -94,7 +94,7 @@
> 💁 Οι CPU εκτελούν προγράμματα χρησιμοποιώντας τον [κύκλο fetch-decode-execute](https://wikipedia.org/wiki/Instruction_cycle). Για κάθε χτύπο ρολογιού, η CPU θα ανακτήσει την επόμενη εντολή από τη μνήμη, θα την αποκωδικοποιήσει και στη συνέχεια θα την εκτελέσει, όπως χρησιμοποιώντας μια αριθμητική λογική μονάδα (ALU) γιανα προσθέσει 2 αριθμούς. Ορισμένες εκτελέσεις θα χρειαστούν πολλούς χτύπους γιανα ολοκληρωθούν, οπότε ο επόμενος κύκλος θα εκτελεστεί στον επόμενο χτύπο μετά την ολοκλήρωση της εντολής.


Οι μικροελεγκτές έχουν πολύ χαμηλότερες ταχύτητες ρολογιού από τους επιτραπέζιους ή φορητούς υπολογιστές ή ακόμα και από τα περισσότερα smartphones. Για παράδειγμα, το Wio Terminal έχει μια CPU που λειτουργεί στα 120MHz ή 120
🎓 Η μνήμη προγράμματος αποθηκεύει τον κώδικά σας και παραμένει όταν δεν υπάρχει ρεύμα.
@ -160,7 +160,7 @@
Θα γράφατε τον κώδικα αρχικοποίησης στη συνάρτηση `setup`, όπως η σύνδεση σε WiFi και υπηρεσίες cloud ή η αρχικοποίηση ακίδων για είσοδο και έξοδο. Ο κώδικας της συνάρτησης `loop` θα περιείχε κώδικα επεξεργασίας, όπως η ανάγνωση από έναν αισθητήρα και η αποστολή της τιμής στο cloud. Συνήθως θα περιλαμβάνατε μια καθυστέρηση σε κάθε βρόχο, για παράδειγμα, αν θέλετε μόνο δεδομένα αισθητήρα να αποστέλλονται κάθε 10 δευτερόλεπτα, θα προσθέτατε μια καθυστέρηση 10 δευτερολέπτων στο τέλος του βρόχου, ώστε ο μικροελεγκτής να κοιμάται, εξοικονομώντας ενέργεια, και στη συνέχεια να εκτελεί ξανά τον βρόχο όταν χρειάζεται 10 δευτερόλεπτα αργότερα.


✅ Αυτή η αρχιτεκτονική προγράμματος είναι γνωστή ως *event loop* ή *message loop*. Πολλές εφαρμογές χρησιμοποιούν αυτό το μοντέλο και είναι το πρότυπο για τις περισσότερες εφαρμογές desktop που εκτελούνται σε λειτουργικά συστήματα όπως Windows, macOS ή Linux. Ο βρόχος `loop` ακούει για μηνύματα από στοιχεία περιβάλλοντος χρήστη όπως κουμπιά ή συσκευές όπως το πληκτρολόγιο και ανταποκρίνεται σε αυτά. Μπορείτε να διαβάσετε περισσότερα σε αυτό το [άρθρο για το event loop](https://wikipedia.org/wiki/Event_loop).
# Αλληλεπίδραση με τον φυσικό κόσμο μέσω αισθητήρων και ενεργοποιητών


> Σχεδιαστικό σημείωμα από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -92,7 +92,7 @@
Ο απλούστερος ψηφιακός αισθητήρας είναι ένα κουμπί ή ένας διακόπτης. Πρόκειται για έναν αισθητήρα με δύο καταστάσεις, ενεργοποιημένο ή απενεργοποιημένο.


Οι ακίδες σε συσκευές IoT όπως οι ακίδες GPIO μπορούν να μετρήσουν αυτό το σήμα απευθείας ως 0 ή 1. Αν η τάση που στάλθηκε είναι ίδια με την τάση που επιστρέφεται, η τιμή που διαβάζεται είναι 1, διαφορετικά η τιμή που διαβάζεται είναι 0. Δεν υπάρχει ανάγκη για μετατροπή του σήματος, μπορεί να είναι μόνο 1 ή 0.
@ -110,7 +110,7 @@
## Τι είναι οι ενεργοποιητές;
Οι ενεργοποιητές είναι το αντίθετο των αισθητήρων - μετατρέπουν ένα ηλεκτρικό σή


Όπως και με τους αισθητήρες, η πραγματική συσκευή IoT λειτουργεί με ψηφιακά σήματα, όχι αναλογικά. Αυτό σημαίνει ότι γιανα στείλει ένα αναλογικό σήμα, η συσκευή IoT χρειάζεται έναν μετατροπέα ψηφιακού σε αναλογικό σήμα (DAC), είτε απευθείας στη συσκευή IoT είτε σε μια πλακέτα σύνδεσης. Αυτός ο μετατροπέας μετατρέπει τα 0 και 1 της συσκευής IoT σε αναλογική τάση που μπορεί να χρησιμοποιήσει ο ενεργοποιητής.
@ -157,7 +157,7 @@
Ένας απλός ψηφιακός ενεργοποιητής είναι ένα LED. Όταν μια συσκευή στέλνει ένα ψηφιακό σήμα 1, στέλνεται μια υψηλή τάση που ανάβει το LED. Όταν στέλνεται ένα ψηφιακό σήμα 0, η τάση πέφτει στα 0V και το LED σβήνει.


✅ Ποιοι άλλοι απλοί ενεργοποιητές δύο καταστάσεων μπορείτε να σκεφτείτε; Ένα παράδειγμα είναι ένας ηλεκτρομαγνήτης (solenoid), ο οποίος μπορεί να ενεργοποιηθεί γιανα κάνει πράγματα όπως να μετακινήσει έναν σύρτη πόρτας γιανα κλειδώσει/ξεκλειδώσει μια πόρτα.


1. Επιλέξτε το αγαπημένο σας LED και εισάγετε τα ποδαράκια του στις δύο τρύπες της μονάδας LED.
@ -40,7 +40,7 @@ Otherwise
1. Με το Raspberry Pi απενεργοποιημένο, συνδέστε το άλλο άκρο του καλωδίου Grove στην ψηφιακή υποδοχή σημειωμένη ως **D5** στο Grove Base hat που είναι συνδεδεμένο στο Pi. Αυτή η υποδοχή είναι η δεύτερη από τα αριστερά, στη σειρά των υποδοχών δίπλα στις ακίδες GPIO.


1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα φωτός. Θα μπει μόνο με έναν συγκεκριμένο τρόπο.
1. Με το Raspberry Pi απενεργοποιημένο, συνδέστε το άλλο άκρο του καλωδίου Grove στην αναλογική υποδοχή με την ένδειξη **A0** στο Grove Base hat που είναι συνδεδεμένο στο Pi. Αυτή η υποδοχή είναι η δεύτερη από δεξιά, στη σειρά των υποδοχών δίπλα στις ακίδες GPIO.


1. Επιλέξτε το κουμπί **Add**γιανα δημιουργήσετε το LED στο Pin 5.


Το LED θα δημιουργηθεί και θα εμφανιστεί στη λίστα των ενεργοποιητών.


Αφού δημιουργηθεί το LED, μπορείτε να αλλάξετε το χρώμα χρησιμοποιώντας τον επιλογέα *Color*. Επιλέξτε το κουμπί **Set**γιανα αλλάξετε το χρώμα αφού το επιλέξετε.
1. Επιλέξτε το κουμπί **Add**γιανα δημιουργήσετε τον αισθητήρα φωτός στο Pin 0.


Ο αισθητήρας φωτός θα δημιουργηθεί και θα εμφανιστεί στη λίστα των αισθητήρων.


> Σκίτσο-σημείωση από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -47,7 +47,7 @@
Το MQTT έχει έναν broker και πολλούς πελάτες. Όλοι οι πελάτες συνδέονται στον broker, και ο broker δρομολογεί μηνύματα στους σχετικούς πελάτες. Τα μηνύματα δρομολογούνται χρησιμοποιώντας ονομασμένα θέματα (topics), αντί να αποστέλλονται απευθείας σε έναν συγκεκριμένο πελάτη. Ένας πελάτης μπορεί να δημοσιεύσει σε ένα θέμα, και οποιοσδήποτε πελάτης εγγραφεί σε αυτό το θέμα θα λάβει το μήνυμα.


✅ Κάντε έρευνα. Εάν έχετε πολλές συσκευές IoT, πώς μπορείτε να διασφαλίσετε ότι ο broker MQTT μπορεί να διαχειριστεί όλα τα μηνύματα;
@ -69,7 +69,7 @@
> 💁 Αυτός ο δοκιμαστικός broker είναι δημόσιος και μη ασφαλής. Οποιοσδήποτε θα μπορούσε να ακούει τι δημοσιεύετε, οπότε δεν πρέπει να χρησιμοποιείται με δεδομένα που πρέπει να παραμείνουν ιδιωτικά.


Ακολουθήστε το σχετικό βήμα παρακάτω γιανα συνδέσετε τη συσκευή σας στον broker MQTT:
@ -336,7 +336,7 @@
Οι σχεδιαστές συσκευών IoT θα πρέπει επίσης να εξετάσουν αν η συσκευή IoT μπορεί να χρησιμοποιηθεί κατά τη διάρκεια μιας διακοπής του Διαδικτύου ή απώλειας σήματος λόγω τοποθεσίας. Ένας έξυπνος θερμοστάτης θα πρέπει να μπορεί να λαμβάνει κάποιες περιορισμένες αποφάσεις για τον έλεγχο της θέρμανσης αν δεν μπορεί να στείλει τηλεμετρία στο cloud λόγω διακοπής.
[](https://twitter.com/internetofshit/status/1315736960082808832)
[](https://twitter.com/internetofshit/status/1315736960082808832)
Για να χειριστεί το MQTT μια απώλεια συνδεσιμότητας, ο κώδικας της συσκευής και του διακομιστή θα πρέπει να είναι υπεύθυνος για τη διασφάλιση της παράδοσης των μηνυμάτων αν αυτό είναι απαραίτητο, για παράδειγμα απαιτώντας όλα τα μηνύματα που αποστέλλονται να απαντώνται με επιπλέον μηνύματα σε ένα θέμα απάντησης, και αν όχι, να τοποθετούνται σε ουρά χειροκίνητα γιανα αναπαραχθούν αργότερα.
@ -344,7 +344,7 @@
Οι εντολές είναι μηνύματα που αποστέλλονται από το cloud σε μια συσκευή, δίνοντάς της οδηγίες να κάνει κάτι. Τις περισσότερες φορές αυτό περιλαμβάνει την παροχή κάποιου είδους εξόδου μέσω ενός ενεργοποιητή, αλλά μπορεί να είναι και μια οδηγία για την ίδια τη συσκευή, όπως να επανεκκινήσει ή να συλλέξει επιπλέον τηλεμετρία και να την επιστρέψει ως απάντηση στην εντολή.


Ένας θερμοστάτης θα μπορούσε να λάβει μια εντολή από το cloud να ενεργοποιήσει τη θέρμανση. Με βάση τα δεδομένα τηλεμετρίας από όλους τους αισθητήρες, αν η υπηρεσία cloud έχει αποφασίσει ότι η θέρμανση πρέπει να είναι ενεργοποιημένη, τότε στέλνει τη σχετική εντολή.


> Σκίτσα από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -90,7 +90,7 @@
Η πλήρης φόρμουλα για GDD είναι λίγο περίπλοκη, αλλά υπάρχει μια απλοποιημένη εξίσωση που χρησιμοποιείται συχνά ως καλή προσέγγιση:


* **GDD** - αυτός είναι ο αριθμός των ημερών βαθμών ανάπτυξης
* **T max** - αυτή είναι η μέγιστη ημερήσια θερμοκρασία σε βαθμούς Κελσίου
@ -118,7 +118,7 @@
Αυτό δίνει τον υπολογισμό:


Το καλαμπόκι έλαβε 4 GDD εκείνη την ημέρα. Υποθέτοντας μια ποικιλία καλαμποκιού που χρειάζεται 800 GDD γιανα ωριμάσει, θα χρειαστεί άλλες 796 GDD γιανα φτάσει στην ωριμότητα.
@ -176,7 +176,7 @@
Για παράδειγμα, αν η υψηλότερη θερμοκρασία της ημέρας είναι 25°C και η χαμηλότερη είναι 12°C:


Το Jupyter θα ξεκινήσει και θα ανοίξει το notebook στον browser σας. Ακολουθήστε τις οδηγίες στο notebook γιανα οπτικοποιήσετε τις μετρηθείσες θερμοκρασίες και να υπολογίσετε τις ημέρες ανάπτυξης (GDD).
1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα υγρασίας και θερμοκρασίας. Θα μπει μόνο με έναν συγκεκριμένο τρόπο.
1. Με το Raspberry Pi απενεργοποιημένο, συνδέστε το άλλο άκρο του καλωδίου Grove στην ψηφιακή υποδοχή με την ένδειξη **D5** στο Grove Base hat που είναι συνδεδεμένο στο Pi. Αυτή η υποδοχή είναι η δεύτερη από τα αριστερά, στη σειρά των υποδοχών δίπλα στα GPIO pins.


1. Επιλέξτε το κουμπί **Add**γιανα δημιουργήσετε τον αισθητήρα υγρασίας στο Pin 5.


Ο αισθητήρας υγρασίας θα δημιουργηθεί και θα εμφανιστεί στη λίστα αισθητήρων.
1. Επιλέξτε το κουμπί **Add**γιανα δημιουργήσετε τον αισθητήρα θερμοκρασίας στο Pin 6.


Ο αισθητήρας θερμοκρασίας θα δημιουργηθεί και θα εμφανιστεί στη λίστα αισθητήρων.
@ -13,7 +13,7 @@ C, προφέρεται *I-squared-C*, είναι ένα πρωτόκολλο π
| VCC | Voltage common collector | Η τροφοδοσία για τις συσκευές. Αυτό συνδέεται με τα καλώδια SDA και SCL γιανα παρέχει την τροφοδοσία τους μέσω ενός pull-up αντιστάτη που απενεργοποιεί το σήμα όταν καμία συσκευή δεν είναι ελεγκτής. |
| GND | Ground | Παρέχει κοινή γείωση για το ηλεκτρικό κύκλωμα. |


Για να σταλούν δεδομένα, μια συσκευή θα εκδώσει μια συνθήκη εκκίνησης γιανα δείξει ότι είναι έτοιμη να στείλει δεδομένα. Στη συνέχεια, θα γίνει ο ελεγκτής. Ο ελεγκτής στη συνέχεια στέλνει τη διεύθυνση της συσκευής με την οποία θέλει να επικοινωνήσει, μαζί με το αν θέλει να διαβάσει ή να γράψει δεδομένα. Μετά τη μετάδοση των δεδομένων, ο ελεγκτής στέλνει μια συνθήκη τερματισμού γιανα υποδείξει ότι έχει τελειώσει. Μετά από αυτό, μια άλλη συσκευή μπορεί να γίνει ελεγκτής και να στείλει ή να λάβει δεδομένα.
Η υγρασία εδάφους με τη μέθοδο της βαρύτητας υπολογίζεται ως:


* W - το βάρος του υγρού εδάφους
* W - το βάρος του ξηρού εδάφους
Για παράδειγμα, ας πούμε ότι έχετε ένα δείγμα εδάφους που ζυγίζει 212g υγρό και 197g ξηρό.
1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα υγρασίας εδάφους. Θα μπει μόνο με έναν συγκεκριμένο τρόπο.
1. Με το Raspberry Pi απενεργοποιημένο, συνδέστε το άλλο άκρο του καλωδίου Grove στην αναλογική υποδοχή με την ένδειξη **A0** στο Grove Base Hat που είναι συνδεδεμένο στο Pi. Αυτή η υποδοχή είναι η δεύτερη από τα δεξιά, στη σειρά των υποδοχών δίπλα στις ακίδες GPIO.


1. Εισάγετε τον αισθητήρα υγρασίας εδάφους στο έδαφος. Έχει μια 'γραμμή μέγιστης θέσης' - μια λευκή γραμμή πάνω στον αισθητήρα. Εισάγετε τον αισθητήρα μέχρι τη γραμμή αυτή, αλλά όχι πέρα από αυτήν.


> Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -32,7 +32,7 @@
Η λύση σε αυτό είναι να συνδέσετε την αντλία σε μια εξωτερική πηγή ενέργειας και να χρησιμοποιήσετε έναν ενεργοποιητή γιανα την ενεργοποιήσετε, παρόμοια με το πώς θα ανάβατε ένα φως. Χρειάζεται μια μικρή ποσότητα ενέργειας (με τη μορφή ενέργειας από το σώμα σας) γιανα γυρίσετε έναν διακόπτη, και αυτό συνδέει το φως με το ηλεκτρικό δίκτυο που λειτουργεί στα 110v/240v.


> 🎓 [Ηλεκτρικό δίκτυο](https://wikipedia.org/wiki/Mains_electricity) αναφέρεται στην ηλεκτρική ενέργεια που παρέχεται σε σπίτια και επιχειρήσεις μέσω εθνικών υποδομών σε πολλές περιοχές του κόσμου.
@ -72,7 +72,7 @@
Ο ηλεκτρομαγνήτης δεν χρειάζεται πολλή ισχύ γιανα ενεργοποιηθεί και να τραβήξει τον μοχλό, μπορεί να ελεγχθεί χρησιμοποιώντας την έξοδο 3.3V ή 5V από ένα κιτ ανάπτυξης IoT. Το κύκλωμα εξόδου μπορεί να μεταφέρει πολύ περισσότερη ισχύ, ανάλογα με το ρελέ, συμπεριλαμβανομένης της τάσης δικτύου ή ακόμα και υψηλότερων επιπέδων ισχύος για βιομηχανική χρήση. Με αυτόν τον τρόπο, ένα κιτ ανάπτυξης IoT μπορεί να ελέγξει ένα σύστημα άρδευσης, από μια μικρή αντλία για ένα μόνο φυτό, έως ένα τεράστιο βιομηχανικό σύστημα για μια ολόκληρη εμπορική φάρμα.


Η παραπάνω εικόνα δείχνει ένα ρελέ Grove. Το κύκλωμα ελέγχου συνδέεται με μια συσκευή IoT και ενεργοποιεί ή απενεργοποιεί το ρελέ χρησιμοποιώντας 3.3V ή 5V. Το κύκλωμα εξόδου έχει δύο ακροδέκτες, οποιοσδήποτε από αυτούς μπορεί να είναι ισχύς ή γείωση. Το κύκλωμα εξόδου μπορεί να χειριστεί έως 250V στα 10A, αρκετό για μια σειρά από συσκευές που λειτουργούν με τάση δικτύου. Μπορείτε να βρείτε ρελέ που μπορούν να χειριστούν ακόμα υψηλότερα επίπεδα ισχύος.
1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του ρελέ. Θα μπει μόνο με έναν συγκεκριμένο τρόπο.
1. Με το Raspberry Pi απενεργοποιημένο, συνδέστε το άλλο άκρο του καλωδίου Grove στην ψηφιακή υποδοχή με την ένδειξη **D5** στο Grove Base Hat που είναι συνδεδεμένο στο Pi. Αυτή η υποδοχή είναι η δεύτερη από τα αριστερά, στη σειρά των υποδοχών δίπλα στις ακίδες GPIO. Αφήστε τον αισθητήρα υγρασίας εδάφους συνδεδεμένο στην υποδοχή **A0**.


1. Εισάγετε τον αισθητήρα υγρασίας εδάφους στο έδαφος, αν δεν το έχετε ήδη κάνει από το προηγούμενο μάθημα.
1. Επιλέξτε το κουμπί **Add**γιανα δημιουργήσετε το ρελέ στο Pin 5.


Το ρελέ θα δημιουργηθεί και θα εμφανιστεί στη λίστα των ενεργοποιητών.




> Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -46,8 +46,8 @@
Το cloud συχνά αναφέρεται χιουμοριστικά ως "ο υπολογιστής κάποιου άλλου". Η αρχική ιδέα ήταν απλή - αντί να αγοράζετε υπολογιστές, νοικιάζετε τον υπολογιστή κάποιου άλλου. Κάποιος άλλος, ένας πάροχος cloud computing, θα διαχειριζόταν τεράστια data centers. Θα ήταν υπεύθυνος για την αγορά και εγκατάσταση του υλικού, τη διαχείριση της ενέργειας και της ψύξης, τη δικτύωση, την ασφάλεια του κτιρίου, τις ενημερώσεις υλικού και λογισμικού, τα πάντα. Ως πελάτης, θα νοικιάζατε τους υπολογιστές που χρειάζεστε, νοικιάζοντας περισσότερους όταν αυξάνεται η ζήτηση και μειώνοντας τον αριθμό που νοικιάζετε όταν η ζήτηση πέφτει. Αυτά τα data centers βρίσκονται σε όλο τον κόσμο.




Αυτά τα data centers μπορούν να έχουν μέγεθος πολλών τετραγωνικών χιλιομέτρων. Οι παραπάνω εικόνες τραβήχτηκαν πριν από λίγα χρόνια σε ένα data center του Microsoft cloud και δείχνουν το αρχικό μέγεθος, καθώς και μια προγραμματισμένη επέκταση. Η περιοχή που έχει καθαριστεί για την επέκταση είναι πάνω από 5 τετραγωνικά χιλιόμετρα.
@ -108,11 +108,11 @@
Οι συσκευές IoT συνδέονται με μια υπηρεσία cloud είτε χρησιμοποιώντας ένα SDK συσκευής (μια βιβλιοθήκη που παρέχει κώδικα γιανα λειτουργήσει με τις δυνατότητες της υπηρεσίας) είτε απευθείας μέσω ενός πρωτοκόλλου επικοινωνίας όπως το MQTT ή το HTTP. Το SDK συσκευής είναι συνήθως η πιο εύκολη διαδρομή, καθώς χειρίζεται τα πάντα για εσάς, όπως το να γνωρίζει ποια θέματα να δημοσιεύσει ή να εγγραφεί και πώς να χειριστεί την ασφάλεια.


Η συσκευή σας στη συνέχεια επικοινωνεί με άλλα μέρη της εφαρμογής σας μέσω αυτής της υπηρεσίας - παρόμοια με το πώς στέλνατε τηλεμετρία και λαμβάνατε εντολές μέσω MQTT. Αυτό γίνεται συνήθως χρησιμοποιώντας ένα SDK υπηρεσίας ή μια παρόμοια βιβλιοθήκη. Τα μηνύματα έρχονται από τη συσκευή σας στην υπηρεσία, όπου άλλα μέρη της εφαρμογής σας μπορούν να τα διαβάσουν, και τα μηνύματα μπορούν να σταλούν πίσω στη συσκευή σας.


Αυτές οι υπηρεσίες εφαρμόζουν ασφάλεια γνωρίζοντας όλες τις συσκευές που μπορούν να συνδεθούν και να στείλουν δεδομένα, είτε με την προεγγραφή των συσκευών στην υπηρεσία είτε δίνοντας στις συσκευές μυστικά κλειδιά ή πιστοποιητικά που μπορούν να χρησιμοποιήσουν γιανα εγγραφούν στην υπηρεσία την πρώτη φορά που συνδέονται. Άγνωστες συσκευές δεν μπορούν να συνδεθούν, αν προσπαθήσουν η υπηρεσία απορρίπτει τη σύνδεση και αγνοεί τα μηνύματα
💁 Οι υπηρεσίες IoT υλοποιούν επίσης πρόσθετες δυνατότητες, και οι πάροχοι cloud διαθέτουν επιπλέον υπηρεσίες και εφαρμογές που μπορούν να συνδεθούν με την υπηρεσία. Για παράδειγμα, αν θέλετε να αποθηκεύσετε όλα τα μηνύματα τηλεμετρίας που στέλνονται από όλες τις συσκευές σε μια βάση δεδομένων, συνήθως χρειάζονται μόνο λίγα κλικ στο εργαλείο διαμόρφωσης του παρόχου cloud γιανα συνδέσετε την υπηρεσία με μια βάση δεδομένων και να μεταφέρετε τα δεδομένα.
@ -120,7 +120,7 @@
Τώρα που έχετε μια συνδρομή Azure, μπορείτε να εγγραφείτε σε μια υπηρεσία IoT. Η υπηρεσία IoT της Microsoft ονομάζεται Azure IoT Hub.


Το παρακάτω βίντεο παρέχει μια σύντομη επισκόπηση του Azure IoT Hub:
# Μεταφέρετε τη λογική της εφαρμογής σας στο cloud


> Σχεδιάγραμμα από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -28,7 +28,7 @@
Το serverless, ή serverless computing, περιλαμβάνει τη δημιουργία μικρών μπλοκ κώδικα που εκτελούνται στο cloud ως απάντηση σε διάφορα είδη γεγονότων. Όταν συμβαίνει το γεγονός, ο κώδικας σας εκτελείται και λαμβάνει δεδομένα σχετικά με το γεγονός. Αυτά τα γεγονότα μπορεί να προέρχονται από διάφορες πηγές, όπως αιτήματα web, μηνύματα σε μια ουρά, αλλαγές δεδομένων σε μια βάση δεδομένων ή μηνύματα που αποστέλλονται σε μια υπηρεσία IoT από συσκευές IoT.


> 💁 Αν έχετε χρησιμοποιήσει triggers σε βάσεις δεδομένων, μπορείτε να το σκεφτείτε ως κάτι αντίστοιχο: κώδικας που ενεργοποιείται από ένα γεγονός, όπως η εισαγωγή μιας γραμμής.
@ -54,7 +54,7 @@
Η υπηρεσία serverless computing της Microsoft ονομάζεται Azure Functions.


Το σύντομο βίντεο παρακάτω παρέχει μια επισκόπηση του Azure Functions.


> Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -52,11 +52,11 @@
Όταν μια συσκευή συνδέεται σε μια υπηρεσία IoT, χρησιμοποιεί ένα ID γιανα ταυτοποιηθεί. Το πρόβλημα είναι ότι αυτό το ID μπορεί να αντιγραφεί - ένας χάκερ θα μπορούσε να δημιουργήσει μια κακόβουλη συσκευή που χρησιμοποιεί το ίδιο ID με μια πραγματική συσκευή αλλά στέλνει ψευδή δεδομένα.


Η λύση σε αυτό είναι να μετατραπούν τα δεδομένα που αποστέλλονται σε μια κωδικοποιημένη μορφή, χρησιμοποιώντας μια τιμή γνωστή μόνο στη συσκευή και το cloud για την κωδικοποίηση των δεδομένων. Αυτή η διαδικασία ονομάζεται *κρυπτογράφηση*, και η τιμή που χρησιμοποιείται για την κρυπτογράφηση των δεδομένων ονομάζεται *κλειδί κρυπτογράφησης*.


Η υπηρεσία cloud μπορεί στη συνέχεια να μετατρέψει τα δεδομένα πίσω σε αναγνώσιμη μορφή, χρησιμοποιώντας μια διαδικασία που ονομάζεται *αποκρυπτογράφηση*, είτε με το ίδιο κλειδί κρυπτογράφησης είτε με ένα *κλειδί αποκρυπτογράφησης*. Αν το κρυπτογραφημένο μήνυμα δεν μπορεί να αποκρυπτογραφηθεί με το κλειδί, η συσκευή έχει παραβιαστεί και το μήνυμα απορρίπτεται.


> Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -63,13 +63,13 @@
> 💁 Κανείς δεν γνωρίζει πραγματικά τον αρχικό λόγο για τον οποίο οι κύκλοι διαιρούνται σε 360 μοίρες. Η [σελίδα για τη μοίρα (γωνία) στη Wikipedia](https://wikipedia.org/wiki/Degree_(angle)) καλύπτει μερικούς από τους πιθανούς λόγους.


Το γεωγραφικό πλάτος μετριέται χρησιμοποιώντας γραμμές που περιβάλλουν τη Γη και τρέχουν παράλληλα με τον ισημερινό, διαιρώντας το Βόρειο και Νότιο Ημισφαίριο σε 90° το καθένα. Ο ισημερινός βρίσκεται στις 0°, ο Βόρειος Πόλος στις 90°, γνωστός και ως 90° Βόρεια, και ο Νότιος Πόλος στις -90°, ή 90° Νότια.
Το γεωγραφικό μήκος μετριέται ως ο αριθμός των μοιρών που μετριούνται ανατολικά και δυτικά. Η αρχή των 0° του γεωγραφικού μήκους ονομάζεται *Πρώτος Μεσημβρινός* και ορίστηκε το 1884 ως μια γραμμή από τον Βόρειο στον Νότιο Πόλο που περνά από το [Βασιλικό Αστεροσκοπείο του Greenwich, Αγγλία](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich).


> 🎓 Ένας μεσημβρινός είναι μια φανταστική ευθεία γραμμή που εκτείνεται από τον Βόρειο Πόλο στον Νότιο Πόλο, σχηματίζοντας ένα ημικύκλιο.
@ -100,7 +100,7 @@
* Γεωγραφικό πλάτος 47.6423109 (47.6423109 μοίρες βόρεια του ισημερινού)
* Γεωγραφικό μήκος -122.1390293 (122.1390293 μοίρες δυτικά του Πρώτου Μεσημβρινού).




1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα GPS. Θα μπει μόνο με έναν συγκεκριμένο τρόπο.
1. Με το Raspberry Pi απενεργοποιημένο, συνδέστε το άλλο άκρο του καλωδίου Grove στην υποδοχή UART που είναι σημειωμένη ως **UART** στο Grove Base hat που είναι συνδεδεμένο στο Pi. Αυτή η υποδοχή βρίσκεται στη μεσαία σειρά, στην πλευρά κοντά στην υποδοχή της κάρτας SD, στο αντίθετο άκρο από τις θύρες USB και την υποδοχή ethernet.


1. Τοποθετήστε τον αισθητήρα GPS έτσι ώστε η συνδεδεμένη κεραία να έχει ορατότητα προς τον ουρανό - ιδανικά δίπλα σε ένα ανοιχτό παράθυρο ή έξω. Είναι πιο εύκολο να λάβετε καθαρότερο σήμα χωρίς εμπόδια μπροστά από την κεραία.
1. Επιλέξτε το κουμπί **Add**γιανα δημιουργήσετε τον αισθητήρα GPS στη θύρα `/dev/ttyAMA0`.


Ο αισθητήρας GPS θα δημιουργηθεί και θα εμφανιστεί στη λίστα αισθητήρων.
* Ορίστε την **Πηγή** σε `Lat/Lon` και ορίστε ένα συγκεκριμένο γεωγραφικό πλάτος, μήκος και αριθμό δορυφόρων που χρησιμοποιούνται για τη λήψη της θέσης GPS. Αυτή η τιμή θα σταλεί μόνο μία φορά, οπότε επιλέξτε το πλαίσιο **Repeat**γιανα επαναλαμβάνονται τα δεδομένα κάθε δευτερόλεπτο.


* Ορίστε την **Πηγή** σε `NMEA` και προσθέστε κάποιες προτάσεις NMEA στο πλαίσιο κειμένου. Όλες αυτές οι τιμές θα σταλούν, με καθυστέρηση 1 δευτερολέπτου πριν από κάθε νέα πρόταση GGA (θέση).


Μπορείτε να χρησιμοποιήσετε ένα εργαλείο όπως το [nmeagen.org](https://www.nmeagen.org) γιανα δημιουργήσετε αυτές τις προτάσεις σχεδιάζοντας σε έναν χάρτη. Αυτές οι τιμές θα σταλούν μόνο μία φορά, οπότε επιλέξτε το πλαίσιο **Repeat**γιανα επαναλαμβάνονται ένα δευτερόλεπτο μετά την αποστολή όλων.
* Ορίστε την **Πηγή** σε GPX αρχείο και ανεβάστε ένα αρχείο GPX με τοποθεσίες διαδρομής. Μπορείτε να κατεβάσετε αρχεία GPX από διάφορους δημοφιλείς ιστότοπους χαρτογράφησης και πεζοπορίας, όπως το [AllTrails](https://www.alltrails.com/). Αυτά τα αρχεία περιέχουν πολλαπλές τοποθεσίες GPS ως διαδρομή, και ο αισθητήρας GPS θα επιστρέφει κάθε νέα τοποθεσία σε διαστήματα του 1 δευτερολέπτου.


Αυτές οι τιμές θα σταλούν μόνο μία φορά, οπότε επιλέξτε το πλαίσιο **Repeat**γιανα επαναλαμβάνονται ένα δευτερόλεπτο μετά την αποστολή όλων.


1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα GPS. Θα μπει μόνο με έναν συγκεκριμένο τρόπο.


> Σχεδιαστική σημείωση από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -75,7 +75,7 @@
> 💁 Παρά το όνομά τους, ορισμένες βάσεις δεδομένων NoSQL σας επιτρέπουν να χρησιμοποιείτε SQL για την αναζήτηση δεδομένων.


Οι βάσεις δεδομένων NoSQL δεν έχουν προκαθορισμένο σχήμα που να περιορίζει τον τρόπο αποθήκευσης δεδομένων, αντίθετα μπορείτε να εισάγετε οποιαδήποτε μη δομημένα δεδομένα, συνήθως χρησιμοποιώντας έγγραφα JSON. Αυτά τα έγγραφα μπορούν να οργανωθούν σε φακέλους, παρόμοια με αρχεία στον υπολογιστή σας. Κάθε έγγραφο μπορεί να έχει διαφορετικά πεδία από άλλα έγγραφα - για παράδειγμα, αν αποθηκεύατε δεδομένα IoT από τα γεωργικά σας οχήματα, κάποια μπορεί να έχουν πεδία για δεδομένα επιταχυνσιόμετρου και ταχύτητας, ενώ άλλα μπορεί να έχουν πεδία για τη θερμοκρασία στο τρέιλερ. Αν προσθέτατε έναν νέο τύπο φορτηγού, όπως ένα με ενσωματωμένες ζυγαριές για την παρακολούθηση του βάρους των προϊόντων που μεταφέρονται, τότε η συσκευή IoT σας θα μπορούσε να προσθέσει αυτό το νέο πεδίο και να αποθηκευτεί χωρίς αλλαγές στη βάση δεδομένων.
@ -89,7 +89,7 @@
Στην προηγούμενη ενότητα καταγράψατε δεδομένα GPS από έναν αισθητήρα GPS συνδεδεμένο στη συσκευή IoT σας. Για να αποθηκεύσετε αυτά τα δεδομένα IoT στο cloud, πρέπει να τα στείλετε σε μια υπηρεσία IoT. Και πάλι, θα χρησιμοποιήσετε το Azure IoT Hub, την ίδια υπηρεσία IoT cloud που χρησιμοποιήσατε στο προηγούμενο έργο.




Οι Λογαριασμοί Αποθήκευσης Azure είναι μια υπηρεσία γενικής αποθήκευσης που μπορεί να αποθηκεύσει δεδομένα με διάφορους τρόπους. Μπορείτε να αποθηκεύσετε δεδομένα ως blobs, σε ουρές, σε πίνακες ή ως αρχεία, και όλα αυτά ταυτόχρονα.


> Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -64,11 +64,11 @@
Ως άνθρωπος, η κατανόηση αυτών των δεδομένων μπορεί να είναι δύσκολη. Είναι ένας τοίχος αριθμών χωρίς νόημα. Ως πρώτο βήμα για την οπτικοποίηση αυτών των δεδομένων, μπορούν να σχεδιαστούν σε ένα διάγραμμα γραμμών:


Αυτό μπορεί να βελτιωθεί περαιτέρω προσθέτοντας μια γραμμή που δείχνει πότε ενεργοποιήθηκε το αυτόματο σύστημα ποτίσματος σε μια μέτρηση υγρασίας εδάφους 450:


Αυτό το διάγραμμα δείχνει πολύ γρήγορα όχι μόνο ποια ήταν τα επίπεδα υγρασίας του εδάφους, αλλά και τα σημεία όπου ενεργοποιήθηκε το σύστημα ποτίσματος.
@ -84,7 +84,7 @@
Η εργασία με χάρτες είναι μια ενδιαφέρουσα άσκηση, και υπάρχουν πολλές επιλογές όπως Bing Maps, Leaflet, Open Street Maps και Google Maps. Σε αυτό το μάθημα, θα μάθετε για το [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) και πώς μπορούν να εμφανίσουν τα δεδομένα GPS σας.


Το Azure Maps είναι "μια συλλογή γεωχωρικών υπηρεσιών και SDK που χρησιμοποιούν φρέσκα δεδομένα χαρτογράφησης γιανα παρέχουν γεωγραφικό πλαίσιο σε εφαρμογές ιστού και κινητών." Οι προγραμματιστές παρέχονται με εργαλεία για τη δημιουργία όμορφων, διαδραστικών χαρτών που μπορούν να κάνουν πράγματα όπως να παρέχουν προτεινόμενες διαδρομές κυκλοφορίας, να δίνουν πληροφορίες για περιστατικά κυκλοφορίας, εσωτερική πλοήγηση, δυνατότητες αναζήτησης, πληροφορίες υψομέτρου, υπηρεσίες καιρού και πολλά άλλα.
@ -185,7 +185,7 @@
Αν ανοίξετε τη σελίδα `index.html` σε έναν web browser, θα πρέπει να δείτε έναν χάρτη να φορτώνεται και να εστιάζει στην περιοχή του Σιάτλ.


✅ Πειραματιστείτε με τις παραμέτρους zoom και center γιανα αλλάξετε την εμφάνιση του χάρτη σας. Μπορείτε να προσθέσετε διαφορετικές συντεταγμένες που αντιστοιχούν στο γεωγραφικό πλάτος και μήκος των δεδομένων σας γιανα επανακεντρώσετε τον χάρτη.
@ -291,7 +291,7 @@
1. Φορτώστε την HTML σελίδα στο πρόγραμμα περιήγησής σας. Θα φορτώσει τον χάρτη, στη συνέχεια θα φορτώσει όλα τα δεδομένα GPS από την αποθήκευση και θα τα απεικονίσει στον χάρτη.


> 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code](../../../../../3-transport/lessons/3-visualize-location-data/code).


> Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -35,7 +35,7 @@
Ένα γεωφράγμα είναι μια εικονική περίμετρος για μια πραγματική γεωγραφική περιοχή. Τα γεωφράγματα μπορεί να είναι κύκλοι που ορίζονται ως ένα σημείο και μια ακτίνα (για παράδειγμα ένας κύκλος με διάμετρο 100 μέτρα γύρω από ένα κτίριο) ή ένα πολύγωνο που καλύπτει μια περιοχή όπως μια σχολική ζώνη, τα όρια μιας πόλης ή μια πανεπιστημιούπολη ή ένα εργοστάσιο.


> 💁 Ίσως έχετε ήδη χρησιμοποιήσει γεωφράγματα χωρίς να το γνωρίζετε. Εάν έχετε ορίσει μια υπενθύμιση χρησιμοποιώντας την εφαρμογή υπενθυμίσεων iOS ή το Google Keep με βάση μια τοποθεσία, έχετε χρησιμοποιήσει γεωφράγμα. Αυτές οι εφαρμογές δημιουργούν ένα γεωφράγμα με βάση την τοποθεσία που δίνεται και σας ειδοποιούν όταν το τηλέφωνό σας εισέρχεται στο γεωφράγμα.
@ -269,7 +269,7 @@
Η απάντηση είναι ότι δεν μπορεί! Αντίθετα, μπορείτε να ορίσετε πολλαπλές ξεχωριστές συνδέσεις γιανα διαβάσετε τα γεγονότα, και κάθε μία μπορεί να διαχειριστεί την επανάληψη των μη αναγνωσμένων μηνυμάτων. Αυτές ονομάζονται *ομάδες καταναλωτών* (consumer groups). Όταν συνδέεστε στο endpoint, μπορείτε να καθορίσετε ποια ομάδα καταναλωτών θέλετε να χρησιμοποιήσετε. Κάθε στοιχείο της εφαρμογής σας θα συνδεθεί σε διαφορετική ομάδα καταναλωτών.


Θεωρητικά, έως και 5 εφαρμογές μπορούν να συνδεθούν σε κάθε ομάδα καταναλωτών, και όλες θα λαμβάνουν μηνύματα όταν φτάνουν. Είναι καλή πρακτική να έχετε μόνο μία εφαρμογή να έχει πρόσβαση σε κάθε ομάδα καταναλωτών γιανα αποφύγετε την επεξεργασία διπλών μηνυμάτων και να διασφαλίσετε ότι κατά την επανεκκίνηση όλα τα μηνύματα που βρίσκονται σε ουρά επεξεργάζονται σωστά. Για παράδειγμα, αν εκκινήσετε την εφαρμογή Functions τοπικά καθώς και στο cloud, και οι δύο θα επεξεργάζονται μηνύματα, οδηγώντας σε διπλά blobs που αποθηκεύονται στον λογαριασμό αποθήκευσης.


> Σχεδιαστικό σημείωμα από [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -38,7 +38,7 @@
Η άνοδος της αυτοματοποιημένης συγκομιδής μετέφερε τη διαλογή των προϊόντων από τη συγκομιδή στο εργοστάσιο. Τα τρόφιμα ταξίδευαν σε μακριές ταινίες μεταφοράς με ομάδες ανθρώπων που έλεγχαν τα προϊόντα, αφαιρώντας οτιδήποτε δεν πληρούσε τα απαιτούμενα πρότυπα ποιότητας. Η συγκομιδή ήταν φθηνότερη χάρη στα μηχανήματα, αλλά υπήρχε ακόμα κόστος για τη χειροκίνητη διαλογή τροφίμων.


Η επόμενη εξέλιξη ήταν η χρήση μηχανών για τη διαλογή, είτε ενσωματωμένων στη μηχανή συγκομιδής είτε στα εργοστάσια επεξεργασίας. Η πρώτη γενιά αυτών των μηχανών χρησιμοποιούσε οπτικούς αισθητήρες για την ανίχνευση χρωμάτων, ελέγχοντας ενεργοποιητές γιανα σπρώξουν τις πράσινες ντομάτες σε κάδο απορριμμάτων χρησιμοποιώντας μοχλούς ή ριπές αέρα, αφήνοντας τις κόκκινες ντομάτες να συνεχίσουν σε ένα δίκτυο ταινιών μεταφοράς.
@ -62,7 +62,7 @@
> 🎓 Τα αποτελέσματα των μοντέλων ML ονομάζονται *προβλέψεις*


Τα μοντέλα ML δεν δίνουν μια δυαδική απάντηση, αντίθετα δίνουν πιθανότητες. Για παράδειγμα, ένα μοντέλο μπορεί να λάβει μια εικόνα μπανάνας και να προβλέψει `ώριμη` με 99.7% και `άγουρη` με 0.3%. Ο κώδικάς σας θα επιλέξει την καλύτερη πρόβλεψη και θα αποφασίσει ότι η μπανάνα είναι ώριμη.
@ -90,7 +90,7 @@
Το Custom Vision είναι ένα εργαλείο βασισμένο στο cloud για την εκπαίδευση ταξινομητών εικόνων. Σας επιτρέπει να εκπαιδεύσετε έναν ταξινομητή χρησιμοποιώντας μόνο έναν μικρό αριθμό εικόνων. Μπορείτε να ανεβάσετε εικόνες μέσω μιας διαδικτυακής πύλης, ενός web API ή ενός SDK, δίνοντας σε κάθε εικόνα μια *ετικέτα* που έχει την ταξινόμηση αυτής της εικόνας. Στη συνέχεια εκπαιδεύετε το μοντέλο και το δοκιμάζετε γιανα δείτε πόσο καλά αποδίδει. Μόλις είστε ικανοποιημένοι με το μοντέλο, μπορείτε να δημοσιεύσετε εκδόσεις του που μπορούν να προσπελαστούν μέσω ενός web API ή ενός SDK.


> 💁 Μπορείτε να εκπαιδεύσετε ένα μοντέλο Custom Vision με μόλις 5 εικόνες ανά ταξινόμηση, αλλά περισσότερες είναι καλύτερες. Μπορείτε να έχετε καλύτερα αποτελέσματα με τουλάχιστον 30 εικόνες.
@ -131,7 +131,7 @@
* Χρησιμοποιώντας 2 ώριμες μπανάνες, τραβήξτε μερικές φωτογραφίες από κάθε μία από διαφορετικές γωνίες, τραβώντας τουλάχιστον 7 φωτογραφίες (5 για εκπαίδευση, 2 για δοκιμή), αλλά ιδανικά περισσότερες.


* Επαναλάβετε την ίδια διαδικασία χρησιμοποιώντας 2 άγουρες μπανάνες.
@ -141,7 +141,7 @@
1. Ακολουθήστε την [ενότητα ανεβάσματος και ετικετοποίησης εικόνων του οδηγού γρήγορης εκκίνησης για τη δημιουργία ταξινομητή στις Microsoft docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) γιανα ανεβάσετε τις εικόνες εκπαίδευσης. Ετικετοποιήστε τα ώριμα φρούτα ως `ripe` και τα άγουρα φρούτα ως `unripe`.


1. Ακολουθήστε την [ενότητα εκπαίδευσης του ταξινομητή του οδηγού γρήγορης εκκίνησης στις Microsoft docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) γιανα εκπαιδεύσετε τον ταξινομητή εικόνων στις ανεβασμένες εικόνες σας.
@ -159,7 +159,7 @@
1. Ακολουθήστε την [τεκμηρίωση δοκιμής του μοντέλου σας στις Microsoft docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) γιανα δοκιμάσετε τον ταξινομητή εικόνων σας. Χρησιμοποιήστε τις εικόνες δοκιμής που δημιουργήσατε νωρίτερα, όχι οποιαδήποτε από τις εικόνες που χρησιμοποιήσατε για εκπαίδευση.


1. Δοκιμάστε όλες τις εικόνες δοκιμής που έχετε στη διάθεσή σας και παρατηρήστε τις πιθανότητες.


> Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -26,7 +26,7 @@
Οι αισθητήρες κάμερας, όπως υποδηλώνει το όνομά τους, είναι κάμερες που μπορείτε να συνδέσετε στη συσκευή IoT σας. Μπορούν να τραβήξουν στατικές εικόνες ή να καταγράψουν ροή βίντεο. Κάποιες επιστρέφουν ακατέργαστα δεδομένα εικόνας, ενώ άλλες συμπιέζουν τα δεδομένα σε αρχεία εικόνας όπως JPEG ή PNG. Συνήθως, οι κάμερες που λειτουργούν με συσκευές IoT είναι πολύ μικρότερες και χαμηλότερης ανάλυσης από αυτές που ίσως έχετε συνηθίσει, αλλά μπορείτε να βρείτε κάμερες υψηλής ανάλυσης που ανταγωνίζονται τα κορυφαία κινητά τηλέφωνα. Υπάρχουν επίσης εναλλάξιμοι φακοί, πολλαπλές ρυθμίσεις καμερών, θερμικές κάμερες υπερύθρων ή κάμερες UV.


Οι περισσότεροι αισθητήρες κάμερας χρησιμοποιούν αισθητήρες εικόνας όπου κάθε pixel είναι μια φωτοδίοδος. Ένας φακός εστιάζει την εικόνα στον αισθητήρα εικόνας, και χιλιάδες ή εκατομμύρια φωτοδιόδοι ανιχνεύουν το φως που πέφτει σε κάθε μία και το καταγράφουν ως δεδομένα pixel.
@ -74,7 +74,7 @@
1. Επιλέξτε το κουμπί **Δημοσίευση** για την επανάληψη.
1. Στο παράθυρο διαλόγου *Δημοσίευση Μοντέλου*, ορίστε τον *Πόρο Πρόβλεψης* στον πόρο `fruit-quality-detector-prediction` που δημιουργήσατε στο προηγούμενο μάθημα. Αφήστε το όνομα ως `Iteration2` και επιλέξτε το κουμπί **Δημοσίευση**.
@ -88,7 +88,7 @@
Επίσης, αντιγράψτε την τιμή του *Prediction-Key*. Αυτό είναι ένα ασφαλές κλειδί που πρέπει να περάσετε όταν καλείτε το μοντέλο. Μόνο εφαρμογές που περνούν αυτό το κλειδί επιτρέπεται να χρησιμοποιούν το μοντέλο, ενώ οποιεσδήποτε άλλες εφαρμογές απορρίπτονται.


✅ Όταν δημοσιεύεται μια νέα επανάληψη, θα έχει διαφορετικό όνομα. Πώς νομίζετε ότι θα αλλάζατε την επανάληψη που χρησιμοποιεί μια συσκευή IoT;
@ -109,7 +109,7 @@
Για να έχετε τα καλύτερα αποτελέσματα από έναν ταξινομητή εικόνων, θέλετε να εκπαιδεύσετε το μοντέλο με εικόνες που είναι όσο το δυνατόν πιο παρόμοιες με τις εικόνες που χρησιμοποιούνται για τις προβλέψεις. Αν, για παράδειγμα, χρησιμοποιήσατε την κάμερα του τηλεφώνου σας γιανα καταγράψετε εικόνες για την εκπαίδευση, η ποιότητα της εικόνας, η ευκρίνεια και τα χρώματα θα είναι διαφορετικά από μια κάμερα συνδεδεμένη σε μια συσκευή IoT.


Στην παραπάνω εικόνα, η εικόνα της μπανάνας στα αριστερά τραβήχτηκε χρησιμοποιώντας μια κάμερα Raspberry Pi, ενώ η εικόνα στα δεξιά τραβήχτηκε της ίδιας μπανάνας στον ίδιο χώρο χρησιμοποιώντας ένα iPhone. Υπάρχει εμφανής διαφορά στην ποιότητα - η εικόνα από το iPhone είναι πιο ευκρινής, με πιο φωτεινά χρώματα και μεγαλύτερη αντίθεση.
Μπορείτε να βρείτε μια κινούμενη εικόνα που δείχνει πώς να ανοίξετε το κλιπ και να εισάγετε το καλώδιο στην [τεκμηρίωση Raspberry Pi Getting Started with the Camera module](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2).


1. Αφαιρέστε το Grove Base Hat από το Pi.
1. Περάστε το καλώδιο κορδέλας μέσα από την υποδοχή κάμερας στο Grove Base Hat. Βεβαιωθείτε ότι η μπλε πλευρά του καλωδίου κοιτάζει προς τις αναλογικές θύρες με την ένδειξη **A0**, **A1** κ.λπ.


1. Εισάγετε το καλώδιο κορδέλας στην υποδοχή κάμερας στο Pi. Και πάλι, τραβήξτε το μαύρο πλαστικό κλιπ προς τα πάνω, εισάγετε το καλώδιο και στη συνέχεια πιέστε το κλιπ πίσω στη θέση του. Η μπλε πλευρά του καλωδίου πρέπει να κοιτάζει προς τις θύρες USB και ethernet.


1. Επανατοποθετήστε το Grove Base Hat.
@ -101,7 +101,7 @@
Η γραμμή `camera.rotation = 0` ορίζει την περιστροφή της εικόνας. Το καλώδιο κορδέλας εισέρχεται στο κάτω μέρος της κάμερας, αλλά αν η κάμερά σας περιστραφεί γιανα δείχνει πιο εύκολα το αντικείμενο που θέλετε να ταξινομήσετε, τότε μπορείτε να αλλάξετε αυτή τη γραμμή στον αριθμό των μοιρών περιστροφής.


Για παράδειγμα, αν κρεμάσετε το καλώδιο κορδέλας πάνω από κάτι ώστε να βρίσκεται στην κορυφή της κάμερας, τότε ορίστε την περιστροφή να είναι 180:
Θα μπορείτε να δείτε την εικόνα που τραβήχτηκε και αυτές τις τιμές στην καρτέλα **Predictions** στο Custom Vision.


> 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) ή [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device).
1. Επιλέξτε το κουμπί **Add**γιανα δημιουργήσετε την κάμερα.


Η κάμερα θα δημιουργηθεί και θα εμφανιστεί στη λίστα αισθητήρων.
1. Ρυθμίστε την εικόνα που θα καταγράψει η κάμερα στο CounterFit. Μπορείτε είτε να ορίσετε την *Source* σε *File*, στη συνέχεια να ανεβάσετε ένα αρχείο εικόνας, είτε να ορίσετε την *Source* σε *WebCam*, και οι εικόνες θα καταγράφονται από την κάμερα του υπολογιστή σας. Βεβαιωθείτε ότι επιλέξατε το κουμπί **Set** αφού επιλέξετε μια εικόνα ή την κάμερα.


1. Μια εικόνα θα καταγραφεί και θα αποθηκευτεί ως `image.jpg` στον τρέχοντα φάκελο. Θα δείτε αυτό το αρχείο στον εξερευνητή του VS Code. Επιλέξτε το αρχείο γιανα δείτε την εικόνα. Αν χρειάζεται περιστροφή, ενημερώστε τη γραμμή `camera.rotation = 0` όπως απαιτείται και τραβήξτε άλλη μια φωτογραφία.
1. Οι ακίδες στη βάση της ArduCam πρέπει να συνδεθούν στις ακίδες GPIO του Wio Terminal. Για να διευκολυνθεί η εύρεση των σωστών ακίδων, τοποθετήστε το αυτοκόλλητο ακίδων GPIO που συνοδεύει το Wio Terminal γύρω από τις ακίδες:
@ -35,7 +35,7 @@
| SDA | 3 (I2C1_SDA) | Σειριακά Δεδομένα I2C |
| SCL | 5 (I2C1_SCL) | Σειριακό Ρολόι I2C |


Οι συνδέσεις GND και VCC παρέχουν τροφοδοσία 5V στην ArduCam. Λειτουργεί στα 5V, σε αντίθεση με τους αισθητήρες Grove που λειτουργούν στα 3V. Αυτή η τροφοδοσία προέρχεται απευθείας από τη σύνδεση USB-C που τροφοδοτεί τη συσκευή.
Θα μπορείτε να δείτε την εικόνα που τραβήχτηκε και αυτές τις τιμές στην καρτέλα **Predictions** στο Custom Vision.


> 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal).


> Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -33,11 +33,11 @@
Η υπολογιστική στην άκρη περιλαμβάνει τη χρήση υπολογιστών που επεξεργάζονται δεδομένα IoT όσο το δυνατόν πιο κοντά στο σημείο όπου δημιουργούνται τα δεδομένα. Αντί να γίνεται αυτή η επεξεργασία στο cloud, μεταφέρεται στην άκρη του cloud - στο εσωτερικό σας δίκτυο.


Στα μαθήματα μέχρι τώρα, είχατε συσκευές που συλλέγουν δεδομένα και στέλνουν δεδομένα στο cloud για ανάλυση, εκτελώντας λειτουργίες χωρίς διακομιστή ή μοντέλα AI στο cloud.


Η υπολογιστική στην άκρη περιλαμβάνει τη μεταφορά ορισμένων υπηρεσιών cloud εκτός του cloud και την εκτέλεσή τους σε υπολογιστές που λειτουργούν στο ίδιο δίκτυο με τις συσκευές IoT, επικοινωνώντας με το cloud μόνο όταν είναι απαραίτητο. Για παράδειγμα, μπορείτε να εκτελέσετε μοντέλα AI σε συσκευές άκρης γιανα αναλύσετε την ωριμότητα των φρούτων και να στείλετε μόνο αναλυτικά δεδομένα πίσω στο cloud, όπως τον αριθμό των ώριμων φρούτων σε σύγκριση με τα άγουρα.
@ -85,7 +85,7 @@
## Azure IoT Edge


Το Azure IoT Edge είναι μια υπηρεσία που μπορεί να σας βοηθήσει να μεταφέρετε φόρτους εργασίας εκτός του cloud και στην άκρη. Ρυθμίζετε μια συσκευή ως συσκευή άκρης και από το cloud μπορείτε να αναπτύξετε κώδικα σε αυτή τη συσκευή άκρης. Αυτό σας επιτρέπει να συνδυάσετε τις δυνατότητες του cloud και της άκρης.
@ -99,7 +99,7 @@
Το IoT Edge εκτελεί κώδικα από *containers* - αυτοτελείς εφαρμογές που εκτελούνται απομονωμένες από τις υπόλοιπες εφαρμογές στον υπολογιστή σας. Όταν εκτελείτε ένα container, λειτουργεί σαν ένας ξεχωριστός υπολογιστής μέσα στον υπολογιστή σας, με το δικό του λογισμικό, υπηρεσίες και εφαρμογές. Τις περισσότερες φορές, τα containers δεν μπορούν να έχουν πρόσβαση σε τίποτα στον υπολογιστή σας, εκτός αν επιλέξετε να μοιραστείτε πράγματα όπως ένας φάκελος με το container. Το container στη συνέχεια εκθέτει υπηρεσίες μέσω μιας ανοιχτής θύρας που μπορείτε να συνδεθείτε ή να εκθέσετε στο δίκτυό σας.


Για παράδειγμα, μπορείτε να έχετε ένα container με έναν ιστότοπο που εκτελείται στη θύρα 80, την προεπιλεγμένη θύρα HTTP, και μπορείτε στη συνέχεια να το εκθέσετε από τον υπολογιστή σας επίσης στη θύρα 80.
@ -179,11 +179,11 @@
## Προετοιμασία του κοντέινερ για ανάπτυξη


Αφού κατεβάσετε το μοντέλο σας, πρέπει να δημιουργηθεί σε κοντέινερ και να αποσταλεί σε ένα container registry - μια διαδικτυακή τοποθεσία όπου μπορείτε να αποθηκεύετε κοντέινερ. Το IoT Edge μπορεί στη συνέχεια να κατεβάσει το κοντέινερ από το registry και να το προωθήσει στη συσκευή σας.


Το container registry που θα χρησιμοποιήσετε για αυτό το μάθημα είναι το Azure Container Registry. Αυτή δεν είναι δωρεάν υπηρεσία, οπότε γιανα εξοικονομήσετε χρήματα, βεβαιωθείτε ότι [καθαρίζετε το έργο σας](../../../clean-up.md) μόλις τελειώσετε.
# Ενεργοποίηση ανίχνευσης ποιότητας φρούτων από έναν αισθητήρα


> Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
Το παραπάνω διάγραμμα δείχνει μερικά από τα στοιχεία και τις υπηρεσίες που καλύφθηκαν μέχρι τώρα σε αυτά τα μαθήματα και πώς συνδέονται μεταξύ τους σε μια αναφορά αρχιτεκτονικής IoT.
@ -89,7 +89,7 @@
### Δημιουργία πρωτοτύπου της εφαρμογής σας


Το παραπάνω διάγραμμα δείχνει μια αναφορά αρχιτεκτονικής για αυτή την πρωτότυπη εφαρμογή.
@ -124,7 +124,7 @@
Το πρωτότυπο ανιχνευτή φρούτων έχει πολλαπλά στοιχεία που επικοινωνούν μεταξύ τους.


* Ένας αισθητήρας εγγύτητας που μετρά την απόσταση από ένα φρούτο και στέλνει αυτά τα δεδομένα στο IoT Hub
* Η εντολή για τον έλεγχο της κάμερας που προέρχεται από το IoT Hub προς τη συσκευή της κάμερας


1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα Time of Flight. Θα μπει μόνο με έναν συγκεκριμένο τρόπο.
1. Επιλέξτε το κουμπί **Add**γιανα δημιουργήσετε τον αισθητήρα απόστασης.


Ο αισθητήρας απόστασης θα δημιουργηθεί και θα εμφανιστεί στη λίστα αισθητήρων.


1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα Time of Flight. Θα μπει μόνο με έναν συγκεκριμένο τρόπο.


> Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -36,7 +36,7 @@
Η ταξινόμηση εικόνων αφορά την ταξινόμηση μιας εικόνας συνολικά - ποιες είναι οι πιθανότητες ότι η συνολική εικόνα ταιριάζει σε κάθε ετικέτα. Επιστρέφονται πιθανότητες για κάθε ετικέτα που χρησιμοποιήθηκε για την εκπαίδευση του μοντέλου.


Στο παραπάνω παράδειγμα, δύο εικόνες ταξινομούνται χρησιμοποιώντας ένα μοντέλο που εκπαιδεύτηκε να ταξινομεί δοχεία με κάσιους ή κονσέρβες ντοματοπολτού. Η πρώτη εικόνα είναι ένα δοχείο με κάσιους και έχει δύο αποτελέσματα από τον ταξινομητή εικόνων:
@ -60,7 +60,7 @@
> 🎓 *Πλαίσια οριοθέτησης* είναι τα πλαίσια γύρω από ένα αντικείμενο.


Η παραπάνω εικόνα περιέχει τόσο ένα δοχείο με κάσιους όσο και τρεις κονσέρβες ντοματοπολτού. Ο ανιχνευτής αντικειμένων ανίχνευσε τα κάσιους, επιστρέφοντας το πλαίσιο οριοθέτησης που περιέχει τα κάσιους με το ποσοστό πιθανότητας ότι το πλαίσιο οριοθέτησης περιέχει το αντικείμενο, σε αυτή την περίπτωση 97.6%. Ο ανιχνευτής αντικειμένων έχει επίσης ανιχνεύσει τρεις κονσέρβες ντοματοπολτού και παρέχει τρία ξεχωριστά πλαίσια οριοθέτησης, ένα για κάθε ανιχνευμένη κονσέρβα, και το καθένα έχει ένα ποσοστό πιθανότητας ότι το πλαίσιο οριοθέτησης περιέχει μια κονσέρβα ντοματοπολτού.
@ -111,7 +111,7 @@
Όταν δημιουργείτε το έργο σας, βεβαιωθείτε ότι χρησιμοποιείτε τον πόρο `stock-detector-training` που δημιουργήσατε νωρίτερα. Χρησιμοποιήστε τον τύπο έργου *Object Detection* και τον τομέα *Products on Shelves*.


✅ Ο τομέας προϊόντων στα ράφια είναι ειδικά προσαρμοσμένος για την ανίχνευση αποθεμάτων στα ράφια καταστημάτων. Διαβάστε περισσότερα για τους διαφορετικούς τομείς στην [τεκμηρίωση Επιλογή τομέα στα Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection)
@ -133,7 +133,7 @@
1. Ακολουθήστε την [ενότητα Μεταφόρτωση και ετικέτα εικόνων του γρήγορου οδηγού για την κατασκευή ανιχνευτή αντικειμένων στα Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) γιανα ανεβάσετε τις εικόνες εκπαίδευσης σας. Δημιουργήστε σχετικές ετικέτες ανάλογα με τους τύπους αντικειμένων που θέλετε να ανιχνεύσετε.


Όταν σχεδιάζετε πλαίσια οριοθέτησης για αντικείμενα, κρατήστε τα σφιχτά γύρω από το αντικείμενο. Μπορεί να χρειαστεί χρόνος γιανα περιγράψετε όλες τις εικόνες, αλλά το εργαλείο θα ανιχνεύσει τι πιστεύει ότι είναι τα πλα
[Κουίζ μετά τη διάλεξη](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/38)


> Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
1. Στον διάλογο *Publish Model*, ορίστε τον *Prediction resource* στη `stock-detector-prediction` υπηρεσία που δημιουργήσατε στην προηγούμενη ενότητα. Αφήστε το όνομα ως `Iteration2` και επιλέξτε το κουμπί **Publish**.
@ -76,7 +76,7 @@
Επίσης, αντιγράψτε την τιμή του *Prediction-Key*. Αυτό είναι ένα ασφαλές κλειδί που πρέπει να περάσετε όταν καλείτε το μοντέλο. Μόνο εφαρμογές που περνούν αυτό το κλειδί επιτρέπεται να χρησιμοποιούν το μοντέλο, οποιαδήποτε άλλη εφαρμογή απορρίπτεται.


✅ Όταν δημοσιεύεται μια νέα έκδοση, θα έχει διαφορετικό όνομα. Πώς νομίζετε ότι θα αλλάζατε την έκδοση που χρησιμοποιεί μια συσκευή IoT;
@ -95,7 +95,7 @@
Τα αποτελέσματα μιας πρόβλεψης στην καρτέλα **Predictions** στο Custom Vision έχουν τα πλαίσια οριοθέτησης σχεδιασμένα πάνω στην εικόνα που στάλθηκε για πρόβλεψη.


Στην παραπάνω εικόνα, ανιχνεύθηκαν 4 κονσέρβες τοματοπολτού. Στα αποτελέσματα, ένα κόκκινο τετράγωνο είναι σχεδιασμένο για κάθε αντικείμενο που ανιχνεύθηκε στην εικόνα, υποδεικνύοντας το πλαίσιο οριοθέτησης.
@ -103,7 +103,7 @@
Τα πλαίσια οριοθέτησης ορίζονται με 4 τιμές - top, left, height και width. Αυτές οι τιμές είναι σε κλίμακα 0-1, που αντιπροσωπεύουν τις θέσεις ως ποσοστό του μεγέθους της εικόνας. Η αρχή (η θέση 0,0) είναι η επάνω αριστερή γωνία της εικόνας, οπότε η τιμή top είναι η απόσταση από την κορυφή, και το κάτω μέρος του πλαισίου οριοθέτησης είναι το top συν το height.


Η παραπάνω εικόνα έχει πλάτος 600 pixels και ύψος 800 pixels. Το πλαίσιο οριοθέτησης ξεκινά 320 pixels κάτω, δίνοντας μια τιμή top 0.4 (800 x 0.4 = 320). Από τα αριστερά, το πλαίσιο ξεκινά 240 pixels, δίνοντας μια τιμή left 0.4 (600 x 0.4 = 240). Το ύψος του πλαισίου είναι 240 pixels, δίνοντας μια τιμή height 0.3 (800 x 0.3 = 240). Το πλάτος του πλαισίου είναι 120 pixels, δίνοντας μια τιμή width 0.2 (600 x 0.2 = 120).
@ -118,7 +118,7 @@
Μπορείτε να χρησιμοποιήσετε τα πλαίσια οριοθέτησης σε συνδυασμό με τις πιθανότητες γιανα αξιολογήσετε πόσο ακριβής είναι μια ανίχνευση. Για παράδειγμα, ένας ανιχνευτής αντικειμένων μπορεί να ανιχνεύσει πολλαπλά αντικείμενα που επικαλύπτονται, για παράδειγμα ανιχνεύοντας μια κονσέρβα μέσα σε μια άλλη. Ο κώδικάς σας θα μπορούσε να εξετάσει τα πλαίσια οριοθέτησης, να κατανοήσει ότι αυτό είναι αδύνατο, και να αγνοήσει οποιαδήποτε αντικείμενα έχουν σημαντική επικάλυψη με άλλα αντικείμενα.


Στο παραπάνω παράδειγμα, ένα πλαίσιο οριοθέτησης υποδεικνύει μια προβλεπόμενη κονσέρβα τοματοπολτού με πιθανότητα 78.3%. Ένα δεύτερο πλαίσιο είναι ελαφρώς μικρότερο και βρίσκεται μέσα στο πρώτο πλαίσιο με πιθανότητα 64.3%. Ο κώδικάς σας μπορεί να ελέγξει τα πλαίσια οριοθέτησης, να δει ότι επικαλύπτονται πλήρως, και να αγνοήσει την χαμηλότερη πιθανότητα, καθώς δεν είναι δυνατόν να υπάρχει μια κονσέρβα μέσα σε μια άλλη.
Θα μπορείτε να δείτε την εικόνα που τραβήχτηκε και αυτές τις τιμές στην καρτέλα **Predictions** στο Custom Vision.


> 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) ή [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device).
Θα μπορείς να δεις την εικόνα που τραβήχτηκε και αυτές τις τιμές στην καρτέλα **Predictions** στο Custom Vision.


> 💁 Μπορείς να βρεις αυτόν τον κώδικα στον φάκελο [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal).


> Σκίτσα από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -51,7 +51,7 @@
Τα δυναμικά μικρόφωνα δεν χρειάζονται τροφοδοσία γιανα λειτουργήσουν, το ηλεκτρικό σήμα δημιουργείται εξ ολοκλήρου από το μικρόφωνο.


* Κορδέλας - Τα μικρόφωνα κορδέλας είναι παρόμοια με τα δυναμικά μικρόφωνα, εκτός από το ότι έχουν μια μεταλλική κορδέλα αντί για μεμβράνη. Αυτή η κορδέλα κινείται σε ένα μαγνητικό πεδίο δημιουργώντας ηλεκτρικό ρεύμα. Όπως τα δυναμικά μικρόφωνα, τα μικρόφωνα κορδέλας δεν χρειάζονται τροφοδοσία γιανα λειτουργήσουν.
@ -59,11 +59,11 @@
* Πυκνωτικά - Τα πυκνωτικά μικρόφωνα έχουν μια λεπτή μεταλλική μεμβράνη και μια σταθερή μεταλλική πλάκα. Ηλεκτρισμός εφαρμόζεται και στα δύο αυτά μέρη και καθώς η μεμβράνη δονείται, η στατική φόρτιση μεταξύ των πλακών αλλάζει, δημιουργώντας ένα σήμα. Τα πυκνωτικά μικρόφωνα χρειάζονται τροφοδοσία γιανα λειτουργήσουν - γνωστή ως *Phantom power*.


* MEMS - Τα μικρόφωνα μικροηλεκτρομηχανικών συστημάτων, ή MEMS, είναι μικρόφωνα σε τσιπ. Έχουν μια ευαίσθητη στην πίεση μεμβράνη χαραγμένη σε ένα τσιπ πυριτίου και λειτουργούν παρόμοια με ένα πυκνωτικό μικρόφωνο. Αυτά τα μικρόφωνα μπορούν να είναι πολύ μικρά και να ενσωματώνονται σε κυκλώματα.


Στην παραπάνω εικόνα, το τσιπ με την ένδειξη **LEFT** είναι ένα μικρόφωνο MEMS, με μια μικροσκοπική μεμβράνη πλάτους λιγότερο από ένα χιλιοστό.
Όπως και με την ταξινόμηση εικόνων σε ένα προηγούμενο έργο, υπάρχουν προκατασκευασμένες υπηρεσίες AI που μπορούν να πάρουν την ομιλία ως αρχείο ήχου και να τη μετατρέψουν σε κείμενο. Μία τέτοια υπηρεσία είναι η Speech Service, μέρος των Cognitive Services, προκατασκευασμένες υπηρεσίες AI που μπορείτε να χρησιμοποιήσετε στις εφαρμογές σας.
1. Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του κουμπιού. Θα μπει μόνο με έναν συγκεκριμένο τρόπο.
1. Με το Raspberry Pi απενεργοποιημένο, συνδέστε το άλλο άκρο του καλωδίου Grove στην ψηφιακή υποδοχή με την ένδειξη **D5** στη βάση Grove που είναι συνδεδεμένη στο Pi. Αυτή η υποδοχή είναι η δεύτερη από τα αριστερά, στη σειρά των υποδοχών δίπλα στα GPIO pins.


1. Αν χρησιμοποιείτε το ReSpeaker 2-Mics Pi HAT, μπορείτε να αφαιρέσετε το Grove base hat και να τοποθετήσετε το ReSpeaker hat στη θέση του.


Θα χρειαστείτε ένα κουμπί Grove αργότερα σε αυτό το μάθημα, αλλά ένα είναι ενσωματωμένο σε αυτό το hat, οπότε το Grove base hat δεν είναι απαραίτητο.
✅ Διαβάστε περισσότερα για το DMA στη [σελίδα άμεσης πρόσβασης μνήμης στη Wikipedia](https://wikipedia.org/wiki/Direct_memory_access).


Ο DMAC μπορεί να καταγράψει ήχο από τον ADC σε σταθερά διαστήματα, όπως 16.000 φορές το δευτερόλεπτο για ήχο 16KHz. Μπορεί να γράψει αυτά τα δεδομένα σε έναν προ-κατανεμημένο buffer μνήμης, και όταν αυτός γεμίσει, να τον κάνει διαθέσιμο στον κώδικά σας για επεξεργασία. Η χρήση αυτής της μνήμης μπορεί να καθυστερήσει την καταγραφή ήχου, αλλά μπορείτε να ρυθμίσετε πολλαπλούς buffers. Ο DMAC γράφει στον buffer 1, και όταν αυτός γεμίσει, ειδοποιεί τον κώδικά σας να επεξεργαστεί τον buffer 1, ενώ ο DMAC γράφει στον buffer 2. Όταν ο buffer 2 γεμίσει, ειδοποιεί τον κώδικά σας και επιστρέφει στη γραφή στον buffer 1. Με αυτόν τον τρόπο, όσο επεξεργάζεστε κάθε buffer σε λιγότερο χρόνο από όσο χρειάζεται γιανα γεμίσει ένας, δεν θα χάσετε δεδομένα.


> Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -46,7 +46,7 @@
## Δημιουργία μοντέλου κατανόησης γλώσσας


Μπορείτε να δημιουργήσετε μοντέλα κατανόησης γλώσσας χρησιμοποιώντας το LUIS, μια υπηρεσία κατανόησης γλώσσας της Microsoft που αποτελεί μέρος των Cognitive Services.
# Ρύθμιση χρονομέτρου και παροχή φωνητικής ανατροφοδότησης


> Σκιαγραφία από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.


> Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
@ -74,7 +74,7 @@
### Υπηρεσία ομιλίας Cognitive Services


Η υπηρεσία ομιλίας που χρησιμοποιήσατε στα προηγούμενα μαθήματα διαθέτει δυνατότητες μετάφρασης για την αναγνώριση ομιλίας. Όταν αναγνωρίζετε ομιλία, μπορείτε να ζητήσετε όχι μόνο το κείμενο της ομιλίας στην ίδια γλώσσα, αλλά και σε άλλες γλώσσες.
@ -82,7 +82,7 @@
### Υπηρεσία μεταφραστή Cognitive Services


Η υπηρεσία Translator είναι μια ειδική υπηρεσία μετάφρασης που μπορεί να μεταφράσει κείμενο από μία γλώσσα σε μία ή περισσότερες γλώσσες-στόχους. Εκτός από τη μετάφραση, υποστηρίζει ένα ευρύ φάσμα επιπλέον λειτουργιών, όπως η απόκρυψη βωμολοχιών. Σας επιτρέπει επίσης να παρέχετε μια συγκεκριμένη μετάφραση για μια συγκεκριμένη λέξη ή πρόταση, να δουλεύετε με όρους που δεν θέλετε να μεταφραστούν ή να έχετε μια συγκεκριμένη γνωστή μετάφραση.
> Για παράδειγμα, αν εκπαιδεύσετε το LUIS στα Αγγλικά αλλά θέλετε να χρησιμοποιήσετε τα Γαλλικά ως γλώσσα χρήστη, μπορείτε να μεταφράσετε προτάσεις όπως "set a 2 minute and 27 second timer" από τα Αγγλικά στα Γαλλικά χρησιμοποιώντας το Bing Translate και στη συνέχεια να χρησιμοποιήσετε το κουμπί **Listen translation**γιανα μιλήσετε τη μετάφραση στο μικρόφωνό σας.
>
> 
> 
1. Προσθέστε το κλειδί API του μεταφραστή κάτω από το `speech_api_key`:
> Για παράδειγμα, αν εκπαιδεύσετε το LUIS στα Αγγλικά, αλλά θέλετε να χρησιμοποιήσετε τα Γαλλικά ως γλώσσα χρήστη, μπορείτε να μεταφράσετε προτάσεις όπως "set a 2 minute and 27 second timer" από τα Αγγλικά στα Γαλλικά χρησιμοποιώντας το Bing Translate και στη συνέχεια να χρησιμοποιήσετε το κουμπί **Listen translation**γιανα πείτε τη μετάφραση στο μικρόφωνό σας.
>
> 
> 
1. Αντικαταστήστε τις δηλώσεις `recognizer_config` και `recognizer` με τις εξής:
> Για παράδειγμα, αν εκπαιδεύσετε το LUIS στα Αγγλικά, αλλά θέλετε να χρησιμοποιήσετε τα Γαλλικά ως γλώσσα χρήστη, μπορείτε να μεταφράσετε προτάσεις όπως "set a 2 minute and 27 second timer" από τα Αγγλικά στα Γαλλικά χρησιμοποιώντας το Bing Translate και στη συνέχεια να χρησιμοποιήσετε το κουμπί **Listen translation**γιανα εκφωνήσετε τη μετάφραση στο μικρόφωνό σας.
>
> 
> 
1. Προσθέστε το API key και την τοποθεσία του μεταφραστή κάτω από το `SPEECH_LOCATION`:
Αν κολλήσετε ή έχετε ερωτήσεις σχετικά με την κατασκευή εφαρμογών AI, ενωθείτε με άλλους μαθητές και έμπειρους προγραμματιστές σε συζητήσεις σχετικά με το MCP. Είναι μια υποστηρικτική κοινότητα όπου οι ερωτήσεις είναι ευπρόσδεκτες και η γνώση μοιράζεται ελεύθερα.
Αν κολλήσετε ή έχετε οποιεσδήποτε ερωτήσεις σχετικά με την κατασκευή εφαρμογών AI. Εγγραφείτε μαζί με άλλους μαθητές και έμπειρους προγραμματιστές σε συζητήσεις για το MCP. Είναι μια υποστηρικτική κοινότητα όπου οι ερωτήσεις είναι ευπρόσδεκτες και η γνώση μοιράζεται ελεύθερα.
> Αυτό το αποθετήριο περιλαμβάνει περισσότερες από 50 μεταφράσεις γλωσσών που αυξάνουν σημαντικά το μέγεθος λήψης. Για να κλωνοποιήσετε χωρίς τις μεταφράσεις, χρησιμοποιήστε sparse checkout:
> **Προτιμάτε να κάνετε το κλωνοποίηση τοπικά;**
>
> Αυτό το αποθετήριο περιλαμβάνει μεταφράσεις σε πάνω από 50 γλώσσες, που αυξάνει σημαντικά το μέγεθος λήψης. Για να κλωνοποιήσετε χωρίς τις μεταφράσεις, χρησιμοποιήστε το sparse checkout:
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> Αυτό σας δίνει όλα όσα χρειάζεστε γιανα ολοκληρώσετε το μάθημα με πολύ πιο γρήγορη λήψη.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
# IoT για Αρχάριους - Ένα Αναλυτικό Πρόγραμμα Σπουδών
# IoT για Αρχάριους - Ένα Αναλυτικό Πρόγραμμα
Οι Azure Cloud Advocates στη Microsoft προσφέρουν με χαρά ένα πρόγραμμα 12 εβδομάδων, 24 μαθημάτων, που αφορά τα βασικά του Internet of Things. Κάθε μάθημα περιλαμβάνει πριν και μετά το μάθημα κουίζ, γραπτές οδηγίες για την ολοκλήρωση του μαθήματος, μια λύση, μια εργασία και άλλα. Η μεθοδολογία μας βασισμένη σε έργα επιτρέπει να μαθαίνετε ενώ κατασκευάζετε, ένας δοκιμασμένος τρόπος γιανα "κολλήσουν" νέες δεξιότητες.
Οι Azure Cloud Advocates της Microsoft είναι στην ευχάριστη θέση να προσφέρουν ένα 12-εβδομαδιαίο, 24-μαθημάτων πρόγραμμα, σχετικά με τα βασικά του IoT. Κάθε μάθημα περιλαμβάνει quiz πριν και μετά το μάθημα, γραπτές οδηγίες για την ολοκλήρωση του μαθήματος, μια λύση, μια εργασία και άλλα. Η μαθησιακή μας προσέγγιση βασισμένη σε έργα σας επιτρέπει να μαθαίνετε ενώ χτίζετε, ένας αποδεδειγμένος τρόπος γιανα "καθίσουν" οι νέες δεξιότητες.
Τα έργα καλύπτουν το ταξίδι των τροφίμων από το χωράφι στο τραπέζι. Αυτό περιλαμβάνει τη γεωργία, τη διακίνηση, την παραγωγή, το εμπόριο και τον καταναλωτή - όλα δημοφιλείς τομείς της βιομηχανίας για συσκευές IoT.
Τα έργα καλύπτουν την πορεία της τροφής από το χωράφι μέχρι το τραπέζι. Αυτό περιλαμβάνει τη γεωργία, τη μεταφορά, την παραγωγή, το λιανικό εμπόριο και τους καταναλωτές - όλα δημοφιλείς κλάδοιγια συσκευές IoT.


> Σχεδιασμένο από [Nitya Narasimhan](https://github.com/nitya). Πατήστε την εικόνα για μεγαλύτερη έκδοση.
> Σχεδιοκείμενο από την [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.
**Ευχαριστούμε θερμά τους συγγραφείς μας [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), και τον σχεδιαστή των σημειώσεων [Nitya Narasimhan](https://github.com/nitya).**
**Ευχαριστούμε θερμά τους συγγραφείς μας [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), και τον καλλιτέχνη σχεδιοκειμένου μας [Nitya Narasimhan](https://github.com/nitya).**
**Ευχαριστούμε επίσης την ομάδα μας από [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) που έχουν αναθεωρήσει και μεταφράσει αυτό το πρόγραμμα - [Aditya Garg](https://github.com/AdityaGarg00), [Anurag Sharma](https://github.com/Anurag-0-1-A), [Arpita Das](https://github.com/Arpiiitaaa), [Aryan Jain](https://www.linkedin.com/in/aryan-jain-47a4a1145/), [Bhavesh Suneja](https://github.com/EliteWarrior315), [Faith Hunja](https://faithhunja.github.io/), [Lateefah Bello](https://www.linkedin.com/in/lateefah-bello/), [Manvi Jha](https://github.com/Severus-Matthew), [Mireille Tan](https://www.linkedin.com/in/mireille-tan-a4834819a/), [Mohammad Iftekher (Iftu) Ebne Jalal](https://github.com/Iftu119), [Mohammad Zulfikar](https://github.com/mohzulfikar), [Priyanshu Srivastav](https://www.linkedin.com/in/priyanshu-srivastav-b067241ba), [Thanmai Gowducheruvu](https://github.com/innovation-platform), και [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).**
> 🎥 Πατήστε την εικόνα παραπάνω για ένα βίντεο σχετικά με το έργο!
> 🎥 Κάντε κλικ στην εικόνα παραπάνω για ένα βίντεο σχετικά με το έργο!
> **Καθηγητές**, έχουμε [συμπεριλάβει κάποιες προτάσεις](for-teachers.md) για το πώς να χρησιμοποιήσετε αυτό το πρόγραμμα. Αν θέλετε να δημιουργήσετε τα δικά σας μαθήματα, έχουμε επίσης συμπεριλάβει ένα [πρότυπο μαθήματος](lesson-template/README.md).
> **Καθηγητές**, έχουμε [συμπεριλάβει ορισμένες προτάσεις](for-teachers.md) για το πώς να χρησιμοποιήσετε αυτό το πρόγραμμα. Αν θέλετε να δημιουργήσετε τα δικά σας μαθήματα, έχουμε επίσης συμπεριλάβει ένα [πρότυπο μαθήματος](lesson-template/README.md).
> **[Φοιτητές](https://aka.ms/student-page)**, γιανα χρησιμοποιήσετε αυτό το πρόγραμμα μόνοι σας, κάντε fork ολόκληρου του αποθετηρίου και ολοκληρώστε τις ασκήσεις μόνοι σας, ξεκινώντας με κουίζ πριν το μάθημα, στη συνέχεια διαβάζοντας τη διάλεξη και ολοκληρώνοντας τις υπόλοιπες δραστηριότητες. Προσπαθήστε να δημιουργήσετε τα έργα κατανοώντας τα μαθήματα αντί να αντιγράφετε τον κώδικα της λύσης· ωστόσο ο κώδικας αυτός είναι διαθέσιμος στους φακέλους /solutions σε κάθε μάθημα προσανατολισμένο σε έργο. Μια άλλη ιδέα είναι ναδημιουργήσετε μια ομάδα μελέτης με φίλους και να περάσετε το περιεχόμενο μαζί. Για περαιτέρω μελέτη, προτείνουμε το [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn).
> **[Μαθητές](https://aka.ms/student-page)**, γιανα χρησιμοποιήσετε αυτό το πρόγραμμα μόνοι σας, κάντε fork ολόκληρου του αποθετηρίου και ολοκληρώστε τις ασκήσεις μόνοι σας, ξεκινώντας με quiz πριν τη διάλεξη, μετά διαβάζοντας τη διάλεξη και ολοκληρώνοντας τις υπόλοιπες δραστηριότητες. Προσπαθήστε να δημιουργήσετε τα έργα κατανοώντας τα μαθήματα αντί να αντιγράφετε τον κώδικα λύσης· ωστόσο ο κώδικας είναι διαθέσιμος στους φακέλους /solutions σε κάθε μάθημα προσανατολισμένο σε έργο. Μια άλλη ιδέα είναι νασχηματίσετε ομάδα μελέτης με φίλους και να περάσετε το υλικό μαζί. Για περαιτέρω μελέτη, προτείνουμε το [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn).
Για μια επισκόπηση του μαθήματος με βίντεο, δείτε αυτό το βίντεο:
Για μια βιντεοπαρουσίαση αυτού του μαθήματος, δείτε αυτό το βίντεο:
> 🎥 Πατήστε την εικόνα παραπάνω για ένα βίντεο σχετικά με το έργο!
> 🎥 Κάντε κλικ στην εικόνα παραπάνω για ένα βίντεο σχετικά με το έργο!
## Παιδαγωγική
Έχουμε επιλέξει δύο παιδαγωγικές αρχές κατά τη δημιουργία αυτού του προγράμματος: να είναι βασισμένο σε έργα και να περιλαμβάνει συχνά κουίζ. Μέχρι το τέλος αυτής της σειράς, οι μαθητές θα έχουν δημιουργήσει ένα σύστημα παρακολούθησης και ποτίσματος φυτών, έναν εντοπιστή οχημάτων, μια έξυπνη εγκατάσταση εργοστασίου για τον έλεγχο τροφίμων και έναν χρονόμετρο μαγειρέματος με φωνητικό έλεγχο, και θα έχουν μάθει τα βασικά του Internet of Things περιλαμβάνοντας πώς να γράφουν κώδικα συσκευής, να συνδέονται με το νέφος, να αναλύουν τηλεμετρία και να τρέχουν AI στο άκρο.
Έχουμε επιλέξει δύο παιδαγωγικές αρχές κατά τη δημιουργία αυτού του προγράμματος: να εξασφαλίσουμε ότι βασίζεται σε έργα και ότι περιλαμβάνει συχνά κουίζ. Μέχρι το τέλος αυτής της σειράς, οι μαθητές θα έχουν δημιουργήσει ένα σύστημα παρακολούθησης και ποτίσματος φυτών, ένα σύστημα παρακολούθησης οχημάτων, μια έξυπνη εργοστασιακή εγκατάσταση για την παρακολούθηση και τον έλεγχο τροφίμων, και ένα χρονοδιακόπτη μαγειρέματος με φωνητικό έλεγχο, και θα έχουν μάθει τα βασικά του Internet of Things, συμπεριλαμβανομένων του πώς να γράφουν κώδικα συσκευών, να συνδέονται με το cloud, να αναλύουν τηλεμετρία και να τρέχουν AI στην άκρη.
Εξασφαλίζοντας ότι το περιεχόμενο συνδέεται με έργα, η διαδικασία γίνεται πιο ελκυστική για τους μαθητές και ενισχύεται η διατήρηση των εννοιών.
Εξασφαλίζοντας ότι το περιεχόμενο ευθυγραμμίζεται με τα έργα, η διαδικασία γίνεται πιο ενδιαφέρουσα για τους μαθητές και η διατήρηση των εννοιών θα ενισχυθεί.
Επιπλέον, ένα κουίζ χαμηλού ρίσκου πριν τη τάξη θέτει την πρόθεση του μαθητή προς τη μάθηση ενός θέματος, ενώ ένα δεύτερο κουίζ μετά τη τάξη εξασφαλίζει περαιτέρω διατήρηση. Αυτό το πρόγραμμα σχεδιάστηκε να είναι ευέλικτο και διασκεδαστικό και μπορεί ναληφθεί ολόκληρο ή μερικώς. Τα έργα ξεκινούν μικρά και γίνονται σταδιακά πιο πολύπλοκα μέχρι το τέλος των 12 εβδομάδων.
Επιπλέον, ένα κουίζ χαμηλού ρίσκου πριν από το μάθημα θέτει την πρόθεση του μαθητή για μάθηση ενός θέματος, ενώ ένα δεύτερο κουίζ μετά το μάθημα εξασφαλίζει περαιτέρω διατήρηση. Αυτό το πρόγραμμα σχεδιάστηκε γιανα είναι ευέλικτο και διασκεδαστικό και μπορεί ναπαρακολουθηθεί ολόκληρο ή κατά μέρη. Τα έργα ξεκινούν μικρά και γίνονται ολοένα και πιο σύνθετα μέχρι το τέλος του 12-εβδομαδιαίου κύκλου.
Κάθε έργο βασίζεται σε συσκευές πραγματικού κόσμου διαθέσιμες σε μαθητές και χομπίστες. Κάθε έργο εξετάζει τον συγκεκριμένο τομέα, παρέχοντας σχετική θεωρητική γνώση. Για να είστε επιτυχημένος προγραμματιστής, βοηθά το να κατανοήσετε τον τομέα όπου λύνετε προβλήματα, και το παροχή αυτής της θεωρητικής γνώσης επιτρέπει στους μαθητές να σκέφτονται τις λύσεις IoT και τις μαθησιακές τους εμπειρίες στο πλαίσιο του είδους προβλήματος που μπορεί να τους ζητηθείνα λύσουν ως προγραμματιστές IoT. Οι μαθητές μαθαίνουν το "γιατί" των λύσεων που δημιουργούν και αποκτούν εκτίμηση για τον τελικό χρήστη.
Κάθε έργο βασίζεται σε πραγματικό υλικό που είναι διαθέσιμο σε μαθητές και χομπίστες. Κάθε έργο εξετάζει τον συγκεκριμένο τομέα του έργου, παρέχοντας σχετικές γνώσεις υπόβαθρου. Για να είναι κάποιος επιτυχημένος προγραμματιστής, βοηθάει να κατανοεί τον τομέα στον οποίο επιλύει προβλήματα, προσφέροντας αυτές τις γνώσεις παρασκηνίου επιτρέπει στους μαθητές να σκεφτούν τις λύσεις IoT και τις γνώσεις τους στο πλαίσιο του είδους του προβλήματος του πραγματικού κόσμου που μπορεί να κληθούννα λύσουν ως προγραμματιστές IoT. Οι μαθητές μαθαίνουν το "γιατί" των λύσεων που κατασκευάζουν και αποκτούν εκτίμηση για τον τελικό χρήστη.
## Υλικό
## Υλικό (Hardware)
Έχουμε δύο επιλογές υλικού IoT για χρήση στα έργα ανάλογα με τις προσωπικές προτιμήσεις, τις γνώσεις ή προτιμήσεις στη γλώσσα προγραμματισμού, τους στόχους μάθησης και τη διαθεσιμότητα. Έχουμε επίσης παράσχει μια έκδοση «εικονικού υλικού» για όσους δεν έχουν πρόσβαση σε υλικό, ή θέλουν να μάθουν περισσότερα πριν δεσμευτούν σε μια αγορά. Μπορείτε να διαβάσετε περισσότερα και να βρείτε μια «λίστα αγορών» στη [σελίδα υλικού](./hardware.md), μαζί με συνδέσμους για την αγορά ολοκληρωμένων κιτ από τους φίλους μας στο Seeed Studio.
Έχουμε δύο επιλογές υλικού IoT για χρήση στα έργα ανάλογα με τις προσωπικές προτιμήσεις, τις γνώσεις γλώσσας προγραμματισμού, τους μαθησιακούς στόχους και τη διαθεσιμότητα. Παρέχουμε επίσης μια 'εικονική έκδοση' υλικού για όσους δεν έχουν πρόσβαση σε υλικό ή θέλουν να μάθουν περισσότερα πριν δεσμευτούν σε αγορά. Μπορείτε να διαβάσετε περισσότερα και να βρείτε μια 'λίστα αγορών' στη [σελίδα υλικού](./hardware.md), συμπεριλαμβανομένων συνδέσμων για την αγορά πλήρων κιτ από τους φίλους μας στο Seeed Studio.
> 💁 Βρείτε τον [Κώδικα Συμπεριφοράς μας](CODE_OF_CONDUCT.md), τις οδηγίες [Συμβολής](CONTRIBUTING.md) και [Μετάφρασης](TRANSLATIONS.md). Καλωσορίζουμε τα εποικοδομητικά σας σχόλια!
> 💁 Βρείτε τις [Κανόνες Συμπεριφοράς](CODE_OF_CONDUCT.md), τις οδηγίες [Συμμετοχής](CONTRIBUTING.md) και [Μετάφρασης](TRANSLATIONS.md). Καλωσορίζουμε την εποικοδομητική σας ανατροφοδότηση!
>
> 🔧 Αν αντιμετωπίζετε προβλήματα, ελέγξτε τον [Οδηγό Επίλυσης Προβλημάτων](TROUBLESHOOTING.md) για λύσεις σε κοινά ζητήματα.
> 🔧 Αν αντιμετωπίζετε προβλήματα, δείτε τον [Οδηγό Επίλυσης Προβλημάτων](TROUBLESHOOTING.md) για λύσεις σε κοινά ζητήματα.
## Κάθε μάθημα περιλαμβάνει:
- σημειώσεις σκετς
- σημείωση σχεδίασης
- προαιρετικό συμπληρωματικό βίντεο
- προ-μάθημα quiz προθέρμανσης
- προμαθηματικό κουίζ προθέρμανσης
- γραπτό μάθημα
- για μαθήματα βασισμένα σε έργα, οδηγούς βήμα προς βήμα για το πώς να κατασκευάσετε το έργο
- ελέγχους γνώσης
- για μαθήματα με βάση έργα, οδηγούς βήμα προς βήμα για το πώς να κατασκευάσετε το έργο
- ελέγχους γνώσεων
- μια πρόκληση
- συμπληρωματική ανάγνωση
- ανάθεση
- [quiz μετά το μάθημα](https://ff-quizzes.netlify.app/en/)
> **Σημείωση σχετικά με τα quizzes**: Όλα τα quizzes περιέχονται στον φάκελο quiz-app, για συνολικά 48 quizzes των τριών ερωτήσεων το καθένα. Συνδέονται μέσα από τα μαθήματα αλλά η εφαρμογή quiz μπορεί να τρέξει τοπικά ή να αναπτυχθεί στο Azure· ακολουθήστε τις οδηγίες στον φάκελο `quiz-app`. Βρίσκονται σταδιακά υπό μετάφραση.
> **Μια σημείωση για τα κουίζ**: Όλα τα κουίζ βρίσκονται στο φάκελο quiz-app, συνολικά 48 κουίζ με τρεις ερωτήσεις το καθένα. Σύνδεσμοι υπάρχουν μέσα στα μαθήματα, αλλά η εφαρμογή κουίζ μπορεί να τρέξει τοπικά ή να αναπτυχθεί στο Azure· ακολουθήστε τις οδηγίες στον φάκελο `quiz-app`. Σταδιακά γίνεται η τοπικοποίησή τους.
| 01 | [Εισαγωγή](./1-getting-started/README.md) | Εισαγωγή στο IoT | Μάθετε τις βασικές αρχές του IoT και τα βασικά δομικά στοιχεία των λύσεων IoT όπως αισθητήρες και υπηρεσίες cloud ενώ ρυθμίζετε την πρώτη σας συσκευή IoT | [Εισαγωγή στο IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) |
| 02 | [Εισαγωγή](./1-getting-started/README.md) | Βαθύτερη ματιά στο IoT | Μάθετε περισσότερα για τα στοιχεία ενός συστήματος IoT, καθώς και για μικροελεγκτές και υπολογιστές μιας πλακέτας | [Βαθύτερη ματιά στο IoT](./1-getting-started/lessons/2-deeper-dive/README.md) |
| 03 | [Εισαγωγή](./1-getting-started/README.md) | Αλληλεπίδραση με τον φυσικό κόσμο με αισθητήρες και ενεργοποιητές | Μάθετε για αισθητήρες για τη συλλογή δεδομένων από τον φυσικό κόσμο, και ενεργοποιητές για την αποστολή ανατροφοδότησης, ενώ κατασκευάζετε ένα φωτάκι νυκτός | [Αλληλεπίδραση με τον φυσικό κόσμο με αισθητήρες και ενεργοποιητές](./1-getting-started/lessons/3-sensors-and-actuators/README.md) |
| 04 | [Εισαγωγή](./1-getting-started/README.md) | Συνδέστε τη συσκευή σας στο Διαδίκτυο | Μάθετε πώς να συνδέετε μια συσκευή IoT στο Διαδίκτυο γιανα στέλνετε και να λαμβάνετε μηνύματα συνδέοντας το φωτάκι σας με έναν MQTT broker | [Συνδέστε τη συσκευή σας στο Διαδίκτυο](./1-getting-started/lessons/4-connect-internet/README.md) |
| 05 | [Φάρμα](./2-farm/README.md) | Πρόβλεψη ανάπτυξης φυτού | Μάθετε πώς να προβλέπετε την ανάπτυξη φυτών χρησιμοποιώντας δεδομένα θερμοκρασίας που καταγράφονται από μια συσκευή IoT | [Πρόβλεψη ανάπτυξης φυτού](./2-farm/lessons/1-predict-plant-growth/README.md) |
| 01 | [Εισαγωγή](./1-getting-started/README.md) | Εισαγωγή στο IoT | Μάθετε τις βασικές αρχές του IoT και τα βασικά δομικά στοιχεία λύσεων IoT όπως αισθητήρες και υπηρεσίες cloud κατά τη ρύθμιση της πρώτης σας συσκευής IoT | [Εισαγωγή στο IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) |
| 02 | [Εισαγωγή](./1-getting-started/README.md) | Εκτενέστερη εισαγωγή στο IoT | Μάθετε περισσότερα για τα εξαρτήματα ενός συστήματος IoT, καθώς και για μικροελεγκτές και υπολογιστές μιας πλακέτας | [Εκτενέστερη εισαγωγή στο IoT](./1-getting-started/lessons/2-deeper-dive/README.md) |
| 03 | [Εισαγωγή](./1-getting-started/README.md) | Αλληλεπίδραση με τον φυσικό κόσμο μέσω αισθητήρων και ενεργοποιητών | Μάθετε για τους αισθητήρες για συλλογή δεδομένων από τον φυσικό κόσμο και τους ενεργοποιητές για αποστολή ανατροφοδότησης, κατασκευάζοντας ένα νυχτερινό φωτιστικό | [Αλληλεπίδραση με τον φυσικό κόσμο μέσω αισθητήρων και ενεργοποιητών](./1-getting-started/lessons/3-sensors-and-actuators/README.md) |
| 04 | [Εισαγωγή](./1-getting-started/README.md) | Συνδέστε τη συσκευή σας στο Διαδίκτυο | Μάθετε πώς να συνδέσετε μια συσκευή IoT στο Διαδίκτυο γιααποστολή και λήψη μηνυμάτων συνδέοντας το νυχτερινό φωτιστικό σας σε έναν διακομιστή MQTT | [Συνδέστε τη συσκευή σας στο Διαδίκτυο](./1-getting-started/lessons/4-connect-internet/README.md) |
| 05 | [Φάρμα](./2-farm/README.md) | Πρόβλεψη ανάπτυξης φυτού | Μάθετε πώς να προβλέπετε την ανάπτυξη φυτών χρησιμοποιώντας δεδομένα θερμοκρασίας που συλλέγονται από μια συσκευή IoT | [Πρόβλεψη ανάπτυξης φυτού](./2-farm/lessons/1-predict-plant-growth/README.md) |
| 06 | [Φάρμα](./2-farm/README.md) | Ανίχνευση υγρασίας εδάφους | Μάθετε πώς να ανιχνεύετε την υγρασία του εδάφους και να βαθμονομήσετε έναν αισθητήρα υγρασίας εδάφους | [Ανίχνευση υγρασίας εδάφους](./2-farm/lessons/2-detect-soil-moisture/README.md) |
| 07 | [Φάρμα](./2-farm/README.md) | Αυτόματο πότισμα φυτών | Μάθετε πώς να αυτοματοποιείτε και να χρονίζετε το πότισμα με τη χρήση ενός ρελέ και MQTT | [Αυτόματο πότισμα φυτών](./2-farm/lessons/3-automated-plant-watering/README.md) |
| 08 | [Φάρμα](./2-farm/README.md) | Μεταφέρετε το φυτό σας στο cloud | Μάθετε για το cloud και τις υπηρεσίες IoT που φιλοξενούνται στο cloud και πώς να συνδέσετε το φυτό σας σε μία από αυτές αντί για δημόσιο MQTT broker | [Μεταφέρετε το φυτό σας στο cloud](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) |
| 09 | [Φάρμα](./2-farm/README.md) | Μεταφέρετε τη λογική εφαρμογής σας στο cloud | Μάθετε πώς μπορείτε να γράψετε τη λογική της εφαρμογής στο cloud που ανταποκρίνεται σε μηνύματα IoT | [Μεταφέρετε τη λογική εφαρμογής σας στο cloud](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) |
| 10 | [Φάρμα](./2-farm/README.md) | Διατηρήστε το φυτό σας ασφαλές | Μάθετε για την ασφάλεια με το IoT και πώς να κρατήσετε το φυτό σας ασφαλές με κλειδιά και πιστοποιητικά | [Διατηρήστε το φυτό σας ασφαλές](./2-farm/lessons/6-keep-your-plant-secure/README.md) |
| 11 | [Μεταφορές](./3-transport/README.md) | Παρακολούθηση θέσης | Μάθετε για την παρακολούθηση θέσης GPS για συσκευές IoT | [Παρακολούθηση θέσης](./3-transport/lessons/1-location-tracking/README.md) |
| 12 | [Μεταφορές](./3-transport/README.md) | Αποθήκευση δεδομένων θέσης | Μάθετε πώς να αποθηκεύετε δεδομένα IoT γιανα τα οπτικοποιήσετε ή να τα αναλύσετε αργότερα | [Αποθήκευση δεδομένων θέσης](./3-transport/lessons/2-store-location-data/README.md) |
| 13 | [Μεταφορές](./3-transport/README.md) | Οπτικοποίηση δεδομένων θέσης | Μάθετε για την οπτικοποίηση δεδομένων θέσης σε χάρτη, και πώς οι χάρτες αναπαριστούν τον πραγματικό τρισδιάστατο κόσμο σε δύο διαστάσεις | [Οπτικοποίηση δεδομένων θέσης](./3-transport/lessons/3-visualize-location-data/README.md) |
| 14 | [Μεταφορές](./3-transport/README.md) | Γεωπεριοχές | Μάθετε για τις γεωπεριοχές, και πώς μπορούν να χρησιμοποιηθούν γιανα ειδοποιούν όταν οχήματα στην εφοδιαστική αλυσίδα πλησιάζουν τον προορισμό τους | [Γεωπεριοχές](./3-transport/lessons/4-geofences/README.md) |
| 15 | [Κατασκευή](./4-manufacturing/README.md) | Εκπαίδευση ανιχνευτή ποιότητας φρούτου | Μάθετε για την εκπαίδευση ενός ταξινομητή εικόνας στο cloud γιατην ανίχνευση ποιότητας φρούτων | [Εκπαίδευση ανιχνευτή ποιότητας φρούτου](./4-manufacturing/lessons/1-train-fruit-detector/README.md) |
| 16 | [Κατασκευή](./4-manufacturing/README.md) | Έλεγχος ποιότητας φρούτων από συσκευή IoT | Μάθετε για τη χρήση του ανιχνευτή ποιότητας φρούτων από μια συσκευή IoT | [Έλεγχος ποιότητας φρούτων από συσκευή IoT](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) |
| 17 | [Κατασκευή](./4-manufacturing/README.md) | Εκτέλεση ανιχνευτή φρούτων στο edge | Μάθετε για την εκτέλεση του ανιχνευτή φρούτων σε μια συσκευή IoT στο edge | [Εκτέλεση ανιχνευτή φρούτων στο edge](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) |
| 18 | [Κατασκευή](./4-manufacturing/README.md) | Ενεργοποίηση ανίχνευσης ποιότητας φρούτων από αισθητήρα | Μάθετε για την ενεργοποίηση της ανίχνευσης ποιότητας φρούτων από έναν αισθητήρα | [Ενεργοποίηση ανίχνευσης ποιότητας φρούτων από αισθητήρα](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) |
| 19 | [Λιανική](./5-retail/README.md) | Εκπαίδευση ανιχνευτή αποθεμάτων | Μάθετε πώς να χρησιμοποιείτε την ανίχνευση αντικειμένων γιανα εκπαιδεύσετε έναν ανιχνευτή αποθεμάτων για την καταμέτρηση αποθεμάτων σε ένα κατάστημα | [Εκπαίδευση ανιχνευτή αποθεμάτων](./5-retail/lessons/1-train-stock-detector/README.md) |
| 20 | [Λιανική](./5-retail/README.md) | Έλεγχος αποθεμάτων από συσκευή IoT | Μάθετε πώς να ελέγχετε αποθέματα από μια συσκευή IoT χρησιμοποιώντας ένα μοντέλο ανίχνευσης αντικειμένων | [Έλεγχος αποθεμάτων από συσκευή IoT](./5-retail/lessons/2-check-stock-device/README.md) |
| 07 | [Φάρμα](./2-farm/README.md) | Αυτοματοποιημένο πότισμα φυτών | Μάθετε πώς να αυτοματοποιήσετε και να χρονίσετε το πότισμα με χρήση ρελέ και MQTT | [Αυτοματοποιημένο πότισμα φυτών](./2-farm/lessons/3-automated-plant-watering/README.md) |
| 08 | [Φάρμα](./2-farm/README.md) | Μεταφορά του φυτού σας στο cloud | Μάθετε για το cloud και τις υπηρεσίες IoT που φιλοξενούνται στο cloud και πώς να συνδέσετε το φυτό σας σε μία από αυτές αντί για δημόσιο broker MQTT | [Μεταφορά του φυτού σας στο cloud](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) |
| 09 | [Φάρμα](./2-farm/README.md) | Μεταφορά της λογικής εφαρμογής σας στο cloud | Μάθετε πώς μπορείτε να γράφετε λογική εφαρμογής στο cloud που ανταποκρίνεται σε μηνύματα IoT | [Μεταφορά της λογικής εφαρμογής σας στο cloud](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) |
| 10 | [Φάρμα](./2-farm/README.md) | Διατήρηση της ασφάλειας του φυτού σας | Μάθετε για την ασφάλεια στο IoT και πώς να κρατήσετε το φυτό σας ασφαλές με κλειδιά και πιστοποιητικά | [Διατήρηση της ασφάλειας του φυτού σας](./2-farm/lessons/6-keep-your-plant-secure/README.md) |
| 11 | [Μεταφορές](./3-transport/README.md) | Παρακολούθηση τοποθεσίας | Μάθετε για την παρακολούθηση τοποθεσίας GPS για συσκευές IoT | [Παρακολούθηση τοποθεσίας](./3-transport/lessons/1-location-tracking/README.md) |
| 13 | [Μεταφορές](./3-transport/README.md) | Οπτικοποίηση δεδομένων τοποθεσίας | Μάθετε για την οπτικοποίηση δεδομένων τοποθεσίας σε χάρτη, και πώς οι χάρτες αναπαριστούν τον πραγματικό τρισδιάστατο κόσμο σε δύο διαστάσεις | [Οπτικοποίηση δεδομένων τοποθεσίας](./3-transport/lessons/3-visualize-location-data/README.md) |
| 14 | [Μεταφορές](./3-transport/README.md) | Γεωπεριφράξεις | Μάθετε για τις γεωπεριφράξεις, και πώς μπορούν να χρησιμοποιηθούν για ειδοποίηση όταν οχήματα στην αλυσίδα εφοδιασμού πλησιάζουν στον προορισμό τους | [Γεωπεριφράξεις](./3-transport/lessons/4-geofences/README.md) |
| 15 | [Βιομηχανία](./4-manufacturing/README.md) | Εκπαίδευση ανιχνευτή ποιότητας φρούτων | Μάθετε για την εκπαίδευση ενός ταξινομητή εικόνας στο cloud για ανίχνευση ποιότητας φρούτων | [Εκπαίδευση ανιχνευτή ποιότητας φρούτων](./4-manufacturing/lessons/1-train-fruit-detector/README.md) |
| 16 | [Βιομηχανία](./4-manufacturing/README.md) | Έλεγχος ποιότητας φρούτων από συσκευή IoT | Μάθετε για τη χρήση του ανιχνευτή ποιότητας φρούτων από μια συσκευή IoT | [Έλεγχος ποιότητας φρούτων από συσκευή IoT](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) |
| 17 | [Βιομηχανία](./4-manufacturing/README.md) | Εκτέλεση ανιχνευτή φρούτων στην άκρη | Μάθετε για τη λειτουργία του ανιχνευτή σας σε μια συσκευή IoT στο edge | [Εκτέλεση ανιχνευτή φρούτων στην άκρη](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) |
| 18 | [Βιομηχανία](./4-manufacturing/README.md) | Ενεργοποίηση ανίχνευσης ποιότητας φρούτων από αισθητήρα | Μάθετε για την ενεργοποίηση της ανίχνευσης ποιότητας φρούτων από έναν αισθητήρα | [Ενεργοποίηση ανίχνευσης ποιότητας φρούτων από αισθητήρα](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) |
| 19 | [Λιανική](./5-retail/README.md) | Εκπαίδευση ανιχνευτή αποθέματος | Μάθετε πώς να χρησιμοποιήσετε την ανίχνευση αντικειμένων γιανα εκπαιδεύσετε έναν ανιχνευτή αποθέματος ώστε να μετρά το απόθεμα σε ένα κατάστημα | [Εκπαίδευση ανιχνευτή αποθέματος](./5-retail/lessons/1-train-stock-detector/README.md) |
| 20 | [Λιανική](./5-retail/README.md) | Έλεγχος αποθέματος από συσκευή IoT | Μάθετε πώς να ελέγχετε απόθεμα από μια συσκευή IoT χρησιμοποιώντας ένα μοντέλο ανίχνευσης αντικειμένων | [Έλεγχος αποθέματος από συσκευή IoT](./5-retail/lessons/2-check-stock-device/README.md) |
| 21 | [Καταναλωτής](./6-consumer/README.md) | Αναγνώριση ομιλίας με συσκευή IoT | Μάθετε πώς να αναγνωρίζετε ομιλία από μια συσκευή IoT γιανα κατασκευάσετε έναν έξυπνο χρονομετρητή | [Αναγνώριση ομιλίας με συσκευή IoT](./6-consumer/lessons/1-speech-recognition/README.md) |
| 22 | [Καταναλωτής](./6-consumer/README.md) | Κατανόηση γλώσσας | Μάθετε πώς να κατανοείτε προτάσεις που απευθύνονται σε μια συσκευή IoT | [Κατανόηση γλώσσας](./6-consumer/lessons/2-language-understanding/README.md) |
| 23 | [Καταναλωτής](./6-consumer/README.md) | Ρυθμίστε έναν χρονομετρητή και παρέχετε φωνητική ανατροφοδότηση | Μάθετε πώς να ρυθμίζετε έναν χρονομετρητή σε μια συσκευή IoT και να δίνετε φωνητική ανατροφοδότηση για το πότε έχει ρυθμιστεί ο χρονομετρητής και πότε τελειώνει | [Ρυθμίστε έναν χρονομετρητή και δώστε φωνητική ανατροφοδότηση](./6-consumer/lessons/3-spoken-feedback/README.md) |
| 24 | [Καταναλωτής](./6-consumer/README.md) | Υποστήριξη πολλαπλών γλωσσών | Μάθετε πώς να υποστηρίζετε πολλαπλές γλώσσες, τόσο στην ομιλία προς τη συσκευή όσο και στις απαντήσεις από τον έξυπνο χρονομετρητή σας | [Υποστήριξη πολλαπλών γλωσσών](./6-consumer/lessons/4-multiple-language-support/README.md) |
| 23 | [Καταναλωτής](./6-consumer/README.md) | Ρύθμιση χρονομέτρου και παροχή προφορικής ανατροφοδότησης | Μάθετε πώς να ρυθμίζετε ένα χρονόμετρο σε μια συσκευή IoT και να δίνετε προφορική ανατροφοδότηση για το πότε ενεργοποιείται και πότε ολοκληρώνεται ο χρονομετρητής | [Ρύθμιση χρονομέτρου και παροχή προφορικής ανατροφοδότησης](./6-consumer/lessons/3-spoken-feedback/README.md) |
| 24 | [Καταναλωτής](./6-consumer/README.md) | Υποστήριξη πολλαπλών γλωσσών | Μάθετε πώς να υποστηρίζετε πολλές γλώσσες, τόσο στην ομιλία που απευθύνεται όσο και στις απαντήσεις από τον έξυπνο χρονομετρητή | [Υποστήριξη πολλαπλών γλωσσών](./6-consumer/lessons/4-multiple-language-support/README.md) |
## Πρόσβαση εκτός σύνδεσης
## Πρόσβαση χωρίς σύνδεση
Μπορείτε να τρέξετε αυτή την τεκμηρίωση εκτός σύνδεσης χρησιμοποιώντας το [Docsify](https://docsify.js.org/#/). Κάντε fork σε αυτό το αποθετήριο, [εγκαταστήστε το Docsify](https://docsify.js.org/#/quickstart) στον τοπικό υπολογιστή σας, και μετά στον ριζικό φάκελο αυτού του αποθετηρίου, πληκτρολογήστε `docsify serve`. Η ιστοσελίδα θα λειτουργεί στην πόρτα 3000 στον localhost σας: `localhost:3000`.
Μπορείτε να τρέξετε αυτή την τεκμηρίωση χωρίς σύνδεση χρησιμοποιώντας το [Docsify](https://docsify.js.org/#/). Κάντε fork αυτό το αποθετήριο, [εγκαταστήστε το Docsify](https://docsify.js.org/#/quickstart) στον τοπικό σας υπολογιστή, και στη ρίζα του αποθετηρίου πληκτρολογήστε `docsify serve`. Η ιστοσελίδα θα σερβιριστεί στην πόρτα 3000 στο localhost σας: `localhost:3000`.
## Quiz
## Κουίζ
Ευχαριστούμε την κοινότητα για τη φιλοξενία του διαδραστικού κουίζ που ελέγχει τις γνώσεις σας για κάθε κεφάλαιο. Δοκιμάστε τις γνώσεις σας [εδώ](https://ff-quizzes.netlify.app/en/)
Ευχαριστούμε την κοινότητα που φιλοξενεί το διαδραστικό κουίζ το οποίο ελέγχει τις γνώσεις σας σε κάθε ένα από τα κεφάλαια. Εξετάστε τις γνώσεις σας [εδώ](https://ff-quizzes.netlify.app/en/)
### PDF
Μπορείτε να δημιουργήσετε ένα PDF αυτού του περιεχομένου για πρόσβαση εκτός σύνδεσης αν χρειαστείτε. Για να το κάνετε αυτό, βεβαιωθείτε ότι έχετε [εγκατεστημένο το npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) και εκτελέστε τις παρακάτω εντολές στον ριζικό φάκελο αυτού του αποθετηρίου:
Μπορείτε να δημιουργήσετε ένα PDF αυτού του περιεχομένου για πρόσβαση χωρίς σύνδεση αν χρειάζεται. Για να το κάνετε αυτό, βεβαιωθείτε ότι έχετε εγκατεστημένο το [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) και τρέξτε τις ακόλουθες εντολές στη ρίζα αυτού του αποθετηρίου:
```sh
npm i
npm run convert
```
### Διαφάνειες
### Παρουσιάσεις
Υπάρχουν παρουσιάσεις διαφανειών για μερικά από τα μαθήματα στον φάκελο [slides](../../slides).
Υπάρχουν παρουσιάσεις για μερικά από τα μαθήματα στο φάκελο [slides](../../slides).
## Άλλα Προγράμματα Σπουδών
@ -165,19 +175,19 @@ npm run convert
### LangChain
[](https://aka.ms/langchain4j-for-beginners)
[](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / Agents
[](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Σειρά Γεννητικής Τεχνητής Νοημοσύνης
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
### Σειρά Generative AI
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
@ -185,29 +195,29 @@ npm run convert
---
### Βασική Μάθηση
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Σειρά Copilot
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
Μπορείτε να βρείτε όλες τις αναφορές για τις εικόνες που χρησιμοποιούνται σε αυτό το εκπαιδευτικό πρόγραμμα όπου απαιτείται στο [Attributions](./attributions.md).
Μπορείτε να βρείτε όλες τις αποδόσεις για τις εικόνες που χρησιμοποιήθηκαν σε αυτό το πρόγραμμα σπουδών όπου απαιτείται στο [Attributions](./attributions.md).
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Αποποίηση ευθυνών**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που επιδιώκουμε την ακρίβεια, παρακαλούμε να λάβετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θεωρείται η επίσημη πηγή. Για κρίσιμες πληροφορίες συνιστάται η επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ενώ επιδιώκουμε την ακρίβεια, παρακαλούμε λάβετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στην αρχική του γλώσσα θα πρέπει να θεωρείται η επίσημη πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
**[IoT για αρχάριους με Seeed και Microsoft - Raspberry Pi 4 Starter Kit](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)**
[](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)
[](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)


> Sketchnote av [Nitya Narasimhan](https://github.com/nitya). Klicka på bilden för en större version.
@ -203,7 +203,7 @@ Som ett andra "Hello World"-steg kommer du att köra CounterFit-appen och anslut
Appen kommer att börja köras och öppnas i din webbläsare:


Den kommer att markeras som *Disconnected*, med LED-lampan i det övre högra hörnet släckt.
@ -224,7 +224,7 @@ Som ett andra "Hello World"-steg kommer du att köra CounterFit-appen och anslut
1. I denna nya terminal, kör filen `app.py` som tidigare. Statusen för CounterFit kommer att ändras till **Connected** och LED-lampan kommer att tändas.


> 💁 Du kan hitta denna kod i mappen [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device).


> Sketchnote av [Nitya Narasimhan](https://github.com/nitya). Klicka på bilden för en större version.
@ -38,7 +38,7 @@ De två huvudkomponenterna i en IoT-applikation är *Internet* och *saken*. Låt
Dessa enheter interagerar med den fysiska världen, antingen genom att använda sensorer för att samla in data från sin omgivning eller genom att styra utgångar eller aktuatorer för att göra fysiska förändringar. Ett typiskt exempel är en smart termostat - en enhet som har en temperatursensor, ett sätt att ställa in önskad temperatur, som en ratt eller pekskärm, och en anslutning till ett värme- eller kylsystem som kan slås på när den uppmätta temperaturen är utanför det önskade intervallet. Temperatursensorn upptäcker att rummet är för kallt och en aktuator slår på värmen.


Det finns ett enormt utbud av olika saker som kan fungera som IoT-enheter, från dedikerad hårdvara som mäter en enda sak till allmänna enheter, till och med din smartphone! En smartphone kan använda sensorer för att upptäcka världen omkring sig och aktuatorer för att interagera med världen - till exempel genom att använda en GPS-sensor för att upptäcka din plats och en högtalare för att ge dig navigationsinstruktioner till en destination.
@ -54,7 +54,7 @@ Enheter ansluter inte alltid direkt till Internet själva via WiFi eller trådbu
I exemplet med en smart termostat skulle termostaten ansluta via hemmets WiFi till en molntjänst. Den skulle skicka temperaturdata till denna molntjänst, och därifrån skulle den skrivas till en databas av något slag som gör det möjligt för husägaren att kontrollera aktuella och tidigare temperaturer via en telefonapp. En annan tjänst i molnet skulle veta vilken temperatur husägaren vill ha och skicka meddelanden tillbaka till IoT-enheten via molntjänsten för att tala om för värmesystemet att slå på eller av.


En ännu smartare version skulle kunna använda AI i molnet med data från andra sensorer anslutna till andra IoT-enheter, såsom rörelsesensorer som upptäcker vilka rum som används, samt data som väder och till och med din kalender, för att fatta beslut om hur temperaturen ska ställas in på ett smart sätt. Till exempel skulle den kunna stänga av värmen om den läser från din kalender att du är på semester, eller stänga av värmen rum för rum beroende på vilka rum du använder, och lära sig från datan för att bli mer och mer exakt över tid.
@ -94,7 +94,7 @@ Ju snabbare klockcykeln är, desto fler instruktioner kan bearbetas per sekund o
> 💁 CPU:er kör program med hjälp av [fetch-decode-execute-cykeln](https://wikipedia.org/wiki/Instruction_cycle). Vid varje klocktick hämtar CPU:n nästa instruktion från minnet, avkodar den och utför den, till exempel genom att använda en aritmetisk logikenhet (ALU) för att addera två tal. Vissa exekveringar tar flera tick att köra, så nästa cykel körs vid nästa tick efter att instruktionen har slutförts.


Mikrokontroller har mycket lägre klockhastigheter än stationära eller bärbara datorer, eller till och med de flesta smartphones. Wio Terminal har till exempel en CPU som körs på 120 MHz eller 120 000 000 cykler per sekund.
@ -182,7 +182,7 @@ Arduino-kort programmeras i C eller C++. Att använda C/C++ gör att din kod kan
Du skulle skriva din setup-kod i `setup`-funktionen, såsom att ansluta till WiFi och molntjänster eller initiera pinnar för input och output. Din loop-kod skulle sedan innehålla bearbetningskod, såsom att läsa från en sensor och skicka värdet till molnet. Du skulle normalt inkludera en fördröjning i varje loop, till exempel om du bara vill att sensordata ska skickas var tionde sekund skulle du lägga till en fördröjning på 10 sekunder i slutet av loopen så att mikrokontrollern kan sova, spara ström och sedan köra loopen igen när det behövs 10 sekunder senare.


✅ Denna programarkitektur kallas en *event loop* eller *message loop*. Många applikationer använder detta i bakgrunden och det är standard för de flesta desktop-applikationer som körs på OS som Windows, macOS eller Linux. `loop` lyssnar efter meddelanden från användargränssnittskomponenter som knappar, eller enheter som tangentbordet, och svarar på dem. Du kan läsa mer i denna [artikel om event loop](https://wikipedia.org/wiki/Event_loop).
# Interagera med den fysiska världen med sensorer och aktuatorer


> Sketchnote av [Nitya Narasimhan](https://github.com/nitya). Klicka på bilden för en större version.
@ -92,7 +92,7 @@ Digitala sensorer, precis som analoga sensorer, upptäcker världen omkring dem
Den enklaste digitala sensorn är en knapp eller brytare. Detta är en sensor med två tillstånd, på eller av.


Pinnar på IoT-enheter, såsom GPIO-pinnar, kan mäta denna signal direkt som en 0 eller 1. Om spänningen som skickas är densamma som spänningen som returneras, läses värdet som 1, annars läses värdet som 0. Det finns inget behov av att konvertera signalen, den kan bara vara 1 eller 0.
@ -125,7 +125,7 @@ Några vanliga aktuatorer inkluderar:
Följ den relevanta guiden nedan för att lägga till en aktuator till din IoT-enhet, styrd av sensorn, för att bygga en IoT-nattlampa. Den kommer att samla ljusnivåer från ljussensorn och använda en aktuator i form av en LED för att avge ljus när den upptäckta ljusnivån är för låg.


@ -140,7 +140,7 @@ Precis som sensorer är aktuatorer antingen analoga eller digitala.
Analoga aktuatorer tar en analog signal och omvandlar den till någon form av interaktion, där interaktionen ändras baserat på den tillförda spänningen.
Ett exempel är en dimbar lampa, såsom de du kanske har i ditt hem. Mängden spänning som tillförs lampan avgör hur starkt den lyser.


Precis som med sensorer arbetar den faktiska IoT-enheten med digitala signaler, inte analoga. Detta innebär att för att skicka en analog signal behöver IoT-enheten en digital-till-analog-omvandlare (DAC), antingen direkt på IoT-enheten eller på en anslutningskort. Denna omvandlare konverterar 0:or och 1:or från IoT-enheten till en analog spänning som aktuatorn kan använda.
@ -187,7 +187,7 @@ Digitala aktuatorer, precis som digitala sensorer, har antingen två tillstånd
En enkel digital aktuator är en LED. När en enhet skickar en digital signal med värdet 1 skickas en hög spänning som tänder LED-lampan. När en digital signal med värdet 0 skickas sjunker spänningen till 0V och LED-lampan släcks.


✅ Vilka andra enkla tvåtillståndsaktuatorer kan du komma på? Ett exempel är en solenoid, som är en elektromagnet som kan aktiveras för att göra saker som att flytta en dörrregel för att låsa/öppna en dörr.
@ -26,7 +26,7 @@ Grove LED kommer som en modul med ett urval av LED-lampor, vilket gör att du ka
Anslut LED-lampan.


1. Välj din favorit-LED och sätt in benen i de två hålen på LED-modulen.
@ -40,7 +40,7 @@ Anslut LED-lampan.
1. Med Raspberry Pi avstängd, anslut den andra änden av Grove-kabeln till den digitala sockeln märkt **D5** på Grove Base-hatten som är ansluten till Pi. Denna sockel är den andra från vänster, på raden av socklar bredvid GPIO-pinnarna.


1. Sätt in ena änden av en Grove-kabel i uttaget på ljussensormodulen. Den går bara in på ett sätt.
1. Med Raspberry Pi avstängd, anslut den andra änden av Grove-kabeln till det analoga uttaget märkt **A0** på Grove Base-hatten som är ansluten till Pi. Detta uttag är det andra från höger, på raden av uttag bredvid GPIO-stiften.


@ -28,11 +28,11 @@ Lägg till ljussensorn i CounterFit-appen.
1. Välj knappen **Add** för att skapa ljussensorn på Pin 0.


Ljussensorn kommer att skapas och visas i sensorlistan.


> Sketchnote av [Nitya Narasimhan](https://github.com/nitya). Klicka på bilden för en större version.
@ -47,7 +47,7 @@ MQTT är det mest populära kommunikationsprotokollet för IoT-enheter och behan
MQTT har en enda broker och flera klienter. Alla klienter ansluter till brokern, och brokern dirigerar meddelanden till relevanta klienter. Meddelanden dirigeras med hjälp av namngivna ämnen, snarare än att skickas direkt till en individuell klient. En klient kan publicera till ett ämne, och alla klienter som prenumererar på det ämnet kommer att ta emot meddelandet.


✅ Gör lite research. Om du har många IoT-enheter, hur kan du säkerställa att din MQTT-broker kan hantera alla meddelanden?
@ -69,7 +69,7 @@ Istället för att hantera komplexiteten med att ställa in en MQTT-broker som e
> 💁 Denna testbroker är offentlig och inte säker. Vem som helst kan lyssna på vad du publicerar, så den bör inte användas med data som behöver hållas privat.


Följ relevant steg nedan för att ansluta din enhet till MQTT-brokern:
@ -350,7 +350,7 @@ För maskiner kanske du vill behålla data, särskilt om den används för att l
IoT-enhetsdesigners bör också överväga om IoT-enheten kan användas under ett internetavbrott eller förlust av signal på grund av plats. En smart termostat bör kunna fatta vissa begränsade beslut för att styra värmen om den inte kan skicka telemetri till molnet på grund av ett avbrott.
[](https://twitter.com/internetofshit/status/1315736960082808832)
[](https://twitter.com/internetofshit/status/1315736960082808832)
För att MQTT ska hantera en förlust av anslutning måste enhetens och serverns kod vara ansvariga för att säkerställa meddelandeleverans om det behövs, till exempel genom att kräva att alla skickade meddelanden besvaras med ytterligare meddelanden på ett svarstema, och om inte, köas de manuellt för att spelas upp senare.
@ -358,7 +358,7 @@ För att MQTT ska hantera en förlust av anslutning måste enhetens och serverns
Kommandon är meddelanden som skickas från molnet till en enhet och instruerar den att göra något. Oftast innebär detta att ge någon form av output via en aktor, men det kan vara en instruktion för själva enheten, som att starta om eller samla in extra telemetri och returnera den som ett svar på kommandot.


En termostat kan ta emot ett kommando från molnet för att slå på värmen. Baserat på telemetridata från alla sensorer har molntjänsten beslutat att värmen ska vara på, så den skickar det relevanta kommandot.


> Sketchnote av [Nitya Narasimhan](https://github.com/nitya). Klicka på bilden för en större version.
@ -90,7 +90,7 @@ Växande grad-dagar, eller GDD, beräknas per dag som den genomsnittliga tempera
Den fullständiga formeln för GDD är lite komplicerad, men det finns en förenklad ekvation som ofta används som en bra approximation:


* **GDD** - detta är antalet växande grad-dagar
* **T max** - detta är den dagliga maxtemperaturen i grader Celsius
@ -118,7 +118,7 @@ Om vi sätter in dessa siffror i vår beräkning:
Detta ger en beräkning av:


Majsen fick 4 GDD den dagen. Om vi antar en majsort som behöver 800 GDD för att mogna, kommer den att behöva ytterligare 796 GDD för att nå mognad.
@ -239,7 +239,7 @@ Stegen för att göra detta manuellt är:
Till exempel, om dagens högsta temperatur är 25°C och den lägsta är 12°C:


@ -33,7 +33,7 @@ När du har temperaturdata kan du använda Jupyter Notebook i detta repo för at
Jupyter kommer att starta och öppna notebooken i din webbläsare. Följ instruktionerna i notebooken för att visualisera de uppmätta temperaturerna och beräkna växtens tillväxtgrader (GDD).
@ -38,11 +38,11 @@ Lägg till fuktighets- och temperatursensorerna i CounterFit-appen.
1. Välj knappen **Add** för att skapa fuktighetssensorn på Pin 5.


Fuktighetssensorn kommer att skapas och visas i sensorlistan.
@ -54,11 +54,11 @@ Lägg till fuktighets- och temperatursensorerna i CounterFit-appen.
1. Välj knappen **Add** för att skapa temperatursensorn på Pin 6.


Temperatursensorn kommer att skapas och visas i sensorlistan.
@ -13,7 +13,7 @@ I²C har en buss som består av två huvudkablar, tillsammans med två strömkab
| VCC | Voltage common collector | Strömförsörjningen för enheterna. Den är ansluten till SDA- och SCL-kablarna för att ge deras ström via ett pull-up-motstånd som stänger av signalen när ingen enhet är styrenhet. |
| GND | Ground | Ger en gemensam jord för den elektriska kretsen. |


För att skicka data kommer en enhet att utfärda ett startvillkor för att visa att den är redo att skicka data. Den blir då styrenheten. Styrenheten skickar sedan adressen till den enhet den vill kommunicera med, tillsammans med information om den vill läsa eller skriva data. Efter att data har överförts skickar styrenheten ett stoppvillkor för att indikera att den är klar. Därefter kan en annan enhet bli styrenhet och skicka eller ta emot data.
@ -20,14 +20,14 @@ Du kommer behöva upprepa dessa steg flera gånger för att få de nödvändiga
Den gravimetriska jordfuktigheten beräknas som:


* W - vikten av den våta jorden
* W - vikten av den torra jorden
Till exempel, säg att du har ett jordprov som väger 212g vått och 197g torrt.
@ -18,13 +18,13 @@ Grove jordfuktighetssensor kan anslutas till Raspberry Pi.
Anslut jordfuktighetssensorn.


1. Sätt in ena änden av en Grove-kabel i kontakten på jordfuktighetssensorn. Den går bara att sätta in på ett sätt.
1. Med Raspberry Pi avstängd, anslut den andra änden av Grove-kabeln till den analoga kontakten märkt **A0** på Grove Base Hat som är ansluten till Pi. Denna kontakt är den andra från höger, på raden av kontakter bredvid GPIO-pinnarna.


1. Sätt in jordfuktighetssensorn i jorden. Den har en "högsta positionslinje" - en vit linje tvärs över sensorn. Sätt in sensorn upp till, men inte förbi, denna linje.
@ -34,11 +34,11 @@ Lägg till jordfuktighetssensorn i CounterFit-appen.
1. Välj knappen **Add** för att skapa *Soil Moisture*-sensorn på Pin 0.


Jordfuktighetssensorn kommer att skapas och visas i sensorlistan.
@ -18,7 +18,7 @@ Grove jordfuktighetssensorn kan anslutas till Wio Terminals konfigurerbara analo
Anslut jordfuktighetssensorn.


1. Sätt ena änden av en Grove-kabel i uttaget på jordfuktighetssensorn. Den går bara att sätta i på ett sätt.


> Sketchnote av [Nitya Narasimhan](https://github.com/nitya). Klicka på bilden för en större version.
@ -32,7 +32,7 @@ IoT-enheter använder låg spänning. Även om detta räcker för sensorer och l
Lösningen på detta är att ha en pump ansluten till en extern strömkälla och använda en aktuator för att slå på pumpen, ungefär som du skulle slå på en lampa. Det krävs en liten mängd energi (i form av energi i din kropp) för att ditt finger ska trycka på en strömbrytare, och detta ansluter lampan till nätström som körs på 110v/240v.


> 🎓 [Nätström](https://wikipedia.org/wiki/Mains_electricity) avser elektricitet som levereras till hem och företag via nationell infrastruktur i många delar av världen.
@ -72,7 +72,7 @@ När spaken rör sig kan du vanligtvis höra den göra kontakt med elektromagnet
Elektromagneten behöver inte mycket ström för att aktiveras och dra spaken, den kan styras med 3,3V eller 5V från en IoT-utvecklingssats. Utgångskretsen kan bära mycket mer ström, beroende på reläet, inklusive nätspänning eller ännu högre strömnivåer för industriellt bruk. På detta sätt kan en IoT-utvecklingssats styra ett bevattningssystem, från en liten pump för en enskild växt, till ett massivt industriellt system för en hel kommersiell gård.


Bilden ovan visar ett Grove-relä. Styrkretsen ansluts till en IoT-enhet och slår på eller av reläet med 3,3V eller 5V. Utgångskretsen har två terminaler, var och en kan vara ström eller jord. Utgångskretsen kan hantera upp till 250V vid 10A, tillräckligt för en rad nätanslutna enheter. Du kan få reläer som kan hantera ännu högre strömnivåer.
1. Sätt ena änden av en Grove-kabel i uttaget på reläet. Den går bara in på ett sätt.
1. Med Raspberry Pi avstängd, anslut den andra änden av Grove-kabeln till det digitala uttaget märkt **D5** på Grove Base Hat som är ansluten till Pi. Detta uttag är det andra från vänster, på raden av uttag bredvid GPIO-pinnarna. Låt fuktighetssensorn för jord vara ansluten till uttaget **A0**.


1. Sätt fuktighetssensorn för jord i jorden, om den inte redan är där från föregående lektion.


> Sketchnote av [Nitya Narasimhan](https://github.com/nitya). Klicka på bilden för en större version.
@ -46,8 +46,8 @@ Detta kunde vara mycket dyrt, kräva en bred kompetens hos anställda och vara m
Molnet kallas ofta skämtsamt för "någon annans dator". Den ursprungliga idén var enkel - istället för att köpa datorer, hyr du någon annans dator. Någon annan, en molnleverantör, skulle hantera enorma datacenter. De skulle ansvara för att köpa och installera hårdvaran, hantera ström och kylning, nätverk, byggnadssäkerhet, hårdvaru- och mjukvaruuppdateringar, allt. Som kund hyr du de datorer du behöver, hyr fler när efterfrågan ökar och minskar antalet du hyr när efterfrågan sjunker. Dessa molndatacenter finns över hela världen.


Dessa datacenter kan vara flera kvadratkilometer stora. Bilderna ovan togs för några år sedan vid ett Microsoft-molndatacenter och visar den ursprungliga storleken, tillsammans med en planerad expansion. Det område som röjts för expansionen är över 5 kvadratkilometer.
@ -108,11 +108,11 @@ IoT-tjänster i molnet löser dessa problem. De underhålls av stora molnleveran
IoT-enheter ansluter till en molntjänst antingen med hjälp av ett enhets-SDK (ett bibliotek som tillhandahåller kod för att arbeta med tjänstens funktioner) eller direkt via ett kommunikationsprotokoll som MQTT eller HTTP. Enhets-SDK är vanligtvis den enklaste vägen att ta eftersom det hanterar allt åt dig, såsom att veta vilka ämnen som ska publiceras eller prenumereras på och hur man hanterar säkerhet.


Din enhet kommunicerar sedan med andra delar av din applikation via denna tjänst - liknande hur du skickade telemetri och tog emot kommandon via MQTT. Detta görs vanligtvis med hjälp av ett tjänst-SDK eller ett liknande bibliotek. Meddelanden kommer från din enhet till tjänsten där andra komponenter i din applikation kan läsa dem, och meddelanden kan sedan skickas tillbaka till din enhet.


Dessa tjänster implementerar säkerhet genom att känna till alla enheter som kan ansluta och skicka data, antingen genom att ha enheterna förregistrerade med tjänsten eller genom att ge enheterna hemliga nycklar eller certifikat som de kan använda för att registrera sig själva med tjänsten första gången de ansluter. Okända enheter kan inte ansluta; om de försöker avvisar tjänsten anslutningen och ignorerar meddelanden som skickas av dem.
@ -124,7 +124,7 @@ Andra komponenter i din applikation kan ansluta till IoT-tjänsten och få infor
Nu när du har en Azure-prenumeration kan du registrera dig för en IoT-tjänst. IoT-tjänsten från Microsoft kallas Azure IoT Hub.


> Sketchnote av [Nitya Narasimhan](https://github.com/nitya). Klicka på bilden för en större version.
@ -28,7 +28,7 @@ I denna lektion kommer vi att täcka:
Serverlöst, eller serverlös databehandling, innebär att skapa små kodblock som körs i molnet som svar på olika typer av händelser. När händelsen inträffar körs din kod och får data om händelsen. Dessa händelser kan komma från många olika saker, inklusive webbförfrågningar, meddelanden som läggs i en kö, ändringar av data i en databas eller meddelanden som skickas till en IoT-tjänst av IoT-enheter.


> 💁 Om du har använt databasutlösare tidigare kan du tänka på detta som samma sak, kod som triggas av en händelse som att infoga en rad.
@ -54,7 +54,7 @@ Som IoT-utvecklare är den serverlösa modellen idealisk. Du kan skriva en funkt
Den serverlösa databehandlingstjänsten från Microsoft kallas Azure Functions.


> Sketchnote av [Nitya Narasimhan](https://github.com/nitya). Klicka på bilden för en större version.
@ -52,11 +52,11 @@ Dessa är verkliga scenarier och händer hela tiden. Några exempel gavs i tidig
När en enhet ansluter till en IoT-tjänst använder den en ID för att identifiera sig. Problemet är att detta ID kan klonas – en hackare kan sätta upp en skadlig enhet som använder samma ID som en riktig enhet men skickar falska data.


Lösningen på detta är att konvertera den data som skickas till ett krypterat format, med hjälp av ett värde som endast är känt av enheten och molnet. Denna process kallas *kryptering*, och värdet som används för att kryptera data kallas en *krypteringsnyckel*.


Molntjänsten kan sedan konvertera data tillbaka till ett läsbart format, med en process som kallas *dekryptering*, med antingen samma krypteringsnyckel eller en *dekrypteringsnyckel*. Om det krypterade meddelandet inte kan dekrypteras med nyckeln har enheten blivit hackad och meddelandet avvisas.


> Sketchnote av [Nitya Narasimhan](https://github.com/nitya). Klicka på bilden för en större version.
@ -63,13 +63,13 @@ Jorden är en sfär – en tredimensionell cirkel. På grund av detta definieras
> 💁 Ingen vet riktigt varför cirklar delas in i 360 grader. [Wikipedia-sidan om grader (vinkel)](https://wikipedia.org/wiki/Degree_(angle)) täcker några av de möjliga anledningarna.


Latitud mäts med linjer som cirklar jorden och löper parallellt med ekvatorn, vilket delar norra och södra halvkloten i 90° vardera. Ekvatorn är vid 0°, Nordpolen är vid 90°, även känd som 90° nordlig, och Sydpolen är vid -90°, eller 90° sydlig.
Longitud mäts som antalet grader öster och väster. 0°-ursprunget för longitud kallas *nollmeridianen* och definierades 1884 som en linje från Nordpolen till Sydpolen som går genom [British Royal Observatory i Greenwich, England](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich).


> 🎓 En meridian är en tänkt rak linje som går från Nordpolen till Sydpolen och bildar en halvcirkel.
@ -100,7 +100,7 @@ Koordinater för en punkt anges alltid som `latitud, longitud`, så exemplet tid
* En latitud på 47.6423109 (47.6423109 grader norr om ekvatorn)
* En longitud på -122.1390293 (122.1390293 grader väster om nollmeridianen).


## Global Positioning Systems (GPS)
@ -112,7 +112,7 @@ GPS-system fungerar genom att ha ett antal satelliter som skickar en signal med
> 💁 GPS-sensorer behöver antenner för att upptäcka radiovågor. Antennerna som är inbyggda i lastbilar och bilar med inbyggd GPS är placerade för att få en bra signal, vanligtvis på vindrutan eller taket. Om du använder ett separat GPS-system, som en smartphone eller en IoT-enhet, måste du se till att antennen som är inbyggd i GPS-systemet eller telefonen har fri sikt mot himlen, till exempel genom att monteras på vindrutan.


GPS-satelliter kretsar runt jorden och är inte på en fast punkt ovanför sensorn, så platsdata inkluderar höjd över havet samt latitud och longitud.
@ -18,13 +18,13 @@ Grove GPS-sensorn kan anslutas till Raspberry Pi.
Anslut GPS-sensorn.


1. Sätt i ena änden av en Grove-kabel i uttaget på GPS-sensorn. Den går bara att sätta i på ett sätt.
1. Med Raspberry Pi avstängd, anslut den andra änden av Grove-kabeln till UART-uttaget märkt **UART** på Grove Base-hatten som är ansluten till Pi. Detta uttag finns på den mellersta raden, på sidan närmast SD-kortplatsen, motsatt sida från USB-portarna och ethernet-uttaget.


1. Placera GPS-sensorn så att den anslutna antennen har fri sikt mot himlen - helst nära ett öppet fönster eller utomhus. Det är lättare att få en tydligare signal utan hinder för antennen.
@ -38,11 +38,11 @@ Lägg till GPS-sensorn i CounterFit-appen.
1. Välj knappen **Add** för att skapa GPS-sensorn på porten `/dev/ttyAMA0`.


GPS-sensorn kommer att skapas och visas i sensorlistan.
* Ställ in **Source** till `Lat/Lon` och ange en specifik latitud, longitud och antal satelliter som används för att få GPS-fix. Detta värde skickas endast en gång, så markera rutan **Repeat** för att få data att upprepas varje sekund.


* Ställ in **Source** till `NMEA` och lägg till några NMEA-meningar i textrutan. Alla dessa värden kommer att skickas, med en fördröjning på 1 sekund innan varje ny GGA (positionsfixerings-)mening kan läsas.


Du kan använda ett verktyg som [nmeagen.org](https://www.nmeagen.org) för att generera dessa meningar genom att rita på en karta. Dessa värden skickas endast en gång, så markera rutan **Repeat** för att få data att upprepas en sekund efter att allt har skickats.
* Ställ in **Source** till GPX-fil och ladda upp en GPX-fil med spårplatser. Du kan ladda ner GPX-filer från ett antal populära kart- och vandringssajter, som [AllTrails](https://www.alltrails.com/). Dessa filer innehåller flera GPS-platser som en rutt, och GPS-sensorn kommer att returnera varje ny plats med 1 sekunds intervall.


Dessa värden skickas endast en gång, så markera rutan **Repeat** för att få data att upprepas en sekund efter att allt har skickats.


> Sketchnote av [Nitya Narasimhan](https://github.com/nitya). Klicka på bilden för en större version.
@ -75,7 +75,7 @@ NoSQL-databaser kallas NoSQL eftersom de inte har samma rigida struktur som SQL-
> 💁 Trots sitt namn tillåter vissa NoSQL-databaser att du använder SQL för att söka i data.


NoSQL-databaser har inte ett fördefinierat schema som begränsar hur data lagras. Istället kan du lägga till vilken ostrukturerad data som helst, vanligtvis med JSON-dokument. Dessa dokument kan organiseras i mappar, liknande filer på din dator. Varje dokument kan ha olika fält jämfört med andra dokument - till exempel om du lagrade IoT-data från dina jordbruksfordon, kan vissa ha fält för accelerometer- och hastighetsdata, medan andra kan ha fält för temperaturen i släpet. Om du skulle lägga till en ny lastbilstyp, som en med inbyggda vågar för att spåra vikten av transporterat gods, kan din IoT-enhet lägga till detta nya fält och det kan lagras utan några ändringar i databasen.
@ -89,7 +89,7 @@ I denna lektion kommer du att använda NoSQL-lagring för att lagra IoT-data.
I den senaste lektionen fångade du GPS-data från en GPS-sensor ansluten till din IoT-enhet. För att lagra dessa IoT-data i molnet behöver du skicka dem till en IoT-tjänst. Återigen kommer du att använda Azure IoT Hub, samma IoT-molntjänst som du använde i det tidigare projektet.


### Uppgift - skicka GPS-data till en IoT Hub
@ -171,7 +171,7 @@ Kall väg-data lagras i datalager - databaser designade för att lagra stora mä
När data flödar in i din IoT Hub kan du skriva serverlös kod för att lyssna på händelser som publiceras till den Event-Hub-kompatibla slutpunkten. Detta är den varma vägen - dessa data kommer att lagras och användas i nästa lektion för att rapportera om resan.


### Uppgift - hantera GPS-händelser med serverlös kod
@ -193,7 +193,7 @@ När data flödar in i din IoT Hub kan du skriva serverlös kod för att lyssna
Azure Storage-konton är en allmän lagringstjänst som kan lagra data på olika sätt. Du kan lagra data som blobbar, i köer, i tabeller eller som filer, och allt detta samtidigt.


> Sketchnote av [Nitya Narasimhan](https://github.com/nitya). Klicka på bilden för en större version.
@ -64,11 +64,11 @@ Ta ett enkelt exempel – i gårdsprojektet samlade du in data om jordfuktighet.
Som människa kan det vara svårt att förstå denna data. Det är en vägg av siffror utan någon tydlig mening. Som ett första steg för att visualisera denna data kan den plottas i ett linjediagram:


Detta kan förbättras ytterligare genom att lägga till en linje som visar när det automatiska bevattningssystemet aktiverades vid en jordfuktighetsavläsning på 450:


Detta diagram visar snabbt inte bara vad jordfuktighetsnivåerna var, utan också de punkter där bevattningssystemet aktiverades.
@ -84,7 +84,7 @@ När du arbetar med GPS-data kan den tydligaste visualiseringen vara att plotta
Att arbeta med kartor är en intressant övning, och det finns många att välja mellan, såsom Bing Maps, Leaflet, Open Street Maps och Google Maps. I denna lektion kommer du att lära dig om [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) och hur de kan visa din GPS-data.
Azure Maps är "en samling geospatiala tjänster och SDK:er som använder färska kartdata för att ge geografisk kontext till webb- och mobilapplikationer." Utvecklare får verktyg för att skapa vackra, interaktiva kartor som kan göra saker som att ge rekommenderade trafikvägar, ge information om trafikincidenter, inomhusnavigering, sökfunktioner, höjdinformation, vädertjänster och mer.
@ -185,7 +185,7 @@ Nu kan du ta nästa steg, vilket är att visa din karta på en webbsida. Vi komm
Om du öppnar din `index.html`-sida i en webbläsare bör du se en karta laddad och fokuserad på Seattle-området.


✅ Experimentera med zoom- och centerparametrarna för att ändra kartans visning. Du kan lägga till olika koordinater som motsvarar din datas latitud och longitud för att centrera om kartan.
@ -319,7 +319,7 @@ Om du gör ett anrop till din lagring för att hämta data kan du bli förvånad
1. Ladda HTML-sidan i din webbläsare. Den kommer att ladda kartan, sedan ladda all GPS-data från lagringen och plotta den på kartan.


> 💁 Du kan hitta denna kod i [code](../../../../../3-transport/lessons/3-visualize-location-data/code)-mappen.


> Sketchnote av [Nitya Narasimhan](https://github.com/nitya). Klicka på bilden för en större version.
@ -35,7 +35,7 @@ I denna lektion kommer vi att behandla:
En geofence är en virtuell avgränsning för ett verkligt geografiskt område. Geofences kan vara cirklar definierade som en punkt och en radie (till exempel en cirkel med en diameter på 100 m runt en byggnad), eller en polygon som täcker ett område som en skolzon, stadsgräns eller universitets- eller kontorscampus.


> 💁 Du kanske redan har använt geofences utan att veta om det. Om du har ställt in en påminnelse med hjälp av iOS-påminnelseappen eller Google Keep baserat på en plats, har du använt en geofence. Dessa appar ställer in en geofence baserat på den angivna platsen och varnar dig när din telefon går in i geofencen.
@ -212,7 +212,7 @@ Det är viktigt att känna till avståndet till kanten av geofencen och kombiner
Till exempel, föreställ dig GPS-avläsningar som visar att ett fordon kör längs en väg som går bredvid en geofence. Om en enskild GPS-avläsning är felaktig och placerar fordonet innanför geofencen, trots att det inte finns någon fordonsåtkomst, kan detta ignoreras.


I bilden ovan finns en geofence över en del av Microsofts campus. Den röda linjen visar en lastbil som kör längs 520, med cirklar som representerar GPS-avläsningar. De flesta av dessa är korrekta och ligger längs 520, men en avläsning är felaktig och befinner sig inom geofencen. Det är omöjligt att den avläsningen är korrekt – det finns inga vägar som gör det möjligt för lastbilen att plötsligt svänga av från 520 in på campus och sedan tillbaka till 520. Koden som kontrollerar denna geofence måste ta hänsyn till tidigare avläsningar innan den agerar på resultaten från geofence-testet.
✅ Vilka ytterligare data skulle du behöva för att kontrollera om en GPS-avläsning kan anses vara korrekt?
@ -284,7 +284,7 @@ Som du kanske minns från tidigare lektioner, tillåter IoT Hub dig att spela up
Svaret är att den inte kan! Istället kan du definiera flera separata anslutningar för att läsa av händelser, och varje anslutning kan hantera uppspelningen av olästa meddelanden. Dessa kallas *konsumentgrupper*. När du ansluter till slutpunkten kan du specificera vilken konsumentgrupp du vill ansluta till. Varje komponent i din applikation kommer att ansluta till en annan konsumentgrupp.


I teorin kan upp till 5 applikationer ansluta till varje konsumentgrupp, och de kommer alla att ta emot meddelanden när de anländer. Det är bäst att endast ha en applikation som får åtkomst till varje konsumentgrupp för att undvika duplicerad meddelandebearbetning och säkerställa att alla köade meddelanden bearbetas korrekt vid omstart. Till exempel, om du startade din Functions-app lokalt samtidigt som den körs i molnet, skulle båda bearbeta meddelanden, vilket leder till duplicerade blobbar som lagras i lagringskontot.


> Sketchnote av [Nitya Narasimhan](https://github.com/nitya). Klicka på bilden för en större version.
@ -38,7 +38,7 @@ Alla grödor mognar inte jämnt. Tomater, till exempel, kan fortfarande ha någr
Den ökade automatiseringen av skörd flyttade sorteringen av produkter från skörden till fabriken. Mat skulle färdas på långa transportband med team av människor som plockade bort produkter som inte uppfyllde kvalitetskraven. Skörden blev billigare tack vare maskiner, men det fanns fortfarande en kostnad för att manuellt sortera mat.


Nästa utveckling var att använda maskiner för att sortera, antingen inbyggda i skördemaskinen eller i bearbetningsanläggningarna. Den första generationen av dessa maskiner använde optiska sensorer för att upptäcka färger, och styrde aktuatorer för att skjuta gröna tomater i en avfallsbehållare med hjälp av spakar eller lufttryck, medan röda tomater fortsatte på ett nätverk av transportband.
@ -62,7 +62,7 @@ Till exempel kan du ge en modell miljontals bilder av omogna bananer som indata
> 🎓 Resultaten från ML-modeller kallas *förutsägelser*


ML-modeller ger inte ett binärt svar, istället ger de sannolikheter. Till exempel kan en modell ges en bild av en banan och förutsäga `mogen` med 99,7% och `omogen` med 0,3%. Din kod skulle sedan välja den bästa förutsägelsen och avgöra att bananen är mogen.
@ -90,7 +90,7 @@ Det finns en mängd olika verktyg som kan hjälpa dig att göra detta, inklusive
Custom Vision är ett molnbaserat verktyg för att träna bildklassificerare. Det gör det möjligt att träna en klassificerare med endast ett litet antal bilder. Du kan ladda upp bilder via en webbportal, web-API eller ett SDK, och ge varje bild en *tagg* som har klassificeringen av den bilden. Du tränar sedan modellen och testar den för att se hur bra den fungerar. När du är nöjd med modellen kan du publicera versioner av den som kan nås via ett web-API eller ett SDK.
> 💁 Du kan träna en Custom Vision-modell med så lite som 5 bilder per klassificering, men fler är bättre. Du kan få bättre resultat med minst 30 bilder.
@ -146,7 +146,7 @@ För att använda Custom Vision måste du först skapa två Cognitive Services-r
När du skapar ditt projekt, se till att använda resursen `fruit-quality-detector-training` som du skapade tidigare. Använd en *Classification*-projekttyp, en *Multiclass*-klassificeringstyp och domänen *Food*.


✅ Ta dig tid att utforska Custom Vision-användargränssnittet för din bildklassificerare.
@ -164,7 +164,7 @@ Bildklassificerare körs med mycket låg upplösning. Till exempel kan Custom Vi
* Använd 2 mogna bananer, ta några bilder av varje från olika vinklar, ta minst 7 bilder (5 för träning, 2 för testning), men helst fler.


* Upprepa samma process med 2 omogna bananer.
@ -174,7 +174,7 @@ Bildklassificerare körs med mycket låg upplösning. Till exempel kan Custom Vi
1. Följ [avsnittet om att ladda upp och tagga bilder i snabbstarten för att bygga en klassificerare på Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) för att ladda upp dina träningsbilder. Tagga den mogna frukten som `ripe` och den omogna frukten som `unripe`.


1. Följ [avsnittet om att träna klassificeraren i snabbstarten för att bygga en klassificerare på Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) för att träna bildklassificeraren på dina uppladdade bilder.
@ -192,7 +192,7 @@ När din klassificerare är tränad kan du testa den genom att ge den en ny bild
1. Följ [dokumentationen om att testa din modell på Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) för att testa din bildklassificerare. Använd testbilderna du skapade tidigare, inte några av bilderna du använde för träning.


1. Testa alla testbilder du har tillgång till och observera sannolikheterna.


> Sketchnote av [Nitya Narasimhan](https://github.com/nitya). Klicka på bilden för en större version.
@ -26,7 +26,7 @@ I denna lektion kommer vi att täcka:
Kamerasensorer, som namnet antyder, är kameror som du kan ansluta till din IoT-enhet. De kan ta stillbilder eller spela in strömmande video. Vissa returnerar rå bilddata, medan andra komprimerar bilddata till en bildfil som JPEG eller PNG. Vanligtvis är kamerorna som fungerar med IoT-enheter mycket mindre och har lägre upplösning än vad du kanske är van vid, men det finns högupplösta kameror som kan mäta sig med toppmoderna mobiltelefoner. Du kan få alla möjliga utbytbara linser, flera kamerauppsättningar, infraröda termiska kameror eller UV-kameror.


De flesta kamerasensorer använder bildsensorer där varje pixel är en fotodiod. En lins fokuserar bilden på bildsensorn, och tusentals eller miljoner fotodioder registrerar ljuset som faller på var och en och sparar det som pixeldata.
@ -74,7 +74,7 @@ Iterationer publiceras från Custom Vision-portalen.
1. I dialogrutan *Publicera modell*, ställ in *Förutsägelse-resurs* till resursen `fruit-quality-detector-prediction` som du skapade i den senaste lektionen. Lämna namnet som `Iteration2` och välj knappen **Publicera**.
@ -88,7 +88,7 @@ Iterationer publiceras från Custom Vision-portalen.
Ta också en kopia av värdet *Förutsägelse-nyckel*. Detta är en säker nyckel som du måste skicka när du anropar modellen. Endast applikationer som skickar denna nyckel får använda modellen, alla andra applikationer avvisas.


✅ När en ny iteration publiceras kommer den att ha ett annat namn. Hur tror du att du skulle ändra iterationen som en IoT-enhet använder?
@ -109,7 +109,7 @@ Du kanske märker att resultaten du får när du använder kameran ansluten till
För att få bästa resultat för en bildklassificerare vill du träna modellen med bilder som är så lika de bilder som används för förutsägelser som möjligt. Om du till exempel använde din telefonkamera för att ta bilder för träning, kommer bildkvaliteten, skärpan och färgen att skilja sig från en kamera ansluten till en IoT-enhet.


I bilden ovan togs bananbilden till vänster med en Raspberry Pi-kamera, medan den till höger togs av samma banan på samma plats med en iPhone. Det är en märkbar skillnad i kvalitet - iPhone-bilden är skarpare, med ljusare färger och mer kontrast.
Some files were not shown because too many files have changed in this diff
Show More