Διπλωματική Εργασία ΟΙΚΙΑΚΟΣ ΑΥΤΟΜΑΤΙΣΜΟΣ ΜΕ ΧΡΗΣΗ ΜΙΚΡΟΕΛΕΓΚΤΗ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Διπλωματική Εργασία ΟΙΚΙΑΚΟΣ ΑΥΤΟΜΑΤΙΣΜΟΣ ΜΕ ΧΡΗΣΗ ΜΙΚΡΟΕΛΕΓΚΤΗ"

Transcript

1 Πανεπιστήμιο Αιγαίου Σχολή Θετικών Επιστημών Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Διπλωματική Εργασία Επιβλέπων : Καλλίγερος Μανόλης Επίκουρος Καθηγητής ΟΙΚΙΑΚΟΣ ΑΥΤΟΜΑΤΙΣΜΟΣ ΜΕ ΧΡΗΣΗ ΜΙΚΡΟΕΛΕΓΚΤΗ Μαρτίνης Στέλιος Α.Μ: 323Μ/ Σάμος, Φεβρουάριος, 2013

2

3 Περίληψη Ζούμε στην εποχή του «έξυπνου» (smart-) έξυπνα κινητά τηλέφωνα, έξυπνες τηλεοράσεις, έξυπνες αυτοκίνητα κ.ο.κ. Δεν θα μπορούσε, λοιπόν, να μην έχουμε και έξυπνα σπίτια, σπίτια, δηλαδή, που θα παίρνουν αποφάσεις και θα ενεργούν μόνα τους χωρίς την ανάγκη της παρουσίας του ανθρώπινου παράγοντα. Η υλοποίηση ενός συστήματος οικιακού αυτοματισμού αποτέλεσε αντικείμενο της παρούσας εργασίας. Αναλυτικότερα, το πως θα μπορέσει κάποιος χωρίς προϋπάρχουσα υποδομή, να κάνει το σπίτι του λειτουργικό αποκτώντας τη δυνατότητα να ελέγχει τις οικιακές συσκευές μέσω ενός προσωπικού υπολογιστή με πρόσβαση στο διαδίκτυο ή ενός κινητού τηλεφώνου. Πιο συγκεκριμένα, στο πρώτο κεφάλαιο ορίζεται η έννοια του έξυπνου σπιτιού και στη συνέχεια αναφέρονται διεξοδικά οι τεχνικές δικτύωσης που χρησιμοποιούνται σε αυτό. Στο δεύτερο κεφάλαιο, το οποίο αποτελεί και το βασικό κομμάτι της εργασίας, αναλύεται το σύστημα που υλοποιήθηκε. Εξηγούνται λεπτομερώς και διεξοδικά τα στάδια που ακολουθήθηκαν κατά την υλοποίηση από την αρχή (σύλληψη της ιδέας), έως και το τέλος (τελική κατασκευή). Τέλος, στο τρίτο κεφάλαιο παρατίθενται τα συμπεράσματα της εργασίας, καθώς και οι δυνατότητες μελλοντικής βελτίωσης και επέκτασης της συγκεκριμένης υλοποίησης. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 3

4 Περιεχόμενα ΚΕΦΑΛΑΙΟ 1 Ο ΕΙΣΑΓΩΓΗ ΟΡΙΖΟΝΤΑΣ ΤΟ ΈΞΥΠΝΟ ΣΠΙΤΙ ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΣΗΣ ΣΤΟ ΈΞΥΠΝΟ ΣΠΙΤΙ Χ Bluetooth IEEE ZigBee RFID ΙΔΕΑ- ΣΥΣΤΗΜΑ ΠΡΟΣ ΥΛΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 2 Ο ΥΛΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΘΕΩΡΗΤΙΚΗ ΑΝΑΛΥΣΗ ΑΝΑΠΤΥΞΙΑΚΟ ΜΙΚΡΟΕΛΕΓΚΤΗ Μικροελεγκτές - Γενικά Αναπτυξιακό Arduino Uno AVR ATmega328p Συνδεσμολογία Arduino Uno Προγραμματισμός Arduino Uno ΕΠΙΚΟΙΝΩΝΙΑ UART- TCP Module USR- WIFI232-B Ρυθμίσεις modem/router ΕΦΑΡΜΟΓΕΣ ΣΥΣΚΕΥΩΝ ΤΕΛΙΚΟΥ ΧΡΗΣΤΗ Εφαρμογή για Η/Υ Εφαρμογή για κινητό τηλέφωνο ΚΕΦΑΛΑΙΟ 3 Ο ΣΥΜΠΕΡΑΣΜΑΤΑ ΠΑΡΑΡΤΗΜΑΤΑ ΓΛΩΣΣΑ ARDUINO ΕΚΤΥΠΩΣΙΜΟΙ ΧΑΡΑΚΤΗΡΕΣ ASCII ΠΙΝΑΚΕΣ NTC 10Κ ΚΩΔΙΚΑΣ ΓΙΑ ΣΥΣΚΕΥΕΣ ANDROID ΒΙΒΛΙΟΓΡΑΦΙΑ ΑΝΑΦΟΡΕΣ Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 4

5 Κεφάλαιο 1 ο Εισαγωγή Στις μέρες μας τα πάντα τείνουν να αυτοματοποιηθούν. Σε ένα τέτοιο πλαίσιο αυτοματοποίησης δε θα μπορούσε να μην πάρει μέρος η καθημερινότητα μας, το ίδιο μας το σπίτι δηλαδή. O οικιακός αυτοματισμός διευκολύνει τη ζωή μας. Κάποτε, για να είχε κάποιος φως σε ένα δωμάτιο θα έπρεπε να σκαρφαλώνει σε μια σκάλα και να ρυθμίζει μια λάμπα πετρελαίου. Στη συνέχεια τα πράγματα έγιναν ευκολότερα, καθώς αρκούσε μόνο το πάτημα ενός διακόπτη και το φως άναβε. Σήμερα έχουμε φτάσει σε ένα σημείο που πλέον δεν χρειάζεται καν να πατάμε αυτόν το διακόπτη, μιας και ένας υπολογιστής το αναλαμβάνει για εμάς. Κάποιος θα μπορούσε αυτό να το αποκαλέσει oκνηρία, στην τεχνολογική γλώσσα, ωστόσο, ονομάζεται πρόοδος. Από το αυτόματο πότισμα του κήπου έως την εναλλαγή καναλιών και σημάτων ήχου και video εντός της οικίας, αυτό που ονομάζουμε «έξυπνο» σπίτι μπορεί να κάνει τη ζωή μας ευκολότερη και ποιοτικότερη. Με μια μικρή δαπάνη σε χρόνο και σε χρήματα σχεδόν τα πάντα πλέον μπορούν να αυτοματοποιηθούν σε ένα σπίτι. Ένα έξυπνο σπίτι μπορεί να είναι όσο σύνθετο ή όσο απλό θελήσουμε. Η βασική ιδέα πίσω από το έξυπνο σπίτι και τον οικιακό αυτοματισμό γενικότερα είναι να εξοπλίσουμε μια κατοικία με αισθητήρες και συστήματα ελέγχου και με τη βοήθεια τους να ελέγχουμε τη θερμοκρασία, τον κλιματισμό, τον φωτισμό και πολλές άλλες υπηρεσίες. Προσαρμόζοντας περαιτέρω τους μηχανισμούς του σπιτιού στις ανάγκες του κατόχου του, το έξυπνο σπίτι μπορεί να αποτελέσει ένα πιο ασφαλές, πιο άνετο και πιο οικονομικό κατάλυμα. Παραδείγματος χάριν, ο ηλεκτρονικός ελεγκτής σε ένα αυτοματοποιημένο σπίτι μπορεί να αποφασίσει πότε οι ένοικοι έχουν αποσυρθεί από ένα δωμάτιο και να κλείσει τα φώτα ή να χαμηλώσει τον θερμοστάτη. Μπορεί ακόμη να ενεργοποιήσει συναγερμούς φωτιάς ή κλοπής, καθώς και να βελτιστοποιήσει τη διαχείριση πόρων, όπως το νερό και το ρεύμα. Το πρώτο οργανωμένο project για το «έξυπνο» σπίτι ξεκίνησε στις αρχές του 1980 ως ένα εγχείρημα του Κέντρου Έρευνας της Εθνικής Ένωσης Κατασκευαστών Σπιτιών των ΗΠΑ (National Research Center of the National Association of Home Builders - NAHB). Αρκετές εταιρείες κυρίως του ιδιωτικού τομέα έλαβαν μέρος και συγχρηματοδότησαν το συγκεκριμένο project. 1.1 Ορίζοντας το Έξυπνο σπίτι Επισήμως η λέξη «έξυπνο» χρησιμοποιήθηκε πρώτη φορά κατά τη δεκαετία του 70 ως προσδιορισμός τεχνολογικών επιτευγμάτων. Συγκεκριμένα, αναφερόταν σε στρατιωτικά προϊόντα, όπως βόμβες ή πυραύλους που καθοδηγούσαν τον εαυτό τους προς το στόχο («έξυπνες βόμβες»). Κατά την Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 5

6 τεχνολογική άνθηση της δεκαετίας του 80 η λέξη «έξυπνο» απέκτησε άλλες προεκτάσεις: αναφερόταν σε συσκευές που εμπεριείχαν ολοκληρωμένα κυκλώματα (τσιπ), όπως οι υπολογιστές και οι προηγμένες οικιακές συσκευές. Βέβαια αυτό άλλαξε με την πάροδο του χρόνου και πλέον σήμερα δεν αποκαλούμε έναν σύγχρονο υπολογιστή «έξυπνο», παρόλο που οι σημερινοί υπολογιστές είναι εκθετικά ισχυρότεροι από εκείνους της δεκαετίας του 80. Ο όρος «έξυπνο σπίτι» καθιερώθηκε από την αμερικανική ομοσπονδία κατασκευαστών σπιτιών το Ένας απλός ορισμός για την έννοια του έξυπνου σπιτιού είναι ο εξής: «Έξυπνο σπίτι είναι μια κατοικία που ενσωματώνει ένα δίκτυο επικοινωνίας, το οποίο συνδέει ηλεκτρικές συσκευές και υπηρεσίες και επιτρέπει απομακρυσμένο έλεγχο, παρακολούθηση και πρόσβαση σε αυτές.» Όταν μιλάμε για απομακρυσμένο έλεγχο εννοούμε ότι οι συσκευές και οι υπηρεσίες θα μπορούν να ελεγχθούν μέσα ή έξω από την κατοικία. Ο ορισμός αυτός συμφωνεί με τις περισσότερες περιπτώσεις υλοποίησης έξυπνων σπιτιών, αφού σχεδόν πάντα έχουμε να κάνουμε με δικτύωση και αλληλεπίδραση συσκευών. Συνεπώς, ο όρος «έξυπνο» δεν δηλώνει την καθαυτό υποδομή του συστήματος (δικτύωση, αισθητήρες, διακόπτες κ.τ.λ.), αλλά αναφέρεται στο συνδυασμένο περιβάλλον ανθρώπου και υποδομής ώστε οι δράσεις και οι αλληλεπιδράσεις του να έχουν σαφή «έξυπνα» αποτελέσματα στον τελικό χρήστη. 1.2 Τεχνολογία δικτύωσης στο Έξυπνο σπίτι Η βασική τεχνολογία που χρησιμοποιείται στο έξυπνο σπίτι είναι αναμφίβολα η ασύρματη, όπως το Bluetooth, το RFID και το WiFi. Παρόλο που πολλές από τις τεχνολογίες αυτές χρειάζονται μπαταρίες για την τροφοδοσία τους και κάποιες φορές κρίνονται αναποτελεσματικές, το πλεονέκτημα της έλλειψης καλωδίωσης είναι πολύ μεγάλο για τον τελικό χρήστη. Μάλιστα, υπάρχουν ερευνητές που ισχυρίζονται ότι στο μέλλον οι ασύρματες τεχνολογίες θα αποτελούν αυστηρό προαπαιτούμενο για οποιοδήποτε έξυπνο σπίτι. Όταν έχουμε να κάνουμε με δικτύωση σε προϋπάρχοντα σπίτια και όχι σε καινούρια, οι ασύρματες επιλογές μοιάζουν ακόμα καλύτερες. Ένα ξεκάθαρο σημείο υπεροχής είναι ότι η εγκατάσταση καλωδίωσης μπορεί να σημαίνει αρκετά υψηλό κόστος, ειδικά σε ένα σπίτι που δεν είναι υπό κατασκευή και χρειάζονται παρεμβάσεις. Υπολογίζεται ότι το κόστος εγκατάστασης ενός αισθητήρα κυμαίνεται από 50% έως 90% της αξίας του. Ένα ακόμη πλεονέκτημα της ασύρματης τεχνολογίας είναι η κινητικότητα συσκευών και χρηστών που παρέχει το έξυπνο σπίτι. Πιο συγκεκριμένα, ο χρήστης μπορεί να μεταφέρει εύκολα μια συσκευή χωρίς να ανησυχεί για καλώδια, αρκεί να μείνει εντός εμβέλειας. Επίσης, είναι εύκολο να εγκατασταθεί και να είναι λειτουργική μια Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 6

7 νέα συσκευή στο ήδη υπάρχον ασύρματο δίκτυο. Αντίθετα, κάτι τέτοιο δεν ισχύει σε ένα ενσύρματο δίκτυο. Παρά τα αρκετά πλεονεκτήματα των ασύρματων λύσεων η παραδοσιακή καλωδίωση παραμένει μια καλή επιλογή. Μπορεί να κοστίζει περισσότερο και να είναι δύσκολο να αντικατασταθεί ή να τροποποιηθεί μελλοντικά, αλλά η ενσύρματη δικτύωση προσφέρει ξεχωριστά πλεονεκτήματα όπως ασφάλεια και σταθερότητα. Σε αυτούς ακριβώς τους τομείς υστερεί η ασύρματη τεχνολογία. Στη συνέχεια γίνεται αναφορά σε κάποιες τεχνολογίες επικοινωνίας που χρησιμοποιούνται στα έξυπνα σπίτια. Κάθε μια από αυτές έχει τα πλεονεκτήματα και τα μειονεκτήματα της. Έτσι λοιπόν δεν υπάρχει η βέλτιστη επιλογή, αλλά η καλύτερη δυνατή που καλύπτει τις εκάστοτε ανάγκες του τελικού χρήστη Χ10 Πρόκειται για μία μέθοδο επικοινωνίας που εφευρέθηκε το 1975, οπότε είναι προφανώς και μια από τις παλαιότερες τεχνολογίες που εφαρμόζονται σήμερα στο έξυπνο σπίτι. Η συγκεκριμένη τεχνολογία βασίζεται στην ηλεκτρική καλωδίωση που είναι ήδη εγκατεστημένη στο κάθε σπίτι. Πρόκειται δηλαδή για μια ενσύρματη μέθοδο. Αναμφίβολα το πλεονέκτημα της X10 τεχνολογίας είναι ότι χρησιμοποιεί το υπάρχον ηλεκτρικό δίκτυο του σπιτιού για τη μεταφορά δεδομένων, το ότι, δηλαδή, δεν χρειάζεται πρόσθετη ειδική καλωδίωση. Η μετάδοση των δεδομένων επιτυγχάνεται μέσω της αποστολής πληροφοριών με ένα σήμα των 120 ΚHz διαμέσου των πριζών του σπιτιού. Τα δεδομένα χωρίζονται σε τέσσερα bit κώδικα σπιτιού και σε τέσσερα bit κώδικα μονάδας και ακολουθούνται από μια εντολή που μπορεί να έχει μήκος εώς τέσσερα bit. Οι συνδυασμοί του κώδικα σπιτιού και μονάδας επιτρέπουν να έχουμε 256 ξεχωριστές συσκευές. Αν χρειαστεί πάντως το X10 μας επιτρέπει να κάνουμε χρήση της ίδιας διεύθυνσης για πολλαπλές συσκευές. Παρόλο που η τεχνολογία X10 επιτρέπει σε οποιαδήποτε συσκευή να συνδεθεί στο οικιακό ηλεκτρικό δίκτυο και να επικοινωνήσει, έχει ως μέθοδος κάποια σημαντικά μειονεκτήματα. Τα σημαντικότερα από αυτά είναι το περιορισμένο εύρος ζώνης (bandwidth) του πρωτοκόλλου που χρησιμοποιεί καθώς και η έλλειψη αξιοπιστίας. Το περιορισμένο εύρος ζώνης του X10 το αποκλείει ως λύση για εφαρμογές, όπως η περιήγηση στο διαδίκτυο ή η άμεση εκπομπή και διανομή οπτικοακουστικού σήματος μέσα στο σπίτι. Από την άλλη βέβαια, το X10 είναι κατάλληλο για πιο απλές αυτοματοποιήσεις, όπως η ενεργοποίηση ή η απενεργοποίηση συσκευών και λαμπτήρων ή ο αυτόματος προγραμματισμός ξυπνητηριών, θέρμανσης, εγγραφέων βίντεο κ.α. Παρόλο που το X10 παραμένει πολύ δημοφιλές δεν είναι η πρώτη επιλογή ως τεχνολογία επικοινωνίας για το Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 7

8 έξυπνο σπίτι του σήμερα. Αδιαμφισβήτητα όμως, αποτελεί μια πολύ καλή υποστηρικτική λύση που μπορεί να χειριστεί πολύ αποδοτικά τις παλαιότερες συσκευές του σπιτιού Bluetooth Το Bluetooth είναι μια ασύρματη τεχνολογία που αρχικά σχεδιάστηκε για να αντικαταστήσει τα καλώδια κατά τις συνδέσεις κινητών τηλεφώνων ή laptop. H τεχνολογία αυτή πήρε το όνομα της από έναν μεσαιωνικό βασιλιά της Νορβηγίας τον Harald Blåtand (=Bluetooth) Gormson, που είχε προσπαθήσει να ενοποιήσει τα τότε βόρεια σκανδιναβικά βασίλεια. Έτσι και το Bluetooth σαν τεχνολογία προσπάθησε να ενοποιήσει τα ήδη υπάρχοντα ασύρματα πρότυπα, για να καθιερωθεί τελικά ως μια βασική τεχνολογία για την ασύρματη σύνδεση σε μικρές αποστάσεις. Από τεχνικής πλευράς, το Bluetooth δουλεύει στα 2.4 GHz, που είναι το μη αδειοδοτημένο φάσμα ISM (Industrial Scientific Medical). Πρόκειται για φάσμα ανοιχτό στον οποιοδήποτε, με αποτέλεσμα όλα τα συστήματα που το χρησιμοποιούν να πρέπει να είναι έτοιμα για «διαμάχες» με άλλες συσκευές. Το Bluetooth για να αντιμετωπίσει τέτοιου είδους προβλήματα χρησιμοποιεί την τεχνολογία FHSS(Frequency Spectrum Hopping Technology), κάτι που σημαίνει ότι δύο συνδεδεμένες συσκευές Bluetooth μετά την αποστολή κάθε πακέτου, αλλάζουν περιοδικά κανάλι επικοινωνίας. Στην πράξη αυτό σημαίνει ότι εάν ένα κανάλι είναι δεσμευμένο από μια άλλη συσκευή, οι συσκευές Bluetooth θα αλλάξουν αυτόματα κανάλι με αποτέλεσμα η επικοινωνία τους να επηρεαστεί ελάχιστα. Η τεχνολογία FHSS διασφαλίζει ακόμη ότι πολλαπλά δίκτυα Bluetooth μπορούν να συνυπάρχουν ταυτόχρονα χωρίς να διαταράσσονται οι επιμέρους συνδέσεις. Οι συσκευές που είναι συνδεδεμένες με Bluetooth μπορούν να δημιουργήσουν δίκτυα γνωστά ως piconets, που αποτελούνται από δύο εώς οκτώ συσκευές. Από αυτές τις συσκευές μία δρα ως κύρια συσκευή (master) και είναι υπεύθυνη για τη διευθέτηση της κυκλοφορίας δεδομένων σε όλο το piconet. Οι υπόλοιπες συσκευές του piconet λειτουργούν ως «σκλάβοι» (slaves). Μόνο μια συσκευή μπορεί να είναι master κάθε στιγμή, αλλά αυτή η συσκευή μπορεί να αλλάξει αν μια συσκευή slave επιθυμεί να γίνει master. Η συσκευή master όχι μόνο αποτελεί το κέντρο του δικτύου, αλλά επίσης παίρνει όλες τις αποφάσεις με αποτέλεσμα να ορίζει και το συνολικό εύρος ζώνης του piconet. Όταν μία ή περισσότερες συσκευές του piconet συνδεθούν σε ένα άλλο piconet, τότε έχουμε ένα scatternet. Οι συσκευές Bluetooth μπορεί να συμπεριφέρονται σαν σκλάβοι σε διάφορα piconet, αλλά master μπορούν να είναι αυστηρά μόνο σε ένα. Οι συσκευές αυτές που ανήκουν σε πολλά piconet μπορούν να δράσουν σαν συνδετικός κρίκος μεταξύ των υποδικτύων για τη μεταφορά δεδομένων. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 8

9 Η μέση εμβέλεια για τις συσκευές Bluetooth είναι περίπου δέκα μέτρα, αλλά πιο ισχυρές συσκευές μπορούν να φτάσουν ακόμη και τα εκατό μέτρα. Σε γενικές γραμμές μπορούμε να πούμε ότι το Bluetooth είναι μια τεχνολογία με μικρή εμβέλεια, ειδικά σε σύγκριση με ασύρματες τεχνολογίες της κατηγορίας IEEE Ωστόσο, η μικρή εμβέλεια των δικτύων Bluetooth κάποιες φορές αποτελεί πλεονέκτημα. Για παράδειγμα μία κινητή συσκευή που χρησιμοποιεί το δίκτυο Bluetooth είναι σίγουρα πολύ κοντά στο δέκτη, γεγονός που μπορεί να θεωρηθεί θετικό όσον αφορά την ασφάλεια. Η τεχνολογία Bluetooth μπορεί να χρησιμοποιηθεί επιτυχώς στο σύγχρονο έξυπνο σπίτι. Κάτι τέτοιο επιτυγχάνεται με την τοποθέτηση δεκτών διάσπαρτα μέσα στο σπίτι, οι οποίες εντοπίζουν το χρήστη μέσω του κινητού του τηλεφώνου και κατόπιν παρέχουν υπηρεσίες σε αυτόν ανάλογα με το που βρίσκεται (follow me content) IEEE Η οικογένεια ασύρματων προτύπων IEEE έχει γνωρίσει χαρακτηριστική αποδοχή και ανάπτυξη τα τελευταία χρόνια. Συνήθως αποκαλείται WiFi ή πιο απλά WLAN. Τα πλεονεκτήματα της είναι αρκετά. Βασικότερο αυτών είναι η ικανοποίηση της ανάγκης που υπήρχε και υπάρχει για αντικατάσταση της παραδοσιακής καλωδιακής δικτύωσης των σπιτιών, των γραφείων και άλλων χώρων όπως οι καφετέριες κ.τ.λ. Ένα άλλο πλεονέκτημα είναι το χαμηλό κόστος των προϊόντων που είναι συμβατά με τα πρότυπα , όπως τα σημεία πρόσβασης (Access Points) και οι επαναλήπτες σήματος (Repeaters). Επίσης, τα πιο πρόσφατα πρότυπα της οικογένειας ΙΕΕΕ παρέχουν αρκετά μεγάλες ταχύτητες μετάδοσης δεδομένων. Για παράδειγμα το πρότυπο n μπορεί να επιτύχει ρυθμό μετάδοσης δεδομένων πάνω από 500 Mbps. Η διάδοση αυτής της τεχνολογίας έφερε στο χρήστη εύκολη και πολλές φορές δωρεάν πρόσβαση στο διαδίκτυο σε διάφορους δημόσιους χώρους. Τέλος, τα πρότυπα IEEE λειτουργούν και αυτά στο μη αδειοδοτημένο φάσμα ISM (Industrial Scientific Medical) στη συχνότητα των 2.4 GHz. Η τοπολογία δικτύου που χρησιμοποιείται είναι «κεντροποιημένη». Αυτό πρακτικά σημαίνει ότι όλοι οι πελάτες (clients) ενός δικτύου συνδέονται σε μια κεντρική οντότητα, που συχνά αναφέρεται ως σημείο πρόσβασης. Αυτή η οντότητα λαμβάνει δεδομένα από τους πελάτες και κατόπιν τα δρομολογεί. Σήμερα γίνεται προσπάθεια παροχής δικτύων «mesh». Με ένα τέτοιο δίκτυο οι συσκευές δε θα χρειάζονταν μια κεντρική οντότητα. Αντιθέτως, θα δρουν αυτόνομα προωθώντας τα αντίστοιχα δεδομένα μεταξύ τους. Πρέπει να σημειωθεί εδώ ότι οι ανάγκες σε ενέργεια για τις διάφορες συσκευές με κάρτες που υποστηρίζουν τα πρότυπα IEEE κυμαίνονται μεταξύ 2.06W και 0.14W όταν αυτές είναι σε αναμονή. Το τελευταίο αυτό χαρακτηριστικό αποτελεί και το βασικότερο μειονέκτημα της συγκεκριμένης τεχνολογίας όσον αφορά την ευρεία χρησιμοποίησή της στα έξυπνα σπίτια. Και αυτό γιατί οι αισθητήρες που αποτελούν βασικό συστατικό Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 9

10 ενός έξυπνου σπιτιού δεν πρέπει να καταναλώνουν μεγάλα ποσά ενέργειας. Τη λύση σε αυτό το πρόβλημα τη δίνει η επόμενη τεχνολογία δικτύωσης έξυπνων σπιτιών, η τεχνολογία ZigBee ZigBee Είναι βασισμένη στο πρότυπο IEEE και όπως και άλλες προαναφερθείσες ασύρματες τεχνολογίες λειτουργεί στο φάσμα ISM των 2.4GHz και έχει εμβέλεια μετάδοσης μέχρι 100 μέτρα με μέγιστη ταχύτητα τα 250 Kbps. To ZigBee μπορεί να λειτουργήσει και στις συχνότητες των 868MHz, καθώς και των 915ΜHz. Ο στόχος του ZigBee είναι να παρέχει επικοινωνιακές δυνατότητες σε συσκευές ελέγχου και αισθητήρες που δεν χρειάζονται μεγάλο εύρος ζώνης, αλλά απαιτούν μεγάλους χρόνους αυτόνομης λειτουργίας (με χρήση μπαταριών συνήθως), καθώς και ευέλικτες τοπολογίες δικτύου. Για να καταστεί δυνατή η κατασκευή των συσκευών που έχουν χαμηλότερες απαιτήσεις σε ενέργεια, οι συσκευές ZigBee βγαίνουν σε δύο ξεχωριστές εκδόσεις: συσκευές πλήρους λειτουργικότητας (FFD Full Function Devices), καθώς και συσκευές μειωμένης λειτουργικότητας (RFD Reduced Function Devices). Οι πρώτες συσκευές είναι πάντα ενεργοποιημένες με αποτέλεσμα να καταναλώνουν πολύ περισσότερη ενέργεια από τις δεύτερες που συνήθως τίθενται αυτόματα σε αναμονή (sleep mode) και μεταδίδουν δεδομένα μόνο όταν υπάρξει κάποιο συμβάν. Οι συσκευές RFD μπορούν να λειτουργήσουν μόνο ως τερματικά σημεία (end points) ενός δικτύου και χρειάζονται τουλάχιστον μια συσκευή FFD για να επικοινωνήσουν. Αυτό σημαίνει ότι ένα δίκτυο με μια συσκευή FFD και με πολλαπλές RFD μπορεί να δημιουργήσει μόνο σε τοπολογία αστέρα, όπου όλες οι RFD συνδέονται σε μια κεντρική συσκευή. Ωστόσο, με τη χρήση πολλαπλών FFD μπορούμε να έχουμε και ένα δίκτυο mesh ή ένα δίκτυο peer-to-peer. Σε αυτά τα δίκτυα οι συσκευές FFD δρουν ως δρομολογητές που μεταδίδουν δεδομένα μεταξύ κλάδων του δικτύου, με μια FFD να συμπεριφέρεται ως ο συντονιστής του δικτύου. Η τεχνολογία ZigBee, λοιπόν, έρχεται να λύσει το πρόβλημα της κατανάλωσης ενέργειας και χρησιμοποιείται ευρέως στην ασύρματη δικτύωση των έξυπνων σπιτιών σε συνδυασμό βέβαια και με άλλες τεχνολογίες RFID Το RFID χρησιμοποιείται ως όρος για να περιγράψει τεχνολογία που σκοπό έχει την ταυτοποίηση αντικειμένων μέσα από τη χρήση ραδιοκυμάτων. Ένα τυπικό σύστημα αποτελείται από τρία μέρη: μια συσκευή RFID, έναν αναγνώστη RFID με μια κεραία και μια υπάρχουσα σύνδεση σε ένα σύστημα-host. Σήμερα οι συσκευές RFID είναι περισσότερο γνωστές ως «tags». Συνήθως ανήκουν σε δύο κατηγορίες: ενεργά ή παθητικά tags. Τα ενεργά έχουν τη δική τους παροχή ενέργειας, ενώ τα παθητικά δουλεύουν με την ενέργεια που αποστέλλεται από Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 10

11 τον αναγνώστη RFID. Τα ενεργητικά έχουν δυνατότητα ανάγνωσης, αλλά και εγγραφής, ενώ τα παθητικά είναι μόνο για ανάγνωση. Ακόμη υπάρχουν και ημιπαθητικά tags που έχουν δική τους παροχή ενέργειας για το εσωτερικό τους κύκλωμα, αλλά χρησιμοποιούν και ενέργεια από τον αναγνώστη RFID όποτε κάτι τέτοιο είναι δυνατό. Σε σχέση με την έρευνα για το έξυπνο σπίτι τα RFID tags χρησιμοποιούνται περισσότερο για την ταυτοποίηση των χρηστών μέσα στο σπίτι και την παροχή ανάλογων υπηρεσιών. Για παράδειγμα το 2004 η Samsung παρουσίασε μία υλοποίηση έξυπνης συσκευής η οποία υπενθύμιζε στους κατοίκους του σπιτιού την ατζέντα τους κάθε φορά που άνοιγαν την εξώπορτα. Η συσκευή ήξερε ποιος ήταν στην εξώπορτα κάθε φορά και επίσης γνώριζε πληροφορίες όπως η ημερομηνία, η ώρα και τα περιεχόμενα της ηλεκτρονικής τους ατζέντας. Το δυνατό σημείο της συγκεκριμένης υλοποίησης ήταν η αναγνώριση των χρηστών, γεγονός που επιτεύχθηκε με χρήση RFID tags που έφερε πάνω του ο κάθε χρήστης. 1.3 Ιδέα- Σύστημα προς υλοποίηση Σε όλους μας έχει συμβεί να έχουμε φύγει από το σπίτι μας και να αναρωτιόμαστε αν έχουμε ξεχάσει αναμμένο τον φούρνο, το μάτι της κουζίνας, τα φώτα κ.τ.λ. Επίσης, πόσες φορές δεν έχουμε ευχηθεί να μπορούσαμε να ανάψουμε τον θερμοσίφωνα του σπιτιού μας από μακριά ώστε όταν επιστρέψουμε να μας περιμένει ζεστό νερό. Όλα τα παραπάνω αποτέλεσαν την αφορμή για την ενασχόληση μου με μια εφαρμογή οικιακού αυτοματισμού στα πλαίσια της διπλωματικής μου εργασίας. Ο στόχος που τέθηκε ήταν : «Η υλοποίηση ενός οικιακού αυτοματισμού από την αρχή μέχρι το τέλος, χωρίς υπάρχουσα υποδομή» Το μοντέλο προς υλοποίηση (Σχήμα 1) έχει ως εξής: Ο τελικός χρήστης χρησιμοποιώντας τερματικές συσκευές - όπως για παράδειγμα έναν υπολογιστή ή ένα κινητό τηλέφωνο - θα έχει πρόσβαση και θα ελέγχει μέσω internet κάποιες οικιακές συσκευές. Σχήμα 1. Μοντέλο προς υλοποίηση Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 11

12 2.1 Θεωρητική ανάλυση Κεφάλαιο 2 ο Υλοποίηση Συστήματος Η προσέγγιση που ακολουθήθηκε στην παρούσα διπλωματική εργασία είναι η υλοποίηση απομακρυσμένου ελέγχου οικιακών συσκευών μέσω σημείων πρόσβασης στο internet. Το διάγραμμα ενός τέτοιου συστήματος φαίνεται στο Σχήμα 2. Σχήμα 2.Διάγραμμα του Συστήματος Στα πλαίσια της εργασίας επελέγη η υλοποίηση ενός συστήματος βασισμένου σε μικροελεγκτή, ο οποίος θα ελέγχει δύο συσκευές και θα διαβάζει μέσω ενός αισθητήρα τη θερμοκρασία του χώρου. Η επικοινωνία με τον μικροελεγκτή θα γίνεται μέσω της σειριακής του θύρας (UART-Universal Asynchronous Receiver/Transmitter). Μια ξεχωριστή περιφερειακή συσκευή (Διεπαφή-TCP) θα πραγματοποιεί «διαφανή» επικοινωνία του μικροελεγκτή με το modem/router του σπιτιού. Τέλος, το modem/router θα διεκπεραιώνει την επικοινωνία με τον τελικό χρήστη ο οποίος το μόνο που χρειάζεται να έχει είναι πρόσβαση στο internet. Γίνεται φανερό λοιπόν ότι η ανάπτυξη του προαναφερθέντος συστήματος χωρίζεται σε τέσσερα στάδια: 1. Επιλογή Αναπτυξιακού Προγραμματισμός του Μικροελεγκτή 2. Επιλογή διεπαφής UART TCP Ρυθμίσεις 3. Ρυθμίσεις Modem/Router 4. Ανάπτυξη εφαρμογών τελικού χρήστη: Εφαρμογή για PC Windows Εφαρμογή για κινητό Android Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 12

13 Διπλωματική Εργασία - Μαρτίνης Στέλιος «Οικι Οικι α κ ός Αυ τ ο μ α τι σμ ός μ ε χ ρή ση Μ ικ ρ ο ελ ε γ κτ ή» Όπως προκύπτει από το διάγραμμα του συστήματος, αλλά και από την περιγραφή του, το σύστημα είναι πλήρως επεκτάσιμο επεκτάσιμο οι συσκευές υσκευές που μπορούν να ελεγχθούν από τον χρήστη δεν είναι μόνο δύο, αλλά όσες αυτός επιθυμεί. Επίσης, εκτός από τον αισθητήρα θερμοκρασίας, θερμοκρασία μπορεί να χρησιμοποιηθεί οποιοσδήποτε αισθητήρας σθητήρας (υγρασίας, πίεσης κ.λπ.) κ.λπ ανάλογα με τις απαιτήσεις του χρήστη. Με μικρές ικρές τροποποιήσεις στη συνδεσμολογία και στο λογισμικό που αναπτύχθηκε (κώδικας μικροελεγκτή, μικροελεγκτή, εφαρμογές τελικού χρήστη) μπορεί κάποιος να τροποποιήσει το παραπάνω σύστημα στις τις δικές του ανάγκες. 2.2 Αναπτυξιακό Μικροελεγκτή Μικροελεγκτές - Γενικά Η σχεδίαση ενός μικροϋπολογιστικού συστήματος, συστήματος ενός συστήματος συστήμα δηλαδή βασισμένο σε μικροεπεξεργαστή, ο οποίος ελέγχει μια πληθώρα από περιφερειακές συσκευές, συσκευές περιλαμβάνει, το ολοκληρωμένο κύκλωμα του μικροεπεξεργαστή και τις περιφερειακές συσκευές όπως μνήμες, συσκευές εισόδου/εξόδου, αισθητήρες ήρες κ.τ.λ. κ. Η σύνδεση και ο συγχρονισμός των διαφόρων συσκευών με τον μικροεπεξεργαστή καθιστά πολύπλοκη η τη σχεδίαση του συστήματος. Μια λύση στο πρόβλημα θα ήταν να υπήρχε ένα ολοκληρωμένο κύκλωμα, το οποίο να ενσωματώνει κάποιες απαραίτητες περιφερειακές συσκευές. Ένα τέτοιο κύκλωμα είναι ο μικροελεγκτής (microcontroller) (Σχήμα 3). Σχήμα 3. Σχέση μικροεπεξεργαστή με μικροελεγκτή Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 13

14 Ένας μικροελεγκτής έχει ενσωματωμένη μνήμη και θύρες Εισόδου/Εξόδου (I/O), ενώ αντίθετα σε ένα μικροεπεξεργαστή χρειάζεται να συνδέσουμε τα παραπάνω σαν πρόσθετα περιφερειακά κυκλώματα. Οι μικροελεγκτές είναι το κύριο στοιχείο σε πολλά είδη ηλεκτρονικού εξοπλισμού. Ένα τυπικό σπίτι στο δυτικό κόσμο είναι πιθανό να περιλαμβάνει μόνο έναν ή δύο γενικού σκοπού μικροεπεξεργαστές, αλλά περισσότερους από είκοσι μικροελεγκτές. Μικροελεγκτές απαντώνται σε οποιονδήποτε τύπο ηλεκτρικής συσκευής, πλυντήρια ρούχων, φούρνους μικροκυμάτων, τηλέφωνα κ.λπ. Οι περισσότεροι μικροελεγκτές βασίζονται στην αρχιτεκτονική Von Neumann, η οποία καθόρισε σαφώς τα τέσσερα βασικά συστατικά που απαιτoύνται για ένα ψηφιακό σύστημα. Αυτά περιλαμβάνουν έναν επεξεργαστικό πυρήνα (CPU), τη μνήμη για το πρόγραμμα και τα δεδομένα (RAM), χώρο μόνιμης αποθήκευσης (FLASH σε έναν Μικροελεγκτή), καθώς επίσης και τις θύρες I/O για επικοινωνία με εξωτερικές περιφερειακές μονάδες - όλο αυτά σε ένα ενιαίο ολοκληρωμένο κύκλωμα. Εικόνα 1 : Ο PIC της MICROCHIP Εικόνα 2 : Ο AT91 της ATMEL Οι μικροελεγκτές συνήθως περιλαμβάνουν θύρες Ι/Ο για σύνδεση με ποικίλες συσκευές εισόδου/εξόδου, όπως αναλογικές (με ενσωματωμένους μετατροπείς από αναλογικό σε ψηφιακό), UARTs ή ειδικευμένα σειριακά interface επικοινωνιών όπως το I²C, το SPI και το Controller Area Network (CAN). Μερικοί σύγχρονοι μικροελεγκτές έχουν ενσωματωμένη και μία υψηλού επιπέδου γλώσσα προγραμματισμού όπως η BASIC Αναπτυξιακό Arduino Uno AVR ATmega328p Στο σύστημα που υλοποιήθηκε χρησιμοποιήθηκε ο μικροελεγκτής AVR της ATMEL, και ειδικότερα ο ATmega328p, λόγω των πολλών δυνατοτήτων του, αλλά και της χαμηλής τιμής του. Εικόνα 3 : Ο ATmega328p Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 14

15 Τα βασικά χαρακτηριστικά του συγκεκριμένου μικροελεγκτή είναι: Αναβαθµισµένη RISC αρχιτεκτονική 131 ολύ ισχυρές εντολές οι ερισσότερες α αιτούν µόνο ένα κύκλο ρολογιού για την εκτέλεση τους 32 καταχωρητές µεγέθους 8-bit γενικής χρήσης Μέχρι 20 MIPS στα 16MHz On chip ολλα λασιαστής 2 κύκλων Μνήµη ρογράµµατος και δεδοµένων 32 KB Αυτο ρογραµµατιζόµενη µνήµη flash 1 KB EEPROM µνήµη 2 KB εσωτερική SRAM Πλήθος εριφερειακών 2 timers 8-bit µε ξεχωριστά ρολόγια 1 timer 16-bit µε ξεχωριστό ρολόι Μετρητής ραγµατικού χρόνου µε εξωτερικό κρύσταλλο 14 γραµµές για ψηφιακή είσοδο/έξοδο (6 εκ των ο οίων υ οστηρίζουν PWM) 6 γραµµές για αναλογική είσοδο (µε 10-bit αναλογο-ψηφιακό µετατρο έα ADC) Master/Slave SPI λειτουργία Σειριακή θύρα µε δυνατότητες σύγχρονης και ασύγχρονης λειτουργίας Watchdog timer µε ξεχωριστό κρύσταλλο On-chip αναλογικό συγκριτή Ειδικά χαρακτηριστικά Reset αυτόµατα µε την τροφοδότηση Εσωτερικό ρολόι Εσωτερικές και εξωτερικές διακο ές 6 sleep modes για εξοικονόµηση ενέργειας Ταχύτητα έως 16MHz Το αναπτυξιακό που επιλέχθηκε για την υλοποίηση του συστήματος και ενσωματώνει τον ATmega328p είναι το Arduino Uno. Εικόνα 4 : Arduino Uno (Οι δύο όψεις του) Πρόκειται για μια ηλεκτρονική πλατφόρμα ανοιχτού λογισμικού. Μπορεί να χρησιμοποιηθεί από οποιονδήποτε που ενδιαφέρεται να δημιουργήσει διαδραστικές εφαρμογές. Μπορεί να δεχθεί σαν είσοδο μια ποικιλία από Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 15

16 αναλογικά ή ψηφιακά σήματα και να ελέγχει σύμφωνα με τα σήματα αυτά κάποιες περιφερειακές συσκευές που θα είναι συνδεδεμένες σε αυτόν, όπως LEDs, διακόπτες, κινητήρες κ.τ.λ. Ο μικροελεγκτής του προγραμματίζεται χρησιμοποιώντας την γλώσσα προγραμματισμού Arduino (βλέπε παράρτημα 1). Στην παρακάτω εικόνα (Εικόνα 5) φαίνεται η αντιστοίχηση των ακροδεκτών (pins) του ολοκληρωμένου κυκλώματος του μικροελεγκτή με τους ακροδέκτες του αναπτυξιακού -Arduino Uno. Εικόνα 5 : Pin Mapping Βασικά χαρακτηριστικά του Arduino Uno - Ψηφιακά pins (Digital Pins) Το Arduino Uno έχει 14 ψηφιακά pins (Εικόνα 6) τα οποία μπορούν να οριστούν είτε σαν είσοδοι, είτε σαν έξοδοι. Από τα 14 αυτά ψηφιακά pins κάποια εκτός από τη λειτουργία Ι/Ο έχουν και άλλες επιπρόσθετες λειτουργίες : Digital pins 1, 2 : για σειριακή ε ικοινωνία UART Digital pins 3, 5, 6, 9, 10, 11 : PWM (Pulse Width Modulation), για να έχουµε ψηφιακούς αλµούς µεταβλητού λάτους (βλέ ε αράγραφο PWM). Είναι σημαντικό επίσης, να αναφερθεί ότι και οι αναλογικές είσοδοι (analog inputs) μπορούν να χρησιμοποιηθούν σαν ψηφιακά pins. Εικόνα 6 : Digital pins Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 16

17 Ιδιότητες των pins που ορίζονται σαν είσοδοι (INPUT) Όλα τα pins του μικροελεγκτή λειτουργούν εξ ορισμού σαν είσοδοι, οπότε δεν χρειάζεται να δηλώνεται η συγκεκριμένη λειτουργία στον κώδικα του μικροελεγκτή. Αυτό σημαίνει ότι η κατάσταση μιας εισόδου μπορεί να αλλάξει και από κάποια τυχαία αιτία. Κάτι τέτοιο βέβαια εγκυμονεί κινδύνους. Για παράδειγμα, αν ένα pin είναι στον αέρα ή είναι συνδεδεμένο με ένα μη οδηγούμενο καλώδιο, μπορεί ανά πάσα στιγμή, λόγω εξωτερικού θορύβου, στατικού ηλεκτρισμού, επιρροής πεδίου κ.τ.λ να αλλάξει η κατάστασή του. Όπως είναι φυσικό αυτό αποτελεί μια ανεπιθύμητη λειτουργία. Γι αυτό λοιπόν ένα pin εισόδου τοποθετείται σε μια γνωστή κατάσταση αν δεν οδηγείται από κάποιο σήμα εισόδου. Αυτό μπορεί να επιτευχθεί τοποθετώντας μια αντίσταση (pullup) μεταξύ του pin και της γραμμής τροφοδοσίας του μικροελεγκτή. Συγκεκριμένα, τοποθετούνται εσωτερικά σε κάθε pin αντιστάσεις 20ΚΩ, οι οποίες ενεργοποιούνται ή απενεργοποιούνται προγραμματιστικά κλείνοντας ή ανοίγοντας ένα διακόπτη. Με αυτόν τον τρόπο αποφεύγουμε ανεπιθύμητες εισόδους. Ιδιότητες των pins που ορίζονται σαν έξοδοι (OUTPUT) Τα pins που ορίζονται ως έξοδοι μπορούν να οδηγήσουν ένα κύκλωμα που θα συνδεθεί σε αυτά. Τα pins του Atmega μπορούν να δώσουν μέχρι 40mA σε κάποιο κύκλωμα. Αυτό είναι αρκετό να ανάψει ένα LED ή να ενεργοποιηθούν κάποιοι αισθητήρες, αλλά δεν επαρκεί να ενεργοποιηθούν ρελέ ισχύος ή κινητήρες. Γι αυτό το λόγο συνιστάται να συνδέεται σε κάθε έξοδο μια αντίσταση 470Ω ή 1ΚΩ για προστασία του μικροελεγκτή. Σε αντίθετη περίπτωση μπορεί να έχουμε καταστροφή κάποιου pin του μικροελεγκτή. - Αναλογικά pins (Analog Input Pins) A/D Converter Το Arduino board έχει 6 γραμμές για αναλογική είσοδο, σε καθεμία από τις οποίες συνδέεται ένας μετατροπέας από αναλογικό σε ψηφιακό (Analog to Digital Converter - ADC). Ο κάθε μετατροπέας έχει 10 bit ανάλυσης, με αποτέλεσμα να επιστρέφει ακεραίους από 0 έως 1023, ενώ η βασική λειτουργία των αναλογικών pins είναι να διαβάζουν αναλογικές εισόδους π.χ. αισθητήρες. Μπορούν επίσης να χρησιμοποιηθούν σαν ψηφιακές γραμμές εισόδου/εξόδου γενικού σκοπού, όπως ακριβώς και τα pins Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 17

18 Εικόνα 7 : Analog input pins Διαμόρφωση Πλάτους Παλμών (PWM) Η διαμόρφωση Πλάτους Παλμών, PWM, μας δίνει τη δυνατότητα να παράγουμε ψηφιακούς παλμούς μεταβλητού πλάτους. Η διάρκεια που ο παλμός είναι στο λογικό «1» (5V) ονομάζεται πλάτος του παλμού (pulse width), ενώ το ποσοστό του πλάτους του παλμού στο διάστημα μιας περιόδου ονομάζεται duty cycle (Σχήμα 4). Ο ATmega που φιλοξενεί το Arduino board μας δίνει τη δυνατότητα να μεταβάλλουμε το duty cycle των παλμών εξόδου στις PWM ψηφιακές γραμμές. Η χρησιμότητα των γραμμών με δυνατότητα παραγωγής παλμών μεταβλητού πλάτους θα γίνει αντιληπτή από το ακόλουθο παράδειγμα: δίνοντας παλμούς με μεταβαλλόμενο duty cycle σε ένα LED, το αποτέλεσμα θα είναι να αλλάζει η φωτεινότητα του LED σαν να οδηγούνταν από μια αναλογική τάση μεταξύ 0-5 Volt. Χρησιμοποιώντας δηλαδή PWM παλμούς μπορούμε να πάρουμε αναλογικό αποτέλεσμα (έξοδο) από ψηφιακούς παλμούς (τους PWM). Σχήμα 4. Πλάτος παλμού Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 18

19 - Προγραμματίζοντας το Arduino - Δομή ενός σχεδίου (Sketch) Η λέξη Sketch (σχέδιο) χρησιμοποιείται για να δηλώσει την έννοια του προγράμματος σε ένα Arduino board. Η βασική δομή ενός σχεδίου είναι: - Η λειτουργία setup(), η ο οία καλείται στην αρχή κάθε σχεδίου. Σε αυτή δηλώνονται οι µεταβλητές, οι βιβλιοθήκες, οι λειτουργίες των pins κ.τ.λ. Εκτελείται µόνο µία φορά, όταν ενεργο οιείται το Arduino board ή µετά α ό κά οιο reset. - Η λειτουργία loop() εκτελείται µετά την setup() και ό ως δηλώνει και το όνοµά της, εκτελείται συνέχεια. Ουσιαστικά µεταξύ των άγκιστρων της λειτουργίας loop() ρέ ει να το οθετήσουµε το ρόγραµµα ου θέλουµε να εκτελεστεί. Παρακάτω φαίνεται αυτή η δομή: void setup() { //Εδώ γίνονται οι δηλώσεις του προγράµµατος και εκτελείται µια φορά. void loop() { //Εδώ γράφεται το κυρίως πρόγραµµα και εκτελείται επαναλαµβανόµενα Συνδεσμολογία Arduino Uno Το πρώτο στάδιο της υλοποίησης του συστήματος, έπειτα από την επιλογή της πλατφόρμας μικροελεγκτή, ήταν να συνδεθούν οι προς έλεγχο συσκευές και να προγραμματιστεί κατάλληλα ώστε να μας δίνει τα επιθυμητά αποτελέσματα. Τα υλικά που χρησιμοποιήθηκαν ήταν τα εξής: Breadboard 3 Αντιστάσεις (450Ω, 450Ω, 4,71ΚΩ) 2 κόκκινα LEDs (προσομοιώνουν τις συσκευές και θα αντικατασταθούν στη συνέχεια) 1 NTC 10K (Negative Temperature Coefficient Thermistor αισθητήρας θερμοκρασίας) Καλώδια για συνδέσεις Το breadboard ήταν η βάση πάνω στην οποία έγιναν όλες οι συνδεσμολογίες. Τα δύο LED χρησιμοποιήθηκαν αρχικά για να προσομοιώσουν τις προς έλεγχο συσκευές, ενώ το NTC (Negative Temperature Coefficient) χρησιμοποιήθηκε για να διαβάζει τη θερμοκρασία του χώρου σαν μια αναλογική τιμή. Οι δύο ψηφιακές έξοδοι που χρησιμοποιήθηκαν για τις δύο προς έλεγχο συσκευές ήταν τα 7 και 8 digital pins και η αναλογική είσοδος για τη θερμοκρασία, η Analog In 0. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 19

20 Η συγκεκριμένη συνδεσμολογία φαίνεται στο Σχήμα 5. Σχήμα 5. Αρχική Συνδεσμολογία Το κάθε Led (συσκευή προς έλεγχο) συνδέεται σε σειρά με μια αντίσταση των 450Ω και ανάβει όταν η ψηφιακή έξοδος είναι ενεργοποιημένη (5V) ενώ σβήνει όταν η ψηφιακή έξοδος είναι απενεργοποιημένη (0V) (Σχήμα 6, α-β). Το NTC αντίστοιχα συνδέεται σε σειρά με την αντίσταση των 4,71ΚΩ σχηματίζοντας έναν διαιρέτη τάσης, ενώ η αναλογική είσοδος (Analog In 0) συνδέεται παράλληλα με την 4,71ΚΩ ώστε να διαβάζει την αλλαγή της τάσης στα άκρα της όταν αλλάζει η αντίσταση της, ως φυσικό επακόλουθο της αλλαγής της θερμοκρασίας του χώρου (Σχήμα 6, γ). α. β. γ. Σχήμα 6. Ισοδύναμα κυκλώματα Η αντιστοίχιση της μεταβαλλόμενης αντίστασης του NTC σε σχέση με την αλλαγή της θερμοκρασίας του χώρου γίνεται με τύπους οι οποίοι προκύπτουν από την ανάλυση του ισοδύναμου κυκλώματος (Σχήμα 6, γ) καθώς και από το datasheet του NTC (Παράρτημα 3). Το ζητούμενο είναι να εξαχθεί η σχέση που θα συνδέει την αντίσταση του NTC (NTC_Res) με την τιμή που διαβάζει το Arduino στην αναλογική του είσοδο Analog In 0 (RawADC). Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 20

21 Αναλύοντας το ηλεκτρικό κύκλωμα του σχήματος 6,γ, για να υπολογίσουμε την τάση που έχει η αντίσταση των 4.71ΚΩ στα άκρα της χρησιμοποιούμε τη σχέση του διαιρέτη τάσης και έχουμε: 4.71KΩ VR = Vcc (1) 4.71 ΚΩ+ NTC _ Re s Επίσης, η τάση αυτή σε σχέση με την τιμή που διαβάζει η Analog In 0 είναι: RawADC VR = Vcc (2) 1023 Από τις δύο παραπάνω σχέσεις προκύπτει: 4.71KΩ 1023 (1),(2) NTC _ Re s= 4.71 KΩ (3) RawADC Αυτή η τιμή θα πρέπει να αντιστοιχίζεται με μια θερμοκρασία που να αντικατοπτρίζει τη θερμοκρασία του χώρου. Για να γίνει αυτός ο υπολογισμός πρέπει να συμβουλευτούμε τους πίνακες του NTC (Παράρτημα 3). Σύμφωνα λοιπόν με το φυλλάδιο του NTC o τύπος που κάνει αυτή την αντιστοίχηση είναι: Τ = ( A + B ln + C ln + D ln ) (4) NTC _ Re s 2 NTC _ Re s 3 NTC _ Re s 1 NTC _ Re s RRe f RRe f RRe f Όπου: - Α1, Β1, C1, D1 οι τιμές που προκύπτουν από τον πίνακα του NTC 10K (Παράρτημα 3) και - RRef = 10000Ω γιατί το NTC είναι 10ΚΩ Οι τύποι (3) και (4) θα πρέπει να ληφθούν υπόψη κατά τον προγραμματισμό του μικροελεγκτή ώστε να έχουμε τιμές θερμοκρασίας που να ανταποκρίνονται στην πραγματικότητα Προγραμματισμός Arduino Uno Για τον προγραμματισμό του Arduino Uno χρησιμοποιήθηκε η γλώσσα Arduino (Παράρτημα 1). Η φιλοσοφία του προγραμματισμού ήταν: Η επικοινωνία του χρήστη με τον μικροελεγκτή να γίνεται μέσω της σειριακής θύρας (UART), digital pins 0, 1. Ο χρήστης στέλνει ένα πακέτο από Ν bytes που αποτελείται από: Byte 1: 1 ή 0 (Μόνο αναφορά ή και ενέργεια) ή 9 (σύνδεση πρώτη φορά) Byte 2: Το πλήθος των bytes που είναι το password Byte 3- (τιμή του Byte 2)+2: το password Δύο τελευταία Bytes οι ενέργειες που θέλουμε να κάνουμε (0/1 - ON/OFF) Ο μικροελεγκτής αφού επεξεργαστεί το πακέτο αυτό των Ν Bytes, θα πρέπει: - Να ελέγξει το password και αν δεν είναι σωστό να επιστρέψει κατάλληλο μήνυμα. Το password αποθηκεύεται στη μνήμη του μικροελεγκτή και χρησιμοποιείται ώστε να μην αποκτούν πρόσβαση στο σύστημα μη εξουσιοδοτημένοι χρήστες. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 21

22 - Αν γίνει επαλήθευση του password να «δει» αν πρέπει μόνο να στείλει την κατάσταση των εξόδων του, δηλαδή των συσκευών (leds) που ελέγχει, (αναφορά- byte 1= 1 ) ή να εκτελέσει κάποια ενέργεια πρώτα (άναμμασβήσιμο ενός led) και έπειτα να στείλει την κατάσταση των εξόδων του. - Να υπολογίσει την τιμή της θερμοκρασίας που αντιστοιχεί στην αντίσταση του NTC, όπως αναφέρθηκε στην πιο πάνω παράγραφο. Παράδειγμα 1 ο : Ας υποθέσουμε ότι ο χρήστης επιθυμεί να δει μόνο την κατάσταση των συσκευών. Τότε θα πρέπει να στείλει το εξής πακέτο bytes: 14****xx (υποθέτοντας password μήκους 4 bytes). Ο μικροελεγκτής θα αναλύσει το πακέτο, θα κάνει επαλήθευση του password, θα υπολογίσει τη θερμοκρασία και θα στείλει πίσω την κατάσταση των εξόδων του. Συνεπώς θα στείλει: 11#18.4 (Υποθέτουμε ότι τα led είναι αναμμένα και η θερμοκρασία είναι 18.4 ο C). Παράδειγμα 2 ο : Ας υποθέσουμε ότι ο χρήστης επιθυμεί να σβήσει τις δύο συσκευές (Led 1, Led 2). Τότε θα πρέπει να στείλει το εξής πακέτο bytes: 04****00 (υποθέτοντας password μήκους 4 bytes). Ο μικροελεγκτής θα αναλύσει το πακέτο, θα κάνει επαλήθευση του password, θα υπολογίσει τη θερμοκρασία, θα ενεργήσει απενεργοποιώντας τις δύο εξόδους του και θα επιστρέψει την κατάσταση των εξόδων του. Συνεπώς θα στείλει: 00#18.4 (Τα Led έσβησαν και η θερμοκρασία είναι 18.4 ο C) Το σχέδιο (sketch) που γράφτηκε και φορτώθηκε στο Arduino Uno παρατίθεται παρακάτω. Ο κώδικας σχολιάζεται τμηματικά για την κατανόηση του σχεδίου (sketch) από τον αναγνώστη. #include <Arduino.h> // Η ακριβής τιμή της R2 #define R // Τιμή του NTC στους 25 βαθμούς Celcius #define Rn // A, B, C και D σταθερές του NTC. // Παράρτημα 3 #define A #define B #define C #define D //Δήλωση Ι/Ο #define Out1 7 #define Out2 8 #define ADC0 A0 // Δήλωση arrays χαρακτήρων για λήψη- αποστολή δεδομένων & password char received[30]; char transmit[30]; char password[10]; Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 22

23 uint8_t i; uint8_t debug; //Δήλωση συναρτήσεων εγγραφής, αποστολής, υπολογισμού θερμοκρασίας void pin_write(void); void transmit_data(void); double adc2temp(int RawADC); int adc_val=0; Εδώ τελειώνουν οι δηλώσεις σταθερών, μεταβλητών και συναρτήσεων. Πρέπει να σημειωθεί ότι η τιμή της αντίστασης R2 έχει μετρηθεί με πολύμετρο ακριβείας (4712Ω) ώστε η τιμή της να δηλωθεί σωστά στο πρόγραμμα του μικροελεγκτή για ακριβή υπολογισμό της θερμοκρασίας. void setup() { //Απενεργοποίηση led στο pin 13 pinmode(13,output); digitalwrite(13,low); // Αρχικοποίηση επικοινωνίας UART στα 9600 bps: Serial.begin(9600); // Ορισμός Ι/Ο pinmode(out1,output); pinmode(out2,output); pinmode(adc0,input); Το κομμάτι αυτό του προγράμματος εκτελείται μόνο μία φορά κατά την εκκίνηση του μικροελεγκτή. Εδώ αρχικοποιείται η ταχύτητα της επικοινωνίας και ορίζονται ποια pin του μικροελεγκτή θα είναι είσοδοι και έξοδοι. void loop() { //Έλεγχος αν υπάρχουν διαθέσιμα δεδομένα στη UART if (Serial.available() > 0) { i=0; debug=0; //Όσο υπάρχουν διαθέσιμα δεδομένα while (Serial.available() > 0){ received[i] = Serial.read(); i++; debug++; ; received[i]='\0'; Όσο υπάρχουν δεδομένα στη σειριακή είσοδο γεμίζει ο πίνακας received[]. /* received[byte 0: "1": only report "0": action & report "9": check password when connecting byte 1: password_length byte 2 to byte (2+password_length): password byte (2+password_length+1) to byte (2+password_length+1+1): pins data */ E.g. password=1234 Byte: received[ 0/ /1 0/1 ] Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 23

24 //Εξαγωγή του password //ASCII to int e.g. ASCII '2' = (Παράρτημα 2) for (i=0;i<(received[1]-48);i++) { password[i]=received[i+2]; ; password[i]='\0'; Από τον πίνακα received[] εξάγονται μόνο τα bytes που αποτελούν το password και αποθηκεύονται σε έναν άλλο πίνακα password[]. //Έλεγχοι... if (received[0]=='9'){ if ((String) password == "1234") { transmit_data(); else {Serial.println("Wrong Password!");; else if (debug == received[1] ) { if ((String) password == "1234") { if (received[0]=='1') { transmit_data(); else if (received[0]=='0') { //Call function pin_write to control your devices pin_write(); delay(100); //Call the function transmit_data to confirm your status transmit_data(); ; else {Serial.println("Unknown error");; ; ; delay(1000); Η διαδικασία των ελέγχων είναι η πιο σημαντική στον προγραμματισμό του μικροελεγκτή. Ελέγχεται αρχικά το πρώτο byte. Αν αυτό είναι ίσο με «9» σημαίνει ότι γίνεται σύνδεση για πρώτη φορά και τότε γίνεται έλεγχος του password. Αν δεν είναι σωστό ο μικροελεγκτής επιστρέφει κατάλληλο μήνυμα στη σειριακή του θύρα, ενώ στην αντίθετη περίπτωση στέλνει την κατάσταση των εξόδων του. Έπειτα ελέγχεται αν η ποσότητα των λαμβανόμενων bytes (μεταβλητή debug) είναι η σωστή (bytes που αποστέλλονται από τις εφαρμογές του χρήστη: Ν+2, τα δύο επιπλέον bytes προκύπτουν κατά τη χρήση βιβλιοθηκών αποστολής δεδομένων μέσω Internet, που χρησιμοποιούνται για την υλοποίηση των εφαρμογών του τελικού χρήστη). Αν ναι, ξαναελέγχουμε το password για επιπλέον ασφάλεια και ανάλογα με την τιμή του πρώτου byte ( 1 ή 0 ) εκτελούνται οι αντίστοιχες λειτουργίες. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 24

25 //Αποστολή δεδομένων στη σειριακή θύρα void transmit_data (void){ if (digitalread(out1)==high) transmit[0]='1'; else transmit[0]='0'; if (digitalread(out2)==high) transmit[1]='1'; else transmit[1]='0'; transmit[2]='\0'; adc_val=analogread(adc0); Serial.print(transmit); Serial.print("#"); Serial.println(adc_to_temp(adc_val),1); //Εκτέλεση ενεργειών void pin_write () { if (received[received[1]-48+2]=='1') digitalwrite(out1,high); else digitalwrite(out1,low); if (received[received[1]-48+3]=='1') digitalwrite(out2,high); else digitalwrite(out2,low); Οι δύο αυτές συναρτήσεις υλοποιούν τις ενέργειες που εκτελεί ο μικροελεγκτής. Η πρώτη γράφει στη σειριακή θύρα την κατάσταση των εξόδων και την τιμή της θερμοκρασίας, ενώ η δεύτερη δίνει τις εντολές στις αντίστοιχες εξόδους του μικροελεγκτή. //Υπολογισμός θερμοκρασίας σε βαθμούς Celcius double adc_to_temp(int RawADC) { double NTC_Res, celsius; double tmp; // Προσωρινή μεταβλητή. // Υπολογισμός της αντίσταση από την τιμή του ADC. NTC_Res=(( * R2 / RawADC) - R2); tmp = log(ntc_res/rn); tmp = (A+(B*tmp)+(C*tmp*tmp)+(D*tmp*tmp*tmp)); celsius = (1.0/tmp)-273; // Μετατροπή βαθμών Κέλβιν σε Κελσίου. return celsius; Η συνάρτηση αυτή υλοποιεί τους τύπους (3) και (4) σύμφωνα με την τεκμηρίωση του NTC 10Κ. Σημειώνεται ότι στη γλώσσα Arduino η συνάρτηση log() ισοδυναμεί με την ln(). Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 25

26 Αυτό που έχει επιτευχθεί μέχρι τώρα είναι η σωστή επικοινωνία με τον μικροελεγκτή μέσω της σειριακής του θύρας, καθώς και η σωστή λειτουργία του όσον αφορά τον έλεγχο των συσκευών. Δηλαδή, μπορεί κάποιος να ελέγξει, να σβήσει ή να ανάψει, κάποιο Led στέλνοντας τα κατάλληλα bytes μέσω μιας θύρας UART. Εικόνα 8 : Αρχική συνδεσμολογία Το επόμενο βήμα είναι αυτός ο έλεγχος να μην γίνεται από κοντά, αλλά από απόσταση. Το πώς επιτυγχάνεται κάτι τέτοιο αναλύεται παρακάτω. 2.3 Επικοινωνία UART- TCP Module USR- WIFI232-B Ένα από τα πιο σημαντικά βήματα της ανάπτυξης του συστήματος, συνεπώς, αφορούσε το πως θα μπορέσει να γίνει ο έλεγχος όχι από κοντά, αλλά από απόσταση. Δηλαδή ο χρήστης να μην χρειάζεται να είναι στον ίδιο χώρο με τον μικροελεγκτή, αλλά να μπορεί από μακριά να «μιλάει» μαζί του. Στο ερώτημα αυτό ήρθε να δώσει απάντηση το module USR-WIFI232-B, το οποίο αναλαμβάνει να πραγματοποιήσει «διαφανή» επικοινωνία ανάμεσα σε μια UART και σε μια TCP σύνδεση. Με τον όρο «διαφανή επικοινωνία» εννοούμε ότι ο μικροελεγκτής δεν ασχολείται καθόλου με το κομμάτι του δικτύου και απλά προωθεί και λαμβάνει δεδομένα από τη σειριακή του θύρα. Εικόνα 9 : USR-WIFI232-B Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 26

27 Το συγκεκριμένο module συνδέεται εύκολα με το Arduino Uno. Τροφοδοτείται από το board του Arduino με 5V dc και η σειριακή του θύρα συνδέεται με την αντίστοιχη σειριακή του Arduino (digital pins 0, 1). Αυτή η σύνδεση αφορά το κομμάτι του υλικού, ενώ το κομμάτι των ρυθμίσεων (λογισμικού) πρέπει να υλοποιηθεί μέσα από το web interface του module. Η σύνδεση στο web interface του USR-WIFI232-B πραγματοποιείται ως εξής: - Τροφοδοτούµε το USR-WIFI232-B - Αναζητούμε διαθέσιμα ασύρματα δίκτυα - Εντοπίζουμε το HF-A11x_AP - Συνδεόμαστε σε αυτό με όνομα χρήστη και συνθηματικό: admin, admin - Παραμετροποιούμε το module Οι ρυθμίσεις που θα πρέπει να γίνουν μαζί με τα κατάλληλα screenshots φαίνονται παρακάτω: 1. Στην καρτέλα Mode Selection επιλέγεται: - Σε τι mode θα πρέπει να λειτουργεί η συσκευή. Επιλέγεται station mode γιατί πρέπει να είναι συνδεδεμένη σαν μεμονωμένος σταθμός στο modem/router του εκάστοτε σπιτιού. Screenshot 1: Mode Selection Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 27

28 2. Στην καρτέλα STA Interface Settings επιλέγεται: - Το SSID του modem/router στο οποίο πρέπει να συνδεθεί το USR-WIFI232-B - Η ασφάλεια που έχει το επιθυμητό δίκτυο - Το password του δικτύου, καθώς και - Το όνομα που θα έχει η συσκευή στο δίκτυο (HF- A11) Screenshot 2: STA Interface Settings Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 28

29 3. Τέλος στην καρτέλα Application Settings επιλέγεται: - Η ταχύτητα επικοινωνίας. Προσοχή! Θα πρέπει να είναι ίδια με την ταχύτητα που έχει οριστεί κατά τον προγραμματισμό του Μικροελεγκτή (9600bps). - Η Λειτουργία του module σαν server, στο TCP πρωτόκολλο, στην 2222 πόρτα (η πόρτα που θα επιλεγεί θα πρέπει να είναι η ίδια με αυτή που θα γίνει το port forwarding στο modem/router) - Tο module να επιτρέπει μόνο μια σύνδεση. Screenshot 3: Application Settings Με τις πιο πάνω ρυθμίσεις επιτυγχάνεται διαφανής επικοινωνία μεταξύ του μικροελεγκτή και μιας TCP σύνδεσης. Το επόμενο βήμα είναι η προώθηση των πακέτων σε συγκεκριμένη θύρα (Port Forwarding), καθώς και ένα σταθερό hostname DNS ώστε να μπορεί κάποιος να επικοινωνεί με το modem/router χωρίς να χρειάζεται να γνωρίζει την IP του. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 29

30 2.3.1 Ρυθμίσεις modem/router Οι ρυθμίσεις που πρέπει να γίνουν σε αυτό το σημείο εξαρτώνται βέβαια από το εκάστοτε modem/router. Στο σύστημα της εργασίας χρησιμοποιήθηκε ο router της Thomson TG585 v8, μέσα από το web interface του οποίου θα πρέπει να γίνει η κατάλληλη προώθηση των πακέτων, καθώς και η τοποθέτηση ενός hostname DNS. 1. Προώθηση πακέτων (Port Forwarding) Θα πρέπει οποιοδήποτε πακέτο αναφέρεται στην πόρτα 2222 (ίδια με την πόρτα που ρυθμίστηκε το USR-WIFI232-B) να δρομολογείται στο HF-A11. Παρατίθεται ενδεικτικά ένα screenshot, επειδή η διαδικασία του port forwarding ποικίλει από router σε router. Screenshot 4: Port Forwarding 2. Hostname DNS Το hostname DNS χρειάζεται για να έχουμε πρόσβαση από μακριά στο modem/router του εκάστοτε σπιτιού χωρίς να πρέπει να γνωρίζουμε κάθε φορά την IP του. Έτσι λοιπόν θα πρέπει να γίνει εγγραφή σε έναν πάροχο Hostname DNS. Η εγγραφή για τη συγκεκριμένη εργασία έγινε στο DtDNS με ένα απλό registration και το hostname που δόθηκε ήταν: stilmartin.flnet.org Αφού γίνει η εγγραφή, αυτό το hostname θα πρέπει να περαστεί στον router μέσω του web interface του. Στο παρακάτω screenshot φαίνεται η διαδικασία αυτή. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 30

31 Screenshot 5: Hostname DNS Η επικοινωνία πλέον έχει επιτευχθεί από άκρη σε άκρη. Οποιοσδήποτε χρήστης με πρόσβαση στο internet μπορεί να εγκαθιδρύσει μια σύνδεση στο socket stilmartin.flnet.org:2222 και να επικοινωνήσει μέσω του HF-A11 με τον μικροελεγκτή και να ελέγξει τις συσκευές που επιθυμεί. Το σύστημα πλέον έχει την ακόλουθη μορφή: Εικόνα 10 : Τελική συνδεσμολογία Πρέπει να σημειωθεί ότι το Led της ψηφιακής εξόδου 8 του μικροελεγκτή έχει αντικατασταθεί από ένα ρελέ το οποίο διεγείρεται από τα 5V του μικροελεγκτή και ανάβει ένα φωτιστικό χώρου. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 31

32 2.4 Εφαρμογές συσκευών τελικού χρήστη Το τελικό στάδιο της υλοποίησης του συστήματος είχε σαν στόχο να γίνει προσιτή προς τον τελικό χρήστη η επικοινωνία με τον μικροελεγκτή. Ο χρήστης, δηλαδή, πρέπει να τρέχει κάποια εφαρμογή, είτε από τον υπολογιστή του, είτε από το κινητό του τηλέφωνο και να ελέγχει τις συσκευές του σπιτιού του. Αναπτύχθηκαν δύο εφαρμογές για αυτόν τον σκοπό, μία για χρήστες προσωπικού υπολογιστή με λειτουργικό της Microsoft και μια για χρήστες κινητού τηλεφώνου με λειτουργικό Android Εφαρμογή για Η/Υ Για τον προγραμματισμό της εφαρμογής χρησιμοποιήθηκε η πλατφόρμα της Microsoft, Visual Studio Η διεπαφή χρήστη και Η/Υ φαίνεται στην Εικόνα 11. Εικόνα 11 : Διεπαφή χρήστη- Η/Υ Ο χρήστης πληκτρολογεί το hostname, την πόρτα και το password, συνδέεται και έπειτα ελέγχει τις δύο συσκευές, ενώ βλέπει τη θερμοκρασία που έχει το δωμάτιο στο οποίο έχει τοποθετηθεί ο αισθητήρας. Η θερμοκρασία έχει προγραμματιστεί να αποστέλλεται κάθε 10 δευτερόλεπτα. Αυτό επιτυγχάνεται με έναν timer που τρέχει κάθε 10 sec και στέλνει ένα πακέτο Ν Bytes με το πρώτο byte να έχει την τιμή «1», δηλαδή, ζητά από τον μικροελεγκτή να στείλει μόνο αναφορά χωρίς να εκτελέσει κάποια άλλη ενέργεια. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 32

33 Ο κώδικας που γράφτηκε στο Visual Studio 2010 παρατίθεται παρακάτω. Ο κώδικας σχολιάζεται τμηματικά για την καλύτερη κατανόηση του από τον αναγνώστη. Imports System.IO Imports System.Net.Sockets Imports System.Text Imports System.Text.RegularExpressions Σε αυτό το τμήμα εισάγονται οι απαραίτητες βιβλιοθήκες. 'Ορισμός μεταβλητών. Public Class Form1 Dim clientsocket As New System.Net.Sockets.TcpClient() Dim clientstream As NetworkStream Dim outdata As Byte() Dim Temperature As String 'To textbox2 (πόρτα) θα πρέπει να δέχεται μόνο αριθμούς από 1 μέχρι Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress If Not Char.IsDigit(e.KeyChar) And e.keychar <> ChrW(Keys.Back) Then e.handled = True End Sub Public Sub Connect() 'Αρχικοί έλεγχοι για συμπλήρωση του socket και του password. If TextBox1.Text = "" Or TextBox2.Text = "" Then MsgBox("Please, enter a Host Name and a Port Number.", MsgBoxStyle.Critical, "Error...") Exit Sub End If If TextBox3.Text = "" Then MsgBox("Please, enter a password in order to connect.", MsgBoxStyle.Critical, "Error...") Exit Sub End If 'Σύνδεση στο επιθυμητό socket. Try clientsocket = New System.Net.Sockets.TcpClient() clientsocket.connect(textbox1.text, TextBox2.Text) Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Connection Error...") End Try If clientsocket.connected Then clientstream = clientsocket.getstream() Button1.Enabled = False Button2.Enabled = True TextBox1.Enabled = False TextBox2.Enabled = False TextBox3.Enabled = False Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 33

34 'Αποστολή δεδομένων για πρώτη φορά, πρώτο byte 9, η συνάρτηση Environment.NewLine() 'εισάγει τα 2 επιπλέον byte που προβλέφθηκαν κατά τον προγραμματισμό του μικροελεγκτή. outdata = System.Text.Encoding.ASCII.GetBytes("9" + TextBox3.TextLength.ToString + TextBox3.Text + "00" + Environment.NewLine()) clientstream.write(outdata, 0, outdata.length) clientstream.flush() 'Ενεργοποίηση μετρητών. Timer1.Enabled = True Timer2.Enabled = True End If End Sub Η συνάρτηση connect() κάνει τη σύνδεση στο hostname:xxxx, στέλνει ένα πακέτο 10 bytes όπου το πρώτο byte είναι «9» (σύνδεση για πρώτη φορά) για σωστή αυθεντικοποίηση και ενεργοποιεί τους timers. Public Sub Disconnect() 'Κλείσιμο της σύνδεσης. Try clientsocket.close() Button2.Enabled = False Button1.Enabled = True Button3.Enabled = False Button4.Enabled = False Button7.Enabled = False Button8.Enabled = False PictureBox1.Image = My.Resources.lamp_off PictureBox2.Image = My.Resources.lamp_off TextBox1.Enabled = True TextBox2.Enabled = True TextBox3.Enabled = True Me.BackColor = Color.DarkGray Label3.Text = "-" & " C" Timer1.Enabled = False Timer2.Enabled = False Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Connection Error...") End Try End Sub Η συνάρτηση Disconnect() κάνει τη αποσύνδεση από το hostname:xxxx και απενεργοποιεί τα κατάλληλα buttons και timers. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Disconnect() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Connect() End Sub Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Disconnect() End End Sub Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 34

35 Το πάτημα των κουμπιών ενεργοποιεί αντίστοιχα τις απαραίτητες λειτουργίες: Button1: Connect, Button2: Disconnect, Button5: Exit Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click If clientsocket.connected Then If (Button4.Enabled = False) Then outdata = System.Text.Encoding.ASCII.GetBytes("0" + TextBox3.TextLength.ToString + TextBox3.Text + "11" + Environment.NewLine()) clientstream.write(outdata, 0, outdata.length) clientstream.flush() Else outdata = System.Text.Encoding.ASCII.GetBytes("0" + TextBox3.TextLength.ToString + TextBox3.Text + "10" + Environment.NewLine()) clientstream.write(outdata, 0, outdata.length) clientstream.flush() End If End If End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click If clientsocket.connected Then If (Button3.Enabled = False) Then outdata = System.Text.Encoding.ASCII.GetBytes("0" + TextBox3.TextLength.ToString + TextBox3.Text + "11" + Environment.NewLine()) clientstream.write(outdata, 0, outdata.length) clientstream.flush() Else outdata = System.Text.Encoding.ASCII.GetBytes("0" + TextBox3.TextLength.ToString + TextBox3.Text + "01" + Environment.NewLine()) clientstream.write(outdata, 0, outdata.length) clientstream.flush() End If End If End Sub Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click If clientsocket.connected Then If (Button3.Enabled = False) Then outdata = System.Text.Encoding.ASCII.GetBytes("0" + TextBox3.TextLength.ToString + TextBox3.Text + "10" + Environment.NewLine()) clientstream.write(outdata, 0, outdata.length) clientstream.flush() Else outdata = System.Text.Encoding.ASCII.GetBytes("0" + TextBox3.TextLength.ToString + TextBox3.Text + "00" + Environment.NewLine()) clientstream.write(outdata, 0, outdata.length) clientstream.flush() End If End If End Sub Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 35

36 Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click If clientsocket.connected Then If (Button4.Enabled = False) Then outdata = System.Text.Encoding.ASCII.GetBytes("0" + TextBox3.TextLength.ToString + TextBox3.Text + "01" + Environment.NewLine()) clientstream.write(outdata, 0, outdata.length) clientstream.flush() Else outdata = System.Text.Encoding.ASCII.GetBytes("0" + TextBox3.TextLength.ToString + TextBox3.Text + "00" + Environment.NewLine()) clientstream.write(outdata, 0, outdata.length) clientstream.flush() End If End If End Sub Εδώ καθορίζονται οι λειτουργίες των κουμπιών που ελέγχουν τις δύο συσκευές: Button3: On device 1 Button4: On device 2 Button7: Off device 1 Button8: Off device 2 'Πρώτος μετρητής Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim temp() As Char Dim RegEx_0 As New Regex("^[0-1][0-1]") 'Έγκυρα δεδομένα 00,01,10,11. Dim Regex_1 As New Regex("^Wrong Password!") 'Έγκυρα δεδομένα Dim Regex_2 As New Regex("^Unknown error") 'Έγκυρα δεδομένα Dim tempstr As String Dim Index As Integer If clientsocket.available Then Dim Ins As New StreamReader(clientStream)'Διάβασμα δεδομένων tempstr = Ins.ReadLine temp = tempstr If Not RegEx_0.IsMatch(tempstr) Then If Regex_1.IsMatch(tempstr) Then MsgBox("Check the password and connect again.", MsgBoxStyle.Critical, tempstr) Disconnect() ElseIf Regex_2.IsMatch(tempstr) Then MsgBox("Unknown error. Try to connect again.", MsgBoxStyle.Critical, "Error...") Disconnect() End If Exit Sub End If Me.BackColor = Color.LightSteelBlue 'Αλλαγή χρώματος φόντου If (temp(0) = "0") Then PictureBox1.Image = My.Resources.lamp_off Button3.Enabled = True Button7.Enabled = False Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 36

37 Else PictureBox1.Image = My.Resources.lamp_on Button7.Enabled = True Button3.Enabled = False End If If (temp(1) = "0") Then PictureBox2.Image = My.Resources.lamp_off Button4.Enabled = True Button8.Enabled = False Else PictureBox2.Image = My.Resources.lamp_on Button8.Enabled = True Button4.Enabled = False End If Index = tempstr.indexof("#") If (Index = -1) Then Temperature = "-" Else Temperature = tempstr.substring(index + 1) End If Label3.Text = Temperature & " C" End If End Sub Ο timer 1 τρέχει κάθε ένα δευτερόλεπτο και εκτελεί τις βασικότερες λειτουργίες του προγράμματος. Ελέγχει τα δεδομένα που αποστέλλονται από τον μικροελεγκτή και τα παρουσιάζει στον τελικό χρήστη. Ενεργοποιεί/ απενεργοποιεί τα κουμπιά. Εμφανίζει ή όχι τους λαμπτήρες και τέλος παρουσιάζει τη θερμοκρασία. 'Δεύτερος μετρητής Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick If clientsocket.connected Then outdata = System.Text.Encoding.ASCII.GetBytes("1" + TextBox3.TextLength.ToString + TextBox3.Text + "00" + Environment.NewLine()) clientstream.write(outdata, 0, outdata.length) clientstream.flush() End If End Sub End Class Ο timer 2 τρέχει κάθε δέκα δευτερόλεπτα και προκαλεί τη λειτουργία της αναφοράς, δηλαδή στέλνει στο μικροελεγτή ένα πακέτο 10 bytes με το πρώτο byte ίσο με «1» ώστε ο μικροελεγκτής να επιστρέψει την κατάσταση των εξόδων του χωρίς άλλη ενέργεια. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 37

38 2.4.1 Εφαρμογή για κινητό τηλέφωνο Για χρήστες με συσκευές με λειτουργικό Android χρησιμοποιήθηκε η πλατφόρμα Basic 4 Android. Ο κώδικας που υλοποιήθηκε έχει ακριβώς την ίδια φιλοσοφία με αυτόν της εφαρμογής για προσωπικό υπολογιστή. Η διεπαφή χρήστη - κινητού τηλεφώνου φαίνεται στην Εικόνα 12. Εικόνα 12 : Διεπαφή χρήστη- κινητού τηλεφώνου Ο κώδικας της εφαρμογής παρατίθεται στο Παράρτημα 4. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 38

39 Κεφάλαιο 3 ο Συμπεράσματα Ο αρχικός στόχος που τέθηκε κατά την υλοποίηση του συστήματος επιτεύχθηκε. Υλοποιήθηκε, δηλαδή, ένα σύστημα οικιακού αυτοματισμού πλήρως λειτουργικό. Ο τελικός χρήστης, έχοντας πρόσβαση στο internet, έχει τη δυνατότητα να ελέγχει οικιακές συσκευές. Επιπλέον, το σύστημα είναι πλήρως επεκτάσιμο. Για τη συγκεκριμένη εφαρμογή χρησιμοποιήθηκε σαν συσκευή προς έλεγχο ένα φωτιστικό χώρου. Με τον ίδιο τρόπο θα μπορούσε να ελέγχθει οποιαδήποτε οικιακή συσκευή που συνδέεται στα 220V του δικτύου της Δ.Ε.Η, δηλαδή, σε μια οικιακή πρίζα. Οι δυνατότητες του συστήματος βέβαια δεν περιορίζονται στον έλεγχο μόνο μίας συσκευής, αφού ο μικροελεγκτής διαθέτει πλήθος γραμμών εισόδου/εξόδου, τόσο ψηφιακών όσο και αναλογικών. Οι αναλογικές είσοδοι μπορούν να χρησιμοποιηθούν είτε σαν ψηφιακές I/O, οπότε έτσι μπορούν να ελεγχθούν και επιπλέον συσκευές, είτε σαν είσοδοι αισθητήρων αναλογικών μεγεθών που θα επιτρέπουν στο χρήστη να ελέγχει αναλογικά μεγέθη όπως πίεση, υγρασία, φωτεινότητα κ.τ.λ. Το σύστημα, συνεπώς, μπορεί να τροποποιηθεί και να ικανοποιήσει διαφορετικές ανάγκες χρηστών. Η τροποποίηση αυτή περιλαμβάνει τρία στάδια. Το στάδιο της αλλαγής της συνδεσμολογίας του μικροελεγκτή με τις συσκευές προς έλεγχο. Το στάδιο της τροποποίησης του σχεδίου (sketch) που θα φορτωθεί στον μικροελεγκτή, καθώς και το στάδιο της τροποποίησης των τελικών εφαρμογών του χρήστη. Στο σημείο αυτό θα πρέπει να επισημανθεί ότι οι κώδικες που έχουν γραφεί σίγουρα δεν είναι βέλτιστοι οπότε κάποιος μπορεί να τους τροποποιήσει και να έχει καλύτερα αποτελέσματα. Επιπλέον, θα πρέπει να επισημανθεί και να εξεταστεί το θέμα της ασφάλειας. Η ασφάλεια της επικοινωνίας δεν αποτέλεσε αντικείμενο της παρούσας υλοποίησης. Σίγουρα ένας ειδικός στην ασφάλεια των επικοινωνιών θα βρει τρωτά σημεία στον τομέα της επικοινωνίας, όπως για παράδειγμα το ότι το password ταξιδεύει «φανερά» στη σύνδεση με πιθανό κίνδυνο υποκλοπής. Θα πρέπει παρόλα αυτά να τονιστεί ότι οι προαναφερθείσες βελτιώσεις και επεκτάσεις δεν αυξάνουν (παρά μόνο ελάχιστα ίσως) το κόστος του συστήματος, το οποίο δεν ξεπέρασε τα 70, χρησιμοποιώντας παντού καινούρια υλικά. Αυτός ήταν και ένας επιπλέον στόχος της παρούσας διπλωματικής, η ανάπτυξη δηλαδή ενός πλήρως λειτουργικού συστήματος οικιακού αυτοματισμού με το μικρότερο δυνατό κόστος. Συνοψίζοντας, η βελτίωση των κωδίκων που έχουν γραφεί (π.χ. μέσω της ανάπτυξης ενός ολοκληρωμένου πρωτοκόλλου επικοινωνίας των συσκευών του τελικού χρήστη με τον μικροελεγκτή), καθώς και το θέμα της ασφάλειας της επικοινωνίας αποτελούν τα σημεία μελλοντικής ανάπτυξης του συστήματος που Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 39

40 υλοποιήθηκε. Έχοντας ως βάση τον επιτυχημένο απομακρυσμένο έλεγχο συσκευών που παρέχει το συγκεκριμένο σύστημα, μπορεί πλέον κάποιος να το επεκτείνει, να το βελτιώσει και σίγουρα να το κάνει πιο ασφαλές με απώτερο στόχο τη λειτουργικότητα, τη βελτίωση της καθημερινότητας του ανθρώπου και τελικά την πρόοδο της επιστήμης. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 40

41 1. Γλώσσα Arduino Παραρτήματα Δομές Λειτουργία Σύνταξη - Παράδειγμα Βασικές Δομές setup() Η συνάρτηση setup() καλείται στην αρχή κάθε σχεδίου. Εκεί αρχικοποιούνται οι μεταβλητές, οι λειτουργίες των pins, οι βιβλιοθήκες κ.τ.λ. Εκτελείται μόνο μια φορά ή κάθε φορά που γίνεται reset. void setup() { Serial.begin(9600); pinmode(buttonpin, INPUT); loop() Η λειτουργία loop() εκτελείται μετά τη setup(), και όπως δηλώνει και το όνομά της, εκτελείται συνέχεια και ουσιαστικά εκεί βρίσκεται το πρόγραμμα που θέλουμε να εκτελεστεί. void loop() { if (digitalread(buttonpin)==high) serialwrite('h'); else serialwrite('l'); Δομές Ελέγχου if else Δομή επιλογής. If (pinfiveinput< 500) { // action A else { // action B switch case Δομή επιλογής ανάλογα με την τιμή μιας μεταβλητής. Σε κάθε περίπτωση χρησιμοποιούμε την εντολή break για να τερματίσει η δομή. switch (var) { case 1: //εκτέλεση εντολών όταν var=1 break; case 2: //εκτέλεση εντολών όταν var=2 break; default: // Σε οποιαδήποτε άλλη περίπτωση for Δομή επανάληψης με γνωστό αριθμό επαναλήψεων. for (int i=0; i <= 255; i++){ analogwrite(pwmpin, i); delay(10); Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 41

42 while Δομή επανάληψης εκτελείται ο βρόχος συνέχεια έως ότου η συνθήκη που ακολουθεί τη while να γίνει ψευδής (false). do while Δομή επανάληψης, ο βρόχος εκτελείται τουλάχιστον μία φορά γιατί η συνθήκη ελέγχεται στο τέλος του βρόχου. var = 0; while(var < 200){ // εκτελούνται οι εντολές έως ότου η var να γίνει µεγαλύτερη από το 200 var++; do { delay(50); x = readsensors(); while (x < 100); break Χρησιμοποιείται για την έξοδο από ένα βρόχο (for, while, do..while) ή από μια switch case παρακάμπτοντας την κανονική εκτέλεση των εντολών. for (x = 0; x < 255; x ++) { digitalwrite(pwmpin, x); Sens=analogRead(sensorPin); If (sens > threshold){ x = 0; break; delay(50); continue Χρησιμοποιείται για την παράκαμψη μιας επανάληψης ενός βρόχου και μεταπήδηση στην επόμενη επανάληψη. for (x = 0; x < 255; x ++) { if (x > 40 && x < 120){ // εδώ γίνεται η µεταπήδηση στις τιµές 40 έως 120 continue; digitalwrite(pwmpin, x); Delay(50); return Τερματίζει μια συνάρτηση ή επιστρέφει μια τιμή σε μια συνάρτηση που έχει κληθεί (τερματίζοντας την). int checksensor(){ if (analogread(0) > 400) { return 1; else{ return 0; goto Μεταφέρει τη ροή του προγράμματος σε άλλο σημείο χρησιμοποιώντας ετικέτες. if (analogread(0) > 250){ goto bailout; // εντολές... bailout: Σύμβολα συντακτικού ;(ερωτηµατικό) Χρησιμοποιείται στο τέλος μιας εντολής. int a = 13; {(άγκιστρα) Περικλείουν ένα σύνολο εντολών. Ένα άγκιστρο όταν ανοίγει θα πρέπει κάπου να κλείνει. if (boolean expression) { statement(s) Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 42

43 //(σχόλιο µιας γραµµής) Εισάγεται από τον προγραμματιστή για ευκολία ανάγνωσης του σχεδίου. x = 5;//Εδώ µπορεί να γράψει ότι θέλει ο προγραµµατιστής. /* */ (σχόλιο ολλα λών γραµµών) Ότι περικλείεται μέσα σε /* */ αποτελεί σχόλιο, όσο μεγάλο σε έκταση και αν είναι. /* Ότι είναι γραµµένο εδώ αποτελεί σχόλιο if (gwb == 0){ x = 3; Μέχρι να τελειώσει το σχόλιο*/ #define Με τη #define δηλώνονται στην αρχή του σχεδίου οι σταθερές που δεν θα αλλάξουν τιμή σε όλη τη διάρκεια της εκτέλεσης του σχεδίου. #define ledpin 3 #include Χρησιμοποιείται για να δηλώνονται στο σχέδιο διάφορες βιβλιοθήκες. #include <avr/pgmspace.h> Αριθμητικοί Τελεστές = (ίσον) Αποθηκεύει το περιεχόμενο της δεξιάς αριθμητικής παράστασης στην αριστερή μεταβλητή. senval = analogread(0); + (συν) Πράξη πρόσθεσης. y = y + 3; - (µείον) Πράξη αφαίρεσης. x = x - 7; * (αστεράκι) Πράξη πολλαπλασιασμού. i = j * 6; /(κάθετος) Πράξη διαίρεσης. r = r / 5; %(ε ί τοις εκατό) Υπόλοιπο διαίρεσης, modulo. x = 7 % 5;// Το x θα κρατήσει το υπόλοιπο της διαίρεσης, δηλαδή 2 Τελεστές σύγκρισης == Έλεγχος ισότητας δύο μεταβλητών x == y (αν x είναι ίσο µε y)!= Έλεγχος μη ισότητας δύο μεταβλητών x!= y (αν x όχι ίσο µε y) < Μικρότερο από x<y (x µικρότερο από y) > Μεγαλύτερο από x > y (x µεγαλύτερο από y) <= Μικρότερο ή ίσο από x <= y (x µικρότερο ή ίσο από y) >= Μεγαλύτερο ή ίσο από x>= y(xµεγαλύτερο ή ίσο από y) Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 43

44 Τελεστές Boolean && Λογικό «και» (AND) if (x == HIGH && y == HIGH) { //... Λογικό «ή» (OR) if(x > 0 y > 0) { //...! Λογικό «όχι» (NOT) if (!x) { //... Τελεστές Bitwise Οι τελεστές bitwise κάνουν τους υπολογισμούς τους bit προς bit & Bitwise «και» (AND) int a = 92;// int b = 101;// intc = a&b;// αποτέλεσµα: ή 68 στοδεκαδικό. Bitwise «ή»(or) int a = 92;// int b = 101;// intc = a b;// αποτέλεσµα: ή 125 στο δεκαδικό. ^ Bitwise (XOR) int x = 12;// 1100 int y = 10;// 1010 intz = x ^ y;//αποτέλεσµα: 0110 ή 6 στο δεκαδικό. ~ Bitwise «όχι» (NOT) int a = 103;// int b = ~a;// << Αριστερή ολίσθηση bits int a = 5;// 101 intb = a<< 3;// µετακίνηση των bits 3 θέσεις αριστερά. >> Δεξιά ολίσθηση bits intx = 10;// 1010 inty = x>>3;// 1 µετακίνηση των bits 3 θέσεις δεξιά. Σύνθετοι Τελεστές ++ /-- Αύξηση/μείωση της τιμής μιας μεταβλητής κατά 1. Αν οι τελεστές τοποθετηθούν πριν τη μεταβλητή (++x), πρώτα αυξάνεται η μεταβλητή και μετά χρησιμοποιείται. Ενώ αν οι τελεστές τοποθετηθούν μετά τη μεταβλητή (x++), πρώτα χρησιμοποιείται η μεταβλητή και μετά αυξάνεται. x = 2; y = ++x; //το x γίνεται 3, το y γίνεται και αυτό 3 y = x--; // το x γίνεται 2, αλλά το y παραµένει 3 Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 44

45 += Ισοδυναμεί με: x+= => x= x + x = 2; x += 4;// το x γίνεται 6 -= Ισοδυναμεί με: x- = => x = x - x = 6; x -= 3;// το x γίνεται 3 *= Ισοδυναμεί με: x* = => x = x * x = 3; x *= 10;// το x γίνεται 30 /= Ισοδυναμεί με: x/ = => x = x / x = 30; x /= 2;// το x γίνεται 15 &= Ισοδυναμεί με: x& = => x = x & Χρησιμοποιείται όταν θέλουμε να μηδενίσουμε κάποια συγκεκριμένα bits μιας μεταβλητής. = Ισοδυναμεί με: x = => x = x Χρησιμοποιείται όταν θέλουμε να θέσουμε με 1 κάποια συγκεκριμένα bits μιας μεταβλητής. //θέλουµε να µηδενίσουµε τα 2 πρώτα bit mybyte = ; mybyte &= B //το αποτέλεσµα είναι B ; //θέλουµε να θέσουµε 1 στα 2 πρώτα bits mybyte = B ; mybyte = B //το αποτέλεσµα είναι B ; Μεταβλητές Σταθερές HIGH/LOW Όταν διαβάζεται ή γράφεται η τιμή ενός digital pin, υπάρχουν δύο δυνατές τιμές που μπορεί να πάρει: η HIGH και η LOW. true/false Λογικές σταθερές για να εκφραστεί η «αλήθεια» ή το «ψέμα». Ακέραιες σταθερές Αριθμοί που χρησιμοποιούνται ως σταθερές σε όλο το σχέδιο. Τύποι δεδομένων void Χρησιμοποιείται για τη δήλωση συναρτήσεων. Οι συναρτήσεις αυτές δεν επιστρέφουν καμιά τιμή. void setup() { //... boolean Μία Boolean μεταβλητή κρατά μια από τις τιμές true ή false. Κάθε Boolean μεταβλητή καταλαμβάνει 1 byte μνήμης. Boolean running = false; Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 45

46 char Μία μεταβλητή char κρατά έναν χαρακτήρα. Οι χαρακτήρες αποθηκεύονται σαν αριθμοί με πρόσημο από -128 έως 127 (σύμφωνα με τον κώδικα ASCII). Καταλαμβάνει 1 byte μνήμης. Βλέπε Παράρτημα 2. char mychar = 'A'; char mychar = 65; // είναι και τα δύο ισοδύναµα unsigned char Τύπος char χωρίς πρόσημο (κωδικοποιεί αριθμούς από 0 έως 255). Καταλαμβάνει 1 byte μνήμης. unsigned char mychar = 240; byte Μία μεταβλητή byte αποθηκεύει έναν αριθμό χωρίς πρόσημο 8bits από το 0 έως 255 (ίδιο με unsigned char). byte b = B10010; int Μία μεταβλητή int αποθηκεύει ακέραιους αριθμούς. Καταλαμβάνει 2 bytes στη μνήμη. Το εύρος των ακεραίων είναι από -32,768 έως 32,767. int ledpin = 13; unsigned int Μια τέτοια μεταβλητή αποθηκεύει ακεραίους αριθμούς χωρίς πρόσημο. Καταλαμβάνει 2 bytes στη μνήμη. Το εύρος των ακεραίων είναι από 0 έως 65,535. unsigned int ledpin = 13; word Μία μεταβλητή word αποθηκεύει έναν 16bit αριθμό χωρίς πρόσημό από 0 έως 65,535, όπως και η unsigned int. Word w = 10000; long Χρησιμοποιείται για την αποθήκευση αριθμών των 32bits (4 bytes) από -2,147,483,648 έως 2,147,483,647. long speedoflight = L; // το L στο τέλος του αριθµού δηλώνει ότι πρόκειται για Long format. unsigned long Χρησιμοποιείται για την αποθήκευση αριθμών χωρίς πρόσημο των 32 bits (4 bytes) από 0 έως 4,294,967,295. unsigned long time; time = millis(); float Μια μεταβλητή τύπου float αυτή αποθηκεύει αριθμούς με υποδιαστολή. Χρησιμοποιεί 32bits (4 bytes). Έχει 6-7 ψηφία ακρίβειας δεκαδικών. double Αποθηκεύει δεκαδικούς αριθμούς. Χρησιμοποιεί 32bits (4 bytes). Διαφέρει με τη float στην ακρίβεια των δεκαδικών. float sensorcalbrate = 1.117; double sensor = 22.91; Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 46

47 string - char array Χρησιμοποιείται για την αποθήκευση strings. Τα strings αποθηκεύονται σαν πίνακες (array). Ένας χαρακτήρας τοποθετείται σε μονά εισαγωγικά (... ), ενώ πολλοί χαρακτήρες σε διπλά εισαγωγικά (.. ). Στο τέλος ενός string πρέπει να τοποθετείται το κενό (null-\0) για καλύτερη χρησιμοποίηση της μνήμης. Char Str2[8]={ a, r, d, u, I, n, o ; char Str3[8]={ a, r, d, u, I, n, o, \0 ; char Str4[ ] = arduino ; char Str5[8] = arduino ; char Str6[15] = arduino ; //όλες οι δηλώσεις είναι αποδεκτές String object Η κλάση String μας επιτρέπει να διαχειριζόμαστε τα strings με διαφορετικό και πιο εύκολο τρόπο από την char. Βέβαια χρησιμοποιεί περισσότερη μνήμη αλλά παρέχει μεγάλη ευκολία. Υπάρχουν ειδικές συναρτήσεις για τη διαχείριση των strings. //Συναρτήσεις για strings String(), charat(), compareto() concat(), endswith(),equals() equalsignorecase(), getbytes() indexof(), lastindexof(), length(), replace(),setcharat() startswith(), substring() tochararray(), tolowercase() touppercase(), trim() array Πρόκειται για μια συλλογή από μεταβλητές στις οποίες έχουμε πρόσβαση χρησιμοποιώντας απλά ένα δείκτη. Είναι το ίδιο όπως σε κάθε γλώσσα προγραμματισμού όπως στη C. int myints[6]; int mypins[] = {2, 4, 8, 3, 6; int mysensvals[6]={2,4,- 8,3,2; char message[6] = "hello"; Μετατροπές char() Μετατρέπει μια τιμή σε τύπο δεδομένων char. Σύνταξη: char(x) x: µια οποιαδήποτε τιµή επιστρέφει:char byte() Μετατρέπει μια τιμή σε τύπο δεδομένων byte. Σύνταξη: byte(x) x: µια οποιαδήποτε τιµή επιστρέφει: byte int() Μετατρέπει μια τιμή σε τύπο δεδομένων int. Σύνταξη: int(x) x: µια οποιαδήποτε τιµή επιστρέφει:int word() Μετατρέπει μια τιμή σε τύπο δεδομένων word ή δημιουργεί μια μεταβλητή word από 2 bytes. Σύνταξη: word(x), word(h,l) x: µια οποιαδήποτε τιµή h: το υψηλότερης τάξης byte l: το χαµηλότερο τάξης byte επιστρέφει: word Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 47

48 long() Μετατρέπει μια τιμή σε τύπο δεδομένων long. Σύνταξη: long(x) x: µια οποιαδήποτε τιµή επιστρέφει:long float() Μετατρέπει μια τιμή σε τύπο δεδομένων float. Σύνταξη: float(x) x: µια οποιαδήποτε τιµή επιστρέφει:float Εμβέλεια μεταβλητών Στη γλώσσα του Arduino οι μεταβλητές που χρησιμοποιούμε έχουν μια ιδιότητα που ονομάζεται scope. Αντιστοιχεί στην εμβέλεια μιας μεταβλητής, προσδιορίζεται από το σημείο δήλωσης αυτής. int gpwmval;// κάθε συνάρτηση µπορεί να βλέπει αυτή τη µεταβλητή. void setup() { //... void loop() { int i;// η "i" ισχύει µόνο µέσα στο "loop" for (int j = 0; j <100; j++){ // η j ισχύει µόνο για το βρόχο for static Χρησιμοποιείται για να δηλωθούν μεταβλητές οι οποίες θα είναι ορατές μόνο από μια συνάρτηση. Μια static μεταβλητή διατηρεί τα δεδομένα της μεταξύ των κλήσεων της ίδιας συνάρτησης. static int place; volatile Χρησιμοποιείται για να κατευθύνει τον compiler να φορτώσει τα δεδομένα της συγκεκριμένης μεταβλητής από τη RAM και όχι από τους καταχωρητές που αποθηκεύεται το πρόγραμμα και οι άλλες μεταβλητές. Χρησιμοποιείται κυρίως για να διαχειριζόμαστε σωστά τα interrupts. volatile int state = LOW; const Χρησιμοποιείται για να δηλώσουμε μια μεταβλητή σαν σταθερά (μόνο για διάβασμα δεν μπορούμε να τροποποιήσουμε την τιμή της). const float pi = 3.14; float x; x = pi * 2;// αποδεκτό pi = 7; // µη αποδεκτό Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 48

49 Utilities sizeof() Επιστρέφει τον αριθμό των bytes ενός τύπου δεδομένων. char mystr[]="this is a test"; int i; void loop(){ for (i = 0; i < sizeof(mystr) - 1; i++){ Συναρτήσεις Ψηφιακές I/O pinmode() Ορίζουμε ένα συγκεκριμένο pin να λειτουργεί είτε σαν είσοδο (input) είτε σαν έξοδο (output). pinmode(ledpin, OUTPUT); digitalwrite() Γράφει την τιμή HIGH ή LOW σε ένα digital pin. Αν το pin έχει οριστεί σαν έξοδος (output) στο pin παίρνουμε 5V για HIGH και 0V για LOW. Αν το pin έχει οριστεί σαν είσοδος (input) τότε χρησιμοποιώντας την digitalwrite(pin,high) ενεργοποιούμε την εσωτερική pullup αντίσταση ενώ χρησιμοποιώντας την digitalwrite(pin,low) απενεργοποιούμε την εσωτερική pullup αντίσταση. digitalwrite(ledpin, HIGH); digitalwrite(ledpin, LOW); digitalread() Διαβάζει την κατάσταση ενός συγκεκριμένου digital pin. Επιστρέφει HIGH ή LOW. val = digitalread(inpin); // διαβάζει την κατάσταση του inpin και την αποθηκεύει στη val. Αναλογικές I/O analogreference(type) Καθορίζει την τάση αναφοράς που χρησιμοποιείται από το Arduino για τις αναλογικές εισόδους του, δηλαδή τη μέγιστη τιμή τάσης στις εισόδους αυτές. DEFAULT :η εξ ορισµού τάση αναφοράς 5V. INTERNAL: Μια εσωτερική αναφορά τάσης 1,1V. EXTERNAL: η τάση αναφοράς τοποθετείται στο pin AREF. Προσοχή! Πρέπει να είναι µεταξύ 0-5V αποκλειστικά. analogread() Διαβάζει την τιμή μιας αναλογικής εισόδου του board. Το Arduino περιέχει έναν 10bit A/D μετατροπέα. Αυτό σημαίνει ότι υπάρχουν 1024 επίπεδα κβαντισμού της αναλογικής τιμή μιας τάσης. Η μέγιστη ταχύτητα δειγματοληψίας είναι φορές το δευτερόλεπτο. val = analogread(analogpin); //επιστρέφει µια τιµή από Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 49

50 analogwrite() Γράφει μια αναλογική τιμή σε μια έξοδο. Μπορεί να χρησιμοποιηθεί για να ανάψει ένα Led σε διαφορετική φωτεινότητα ή να οδηγήσει έναν κινητήρα σε διαφορετικές ταχύτητες. Λειτουργεί στα pins με το σύμβολο ~ (pins: 3, 5, 6, 9, 10, 11) είναι η συνάρτηση που χρησιμοποιείται για την οδήγηση των PWM γραμμών εξόδου. analogwrite(ledpin, val); // η val πρέπει να έχει τιµή 0-255, και αντιστοιχεί στο duty cycle του PWM παλµού (0: συνέχεια OFF, 255: συνέχεια ON) Ειδικές I/O tone() Δημιουργεί ένα σήμα μιας συγκεκριμένης συχνότητας στο pin που ορίζεται. Αυτό το pin μπορεί να οδηγήσει ένα ηχείο το οποίο θα αναπαράξει αυτή τη συχνότητα. Μόνο ένας τόνος παίζει κάθε φορά, ενώ δεν μπορούν να εφαρμοστούν διαφορετικοί τόνοι σε διαφορετικά pins. Μπορούν όμως να εφαρμοστούν στο ίδιο pin. tone(pin, duration) frequency, pin: το pin που παράγει τον τόνο frequency: η συχνότητα του τόνου σε hertz - unsigned int duration: η διάρκεια του τόνου σε milliseconds (optional) - unsigned long notone() Διακόπτει τον τόνο στο εκάστοτε pin που έχει δοθεί από την tone(). notone(pin) pin: το pin στο οποίο σταµατάει ο τόνος shiftout() Ολισθαίνει σε ένα pin εξόδου ένα byte δεδομένων bit προς bit (1 bit κάθε φορά). Ξεκινάει είτε από το LSB είτε από το MSB του byte. Κάθε bit γράφεται με τη σειρά του σε ένα datapin εξόδου, ενώ σε ένα δεύτερο pin (clock) παράγεται 1 παλμός (αρχικά High και μετά Low) για κάθε bit που έχει γίνει shift out. Σύνταξη: shiftout(datapin, clockpin, bitorder, value) int data = 500; // ολίσθηση MSB shiftout(datapin, clock, MSBFIRST, (data >> 8)); shiftin() Διαβάζει από ένα pin εισόδου ένα byte δεδομένων bit προς bit (1 bit κάθε φορά). Ξεκινάει είτε από το LSB είτε από το MSB του byte. Κάθε bit εισάγεται με τη σειρά του σε ένα datapin εισόδου, ενώ σε ένα δεύτερο pin (clock) παράγεται 1 παλμός (αρχικά High και μετά Low) για κάθε bit που έχει γίνει shift in. Σύνταξη: shiftin(datapin, clockpin, bitorder) Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 50

51 pulsein() Διαβάζει έναν παλμό (HIGH ή LOW) από ένα pin. Διαβάζει είτε το HIGH είτε το LOW, ανάλογα με το πως έχει οριστεί, και περιμένει πότε θα έρθει το αντίθετο για να σταματήσει τη χρονομέτρηση. Επιστρέφει δηλαδή το μήκος του παλμού σε microseconds. Σύνταξη: pulsein(pin, value) pulsein(pin, value, timeout) Παράδειγµα: duration = pulsein(pin, HIGH); Χρόνου delay(x) Καθυστερεί την εκτέλεση του σχεδίου για x milliseconds. delay(1000); // καθυστέρηση 1 sec delaymicroseconds(x) Καθυστερεί την εκτέλεση του σχεδίου για x microseconds. delaymicroseconds(50); // καθυστέρηση 50 microseconds Σειριακής Επικοινωνίας serial.available() Λαμβάνει τον αριθμό των bytes (χαρακτήρων) που είναι διαθέσιμοι για διάβασμα στη σειριακή θύρα και τους αποθηκεύει στον προσωρινό καταχωρητή σειριακής θύρας, ο οποίος έχει μέγεθος 64 bytes. if (Serial.available() > 0) { (); // Αν υπάρχουν διαθέσιμα δεδομένα στη σειριακή θύρα τότε serial.read() Διαβάζει δεδομένα από τη σειριακή θύρα. if (Serial.available() > 0) { data = Serial.read(); // Αν υπάρχουν διαθέσιμα δεδομένα στη σειριακή θύρα τότε να τοποθετηθούν στη μεταβλητή data serial.print() Γράφει δεδομένα στη σειριακή θύρα σαν ASCII χαρακτήρες. Serial.print("ΔΕΔΟΜΕΝΑ"); // γράφει στη σειριακή θύρα το string «ΔΕΔΟΜΕΝΑ» serial.println() Γράφει δεδομένα στη σειριακή θύρα σαν ASCII χαρακτήρες στέλνοντας ως τελευταίο χαρακτήρα το κενό (null). Serial.println(analogValue); // γράφει στη σειριακή θύρα την τιμή της μεταβλητής analogvalue και σαν τελευταίο χαρακτήρα στέλνει ένα κενό (null) Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 51

52 2. Εκτυπώσιμοι χαρακτήρες ASCII ΔΕΚΑΔΙΚΟΣ ΧΑΡΑΚΤΗΡΑΣ ΔΕΚΑΔΙΚΟΣ ΧΑΡΑΚΤΗΡΑΣ 32 (διάστημα) 80 P 33! 81 Q 34 " 82 R 35 # 83 S 36 $ 84 T 37 % 85 U 38 & 86 V 39 ' 87 w 40 ( 88 X 41 ) 89 Y 42 * 90 Z [ 44, 92 \ ] ^ 47 / 95 _ ` a b c d e f g Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 52

53 h i 58 : 106 j 59 ; 107 k 60 < 108 l 61 = 109 m 62 > 110 n 63? 111 o 112 p 65 A 113 q 66 B 114 r 67 C 115 s 68 D 116 t 69 E 117 u 70 F 118 v 71 G 119 w 72 H 120 x 73 I 121 y 74 J 122 z 75 K 123 { 76 L M N 126 ~ 79 O 127 DEL Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 53

54 3. Πίνακες NTC 10Κ Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 54

ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017)

ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017) ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017) Περιγραφή της Άσκησης Ο σκοπός της πρώτης άσκησης είναι κυρίως η εξοικείωση με το περιβάλλον προγραμματισμού του Arduino, γι αυτό και δεν είναι ιδιαίτερα σύνθετη. Αρχικά, θα

Διαβάστε περισσότερα

Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές. Εισαγωγή στο Arduino. Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών

Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές. Εισαγωγή στο Arduino. Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές Εισαγωγή στο Arduino Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών Τι είναι Μικροελεγκτής; Ηλεκτρονική συσκευή που διαχειρίζεται ηλεκτρονικά

Διαβάστε περισσότερα

Ενσωµατωµένα Συστήµατα

Ενσωµατωµένα Συστήµατα Ενσωµατωµένα Συστήµατα για εφαρµογές πραγµατικού χρόνου Μικροελεγκτής Arduino Ιωάννης Καλόµοιρος Αναπληρωτής Καθηγητής Τµήµα Μηχανικών Πληροφορικής Μάθηµα 7ο Τι είναι το Arduino... Ένα open-hardware σύστηµα

Διαβάστε περισσότερα

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication ΡΟΜΠΟΤΙΚΗ ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication ΜΠΑΝΤΗΣ ΑΝΤΩΝΙΟΣ 533 ΤΣΙΚΤΣΙΡΗΣ ΔΗΜΗΤΡΙΟΣ 551 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ ΡΟΜΠΟΤ LEGO NXT Το ρομπότ

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ

ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ Σκοπός της άσκησης Οι φοιτητές θα εξοικειωθούν με την πλακέτα του μικροελεγκτή και θα αναγνωρίσουν τα βασικά της στοιχεία. Επίσης θα εξοικειωθούν

Διαβάστε περισσότερα

Εφαρμογές Σειριακής Επικοινωνίας

Εφαρμογές Σειριακής Επικοινωνίας Εφαρμογές Σειριακής Επικοινωνίας Εισαγωγή Στο μάθημα αυτό θα μάθουμε πώς να χρησιμοποιούμε την βιβλιοθήκη serial για την επικοινωνία από την πλατφόρμα Arduino πίσω στον υπολογιστή μέσω της θύρας usb. Τι

Διαβάστε περισσότερα

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοινωνία. Σειριακή Επικοινωνία USB Σύνδεση / Πρωτόκολλο Σκοπός Εντολή επιλογής (if) Εντολή Επανάληψης (while) Πίνακες 1 Μέρος Α : Σκοπός

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΕΣ ΤΗΛΕΠIΚΟΙΝΩΝΙΑΚΩΝ ΔΙΑΤΑΞΕΩΝ

ΕΦΑΡΜΟΓΕΣ ΤΗΛΕΠIΚΟΙΝΩΝΙΑΚΩΝ ΔΙΑΤΑΞΕΩΝ ΕΦΑΡΜΟΓΕΣ ΤΗΛΕΠIΚΟΙΝΩΝΙΑΚΩΝ ΔΙΑΤΑΞΕΩΝ ΟΙΚΟΝOΜΟΥ ΧΑΡΗΣ (6424) ΦΩΚΟΣ ΝΙΚΟΛΑΟΣ(6592) ΚΑΜΒΥΣΗΣ ΝΙΚΟΛΑΟΣ(7178) 2013-2014 ΠΕΡΙΕΧΟΜΕΝΑ Σκοπός της εργασίας Ανάλυση Arduino Uno Δημιουργία πληροφορίας Αποστολή και

Διαβάστε περισσότερα

ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ. Τίτλος Μαθήματος. Διαλέξεις - Θεωρητική Διδασκαλία, Εποπτευόμενο Εργαστήριο Επίδειξη, Μελέτες (Projects)

ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ. Τίτλος Μαθήματος. Διαλέξεις - Θεωρητική Διδασκαλία, Εποπτευόμενο Εργαστήριο Επίδειξη, Μελέτες (Projects) ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ Τίτλος Μαθήματος Μικροελεγκτές και Ενσωματωμένα συστήματα Ανάπτυξη και Εφαρμογές Κωδικός Μαθήματος Μ2 Θεωρία / Εργαστήριο Θεωρία + Εργαστήριο Πιστωτικές μονάδες 4 Ώρες Διδασκαλίας 2Θ+1Ε

Διαβάστε περισσότερα

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Παρακάτω δίνονται μερικοί από τους ακροδέκτες που συναντάμε στην πλειοψηφία των μικροεπεξεργαστών. Φτιάξτε έναν πίνακα που να

Διαβάστε περισσότερα

Συσκευές Τηλεπικοινωνιών και Δικτύωσης. Επικοινωνίες Δεδομένων Μάθημα 9 ο

Συσκευές Τηλεπικοινωνιών και Δικτύωσης. Επικοινωνίες Δεδομένων Μάθημα 9 ο Συσκευές Τηλεπικοινωνιών και Δικτύωσης Επικοινωνίες Δεδομένων Μάθημα 9 ο Εισαγωγή Ένα δίκτυο αποτελείται από ενεργά και παθητικά στοιχεία. Στα παθητικά στοιχεία εντάσσονται τα καλώδια και τα εξαρτήματα

Διαβάστε περισσότερα

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 5. Ρυθμίζοντας τη Φορά Περιστροφής. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 5. Ρυθμίζοντας τη Φορά Περιστροφής. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Σκοπός Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 5 Ρυθμίζοντας τη Φορά Περιστροφής DC Κινητήρα. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Βασική δομή ενός προγράμματος στο LabVIEW. Εμπρόσθιο Πλαίσιο (front

Διαβάστε περισσότερα

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 3 Μέτρηση Θερμοκρασίας Σύστημα Ελέγχου Θερμοκρασίας. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 3 Μέτρηση Θερμοκρασίας Σύστημα Ελέγχου Θερμοκρασίας. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 3 Μέτρηση Θερμοκρασίας Σύστημα Ελέγχου Θερμοκρασίας με Θερμοστάτη. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Σκοπός Βασική δομή ενός προγράμματος στο LabVIEW.

Διαβάστε περισσότερα

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2 Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου Ενότητα 2 Τι είναι το PLC ΠΕΡΙΕΧΟΜΕΝΑ 2 Τι είναι το PLC. 2.1 Πλεονεκτήματα των PLC. 2.2 Η δομή ενός PLC. 2.3 Τα PLC της αγοράς. 2.4 Αρχή λειτουργίας ενός PLC.

Διαβάστε περισσότερα

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων Εργαστήριο ενσωματωμένων συστημάτων Παρουσίαση 2: Βασικός Προγραμματισμός Arduino (AVR) Εργαστήριο Αυτομάτου Ελέγχου Η πλατφόρμα Arduino UNO Microcontroller: ATmega328 Operating Voltage: 5V Digital I/O

Διαβάστε περισσότερα

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 1. Arduino + LabVIEW: Μέτρηση Έντασης Φωτός με Φωτοαντίσταση. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 1. Arduino + LabVIEW: Μέτρηση Έντασης Φωτός με Φωτοαντίσταση. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Σκοπός Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 1 Arduino + LabVIEW: Μέτρηση Έντασης Φωτός με Φωτοαντίσταση. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Βασική δομή ενός προγράμματος στο LabVIEW. Εμπρόσθιο

Διαβάστε περισσότερα

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων Εργαστήριο ενσωματωμένων συστημάτων Παρουσίαση 1: Εισαγωγή στα ενσωματωμένα συστήματα (embedded systems) Εργαστήριο Αυτομάτου Ελέγχου Ενσωματωμένα συστήματα (Embedded Systems) Ενσωματωμένα συστήματα (Embedded

Διαβάστε περισσότερα

Ενσωματωμένα Συστήματα

Ενσωματωμένα Συστήματα Ενσωματωμένα Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ ARDUINO Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων Εργαστήριο ενσωματωμένων συστημάτων Παρουσίαση 2: Βασικός Προγραμματισμός Arduino (AVR) Εργαστήριο Αυτομάτου Ελέγχου Η πλατφόρμα Arduino Microcontroller: ATmega328 Operating Voltage: 5V Digital I/O Pins:

Διαβάστε περισσότερα

devolo dlan powerline technology Σύντομη παρουσίαση dlan 1200+ WiFi ac

devolo dlan powerline technology Σύντομη παρουσίαση dlan 1200+ WiFi ac devolo dlan powerline technology Σύντομη παρουσίαση dlan 1200+ WiFi ac dlan 1200+ WiFi ac 2 dlan 1200+ WiFi ac Υφιστάμενη κατάσταση Οι φορητές συσκευές όλο πληθαίνουν καθημερινά. Όλο και περισσότεροι χρήστες

Διαβάστε περισσότερα

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

Κεφάλαιο 1.6: Συσκευές αποθήκευσης Κεφάλαιο 1.6: Συσκευές αποθήκευσης 1.6.1 Συσκευές αποθήκευσης Μνήμη τυχαίας προσπέλασης - RAM Η μνήμη RAM (Random Access Memory Μνήμη Τυχαίας Προσπέλασης), κρατεί όλη την πληροφορία (δεδομένα και εντολές)

Διαβάστε περισσότερα

Προγραμματισμο ς σε Arduino

Προγραμματισμο ς σε Arduino Προγραμματισμο ς σε Arduino Arduino UNO & Innoesys Educational Shield www.devobox.com Ηλεκτρονικά Εξαρτήματα & Υλικά Κατασκευής Πρωτοτύπων Λέανδρου 79, 10443, Κολωνός +30 210 51 55 513, info@devobox.com

Διαβάστε περισσότερα

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μελετώντας το μάθημα θα μπορείς να ξέρεις τη λειτουργία του Polling να ξέρεις

Διαβάστε περισσότερα

WIRELESS SENSOR NETWORKS (WSN)

WIRELESS SENSOR NETWORKS (WSN) WIRELESS SENSOR NETWORKS (WSN) Δρ. Ιωάννης Παναγόπουλος Εργαστήριο Υπολογιστικών Συστημάτων Καθ. Γεώργιος Παπακωνσταντίνου Αθήνα 2008 ΕΙΣΑΓΩΓΗ ΣΤΑ WSN Σε συγκεκριμένες εφαρμογές, επιθυμείται η μέτρηση

Διαβάστε περισσότερα

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Σερρών Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πληροφορικής & Επικοινωνιών

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Σερρών Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πληροφορικής & Επικοινωνιών Τεχνολογικό Εκπαιδευτικό Ίδρυμα Σερρών Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πληροφορικής & Επικοινωνιών Υλοποίηση δικτύου ασύρματης ραδιοεπικοινωνίας μεταξύ δύο ενσωματωμένων κόμβων (κόμβος ταυτοποίησης

Διαβάστε περισσότερα

Εφαρμογές Αναλογικών Ε/Ε PWM (pulse Width Modulation)

Εφαρμογές Αναλογικών Ε/Ε PWM (pulse Width Modulation) Εφαρμογές Αναλογικών Ε/Ε PWM (pulse Width Modulation) Εισαγωγή Σε αυτή την ενότητα θα δούμε εφαρμογές που χρησιμοποιούν τις αναλογικές Εισόδους/Εξόδους του Arduino ή την τεχνική PWM. Ψηφιακό vs Αναλογικό

Διαβάστε περισσότερα

για τις ρυθμίσεις LabView μέσα από το κανάλι και του καλωδίου USB.

για τις ρυθμίσεις LabView μέσα από το κανάλι   και του καλωδίου USB. 1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας Δραστηριότητα: 11 Μάθημα: Εργαστήριο Δικτύων Υπολογιστών Αντικείμενο : Μέτρηση

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟ ARDUINO. Υποψήφιος Διδάκτωρ

ΕΙΣΑΓΩΓΗ ΣΤΟ ARDUINO. Υποψήφιος Διδάκτωρ ΕΙΣΑΓΩΓΗ ΣΤΟ ARDUINO Δημιουργός: Επιβλέπων: Μπακάλη Ιωάννα Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ 1 ΤΙ ΕΙΝΑΙ ΤΟ ARDUINO; Είναι ένας συνδυασμός Υλικού (πλακέτας, μικροελεγκτή, αντιστάσεων κτλ) και Λογισμικού

Διαβάστε περισσότερα

Εφαρμογές αναλογικών / Ψηφιακών

Εφαρμογές αναλογικών / Ψηφιακών Εφαρμογές αναλογικών / Ψηφιακών 1 ΕΙΣΑΓΩΓΗ Σε αυτήν την ενότητα θα δούμε μερικές ακόμα εφαρμογές ψηφιακών / αναλογικών εισόδων/ εξόδων που μπορούμε να φτιάξουμε με την βοήθεια του Arduino, χρησιμοποιώντας

Διαβάστε περισσότερα

Μείνετε πάντα σε επαφή

Μείνετε πάντα σε επαφή ΠΡΟΔΙΑΓΡΑΦΕΣ Μείνετε πάντα σε επαφή με το σπίτι σας 01 ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ Βασισμένο στην τεχνολογία Z wave+ Συμβατό με συσκευές που λειτουργούν στο σύστημα IoT - Internet Of Things Η εφαρμογή

Διαβάστε περισσότερα

WiFi V-Timer ΕΚΔΟΣΗ 2Η

WiFi V-Timer ΕΚΔΟΣΗ 2Η ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ WiFi V-Timer ΕΚΔΟΣΗ 2Η 1 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΓΝΩΡΙΜΙΑ ΜΕ ΤΟ WiFi V-Timer... 3 2. ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΤΟΥ WiFi V-Timer... 4 3. ΤΟΠΙΚΟΣ ΧΕΙΡΙΣΜΟΣ ΤΟΥ WiFi V-Timer... 5 4. ΕΓΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ ΕΙΣΑΓΩΓΗ Θέµατα ❸Συστήµατα Η/Υ (αναφορά) ❸Γλώσσα υπολογιστών ❸Γλώσσες προγραµµατισµού (low-high level) ❸Low level VS high level programming ❸Βασικά µέρη Η/Υ ❸Μικροϋπολογιστές (µc µp) ❸Αρχιτεκτονική µικροελεγκτών

Διαβάστε περισσότερα

ΤΕΙ ΚΡΗΤΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Επιβλέπων : Κορνάρος Γεώργιος. Επίκουρος Καθηγητής

ΤΕΙ ΚΡΗΤΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Επιβλέπων : Κορνάρος Γεώργιος. Επίκουρος Καθηγητής ΤΕΙ ΚΡΗΤΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Επιβλέπων : Κορνάρος Γεώργιος Επίκουρος Καθηγητής ΟΙΚΙΑΚΟΣ ΑΥΤΟΜΑΤΙΣΜΟΣ ΜΕ ΧΡΗΣΗ ΜΙΚΡΟΕΛΕΓΚΤΗ Ζουριδάκης Εμμανουήλ ΑΜ:2383 Ηράκλειο 2016 2 3 4 Περίληψη

Διαβάστε περισσότερα

ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ARDUINO ΚΑΙ ΗΧΟΣ I. Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης Επιβλέπων: Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ

ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ARDUINO ΚΑΙ ΗΧΟΣ I. Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης Επιβλέπων: Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ARDUINO ΚΑΙ ΗΧΟΣ I Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης Επιβλέπων: Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ 1 ARDUINO ΚΑΙ ΗΧΟΣ ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή, μηχανές παραγωγής ήχου Χρήση του πιεζοηλεκτρικού

Διαβάστε περισσότερα

ZigBee. Φοιτητής: Μόσχογλου Στυλιανός Επιβλέπων καθηγητής: κ. Δοκουζγιάννης Σταύρος

ZigBee. Φοιτητής: Μόσχογλου Στυλιανός Επιβλέπων καθηγητής: κ. Δοκουζγιάννης Σταύρος ZigBee Φοιτητής: Μόσχογλου Στυλιανός Επιβλέπων καθηγητής: κ. Δοκουζγιάννης Σταύρος Τι είναι το ZigBee; Ένα τυποποιημένο πρωτόκολλο χαμηλής Κατανάλωσης Ισχύος σε Wireless Persnal Area Netwrks (WPANs) Ένα

Διαβάστε περισσότερα

Γρήγορη έναρξη. Επέκταση εμβέλειας WiFi N300 Μοντέλο EX2700

Γρήγορη έναρξη. Επέκταση εμβέλειας WiFi N300 Μοντέλο EX2700 Γρήγορη έναρξη Επέκταση εμβέλειας WiFi N300 Μοντέλο EX2700 Έναρξη χρήσης Η Επέκταση εμβέλειας WiFi της NETGEAR αυξάνει την απόσταση κάλυψης ενός δικτύου WiFi ενισχύοντας το υπάρχον σήμα WiFi και βελτιώνοντας

Διαβάστε περισσότερα

Γνωριμία με το Arduino

Γνωριμία με το Arduino Γνωριμία με το Arduino Τι είναι το Arduino; Το arduino είναι ένας μικρός υπολογιστής σε μέγεθος παλάμης που περιλαμβάνει ένα μικροελεγκτή (για εκτέλεση εντολών) και ένα σύνολο εισόδων/εξόδων για επικοινωνία

Διαβάστε περισσότερα

Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 2. Προγραμματισμός Φυσικών Συστημάτων. Συστήματα Πραγματικών Εφαρμογών. Νέα Ψηφιακά Αντικείμενα

Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 2. Προγραμματισμός Φυσικών Συστημάτων. Συστήματα Πραγματικών Εφαρμογών. Νέα Ψηφιακά Αντικείμενα Σκοπός Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 2 ΤΟ ΣΥΣΤΗΜΑ ΣΑΡΩΣΗΣ ΤΟΥ ΟΠΤΙΚΟΥ ΠΕΔΙΟΥ. Ψηφιακά Αντικείμενα Μικροελεγκτής Προγραμματισμός Φυσικών Συστημάτων Συστήματα Πραγματικών Εφαρμογών Νέα Ψηφιακά

Διαβάστε περισσότερα

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ. ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ d.fotiadis@kastoria.teikoz.gr

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ. ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ d.fotiadis@kastoria.teikoz.gr Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΦΩΤΙΑ ΗΣ Α. ΗΜΗΤΡΗΣ M.Sc. ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ (Σ.Τ.ΕΦ.) ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ d.fotiadis@kastoria.teikoz.gr Ασύγχρονη σειριακή

Διαβάστε περισσότερα

Γρήγορη έναρξη. Επέκταση εμβέλειας WiFi AC750. Μοντέλο EX3700

Γρήγορη έναρξη. Επέκταση εμβέλειας WiFi AC750. Μοντέλο EX3700 Γρήγορη έναρξη Επέκταση εμβέλειας WiFi AC750 Μοντέλο EX3700 Έναρξη χρήσης Η Επέκταση εμβέλειας WiFi της NETGEAR αυξάνει την απόσταση κάλυψης ενός δικτύου WiFi ενισχύοντας το υπάρχον σήμα WiFi και βελτιώνοντας

Διαβάστε περισσότερα

Μαθαίνοντας το hardware του αναπτυξιακού

Μαθαίνοντας το hardware του αναπτυξιακού 1. ΑΣΚΗΣΗ 1 Μαθαίνοντας το hardware του αναπτυξιακού Προϋποθέσεις Το εργαστήριο αυτό προϋποθέτει το διάβασμα και χρήση των εξής: Αρχείο mcbstr9.chm HTML, που δίδεται με τα υπόλοιπα αρχεία του εργαστηρίου.

Διαβάστε περισσότερα

Bread Online. Παναγιώτης Ιωαννίδης Επιβλέπων καθηγητής: Μηνάς Δασυγένης

Bread Online. Παναγιώτης Ιωαννίδης Επιβλέπων καθηγητής: Μηνάς Δασυγένης Bread Online Σχεδιασμός και μετατροπή μιας απλής οικιακής συσκευής σε επαναπρογραμματιζόμενη συσκευή IP Παναγιώτης Ιωαννίδης Επιβλέπων καθηγητής: Μηνάς Δασυγένης Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών

Διαβάστε περισσότερα

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET Κεφάλαιο 6: Συσκευές τηλεπικοινωνιών και δικτύωσης (Θ) Ενεργά στοιχεία δικτύων Δύο συστήματα Η/Υ μπορούν να συνδεθούν χρησιμοποιώντας: Δια-αποδιαμορφωτές

Διαβάστε περισσότερα

Γρήγορη έναρξη. Επέκταση εμβέλειας WiFi AC1200. Μοντέλο EX6150

Γρήγορη έναρξη. Επέκταση εμβέλειας WiFi AC1200. Μοντέλο EX6150 Γρήγορη έναρξη Επέκταση εμβέλειας WiFi AC1200 Μοντέλο EX6150 Έναρξη χρήσης Η Επέκταση εμβέλειας WiFi της NETGEAR αυξάνει την απόσταση κάλυψης ενός δικτύου WiFi ενισχύοντας το υπάρχον σήμα WiFi και βελτιώνοντας

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 5 Αναλογικά σήματα

ΕΝΟΤΗΤΑ 5 Αναλογικά σήματα ΕΝΟΤΗΤΑ 5 Αναλογικά σήματα Σκοπός και περίγραμμα της Ενότητας 5 Σκοπός της παρουσίασης Να δώσουμε τις βασικές ιδέες για τα αναλογικά σήματα και την χρήση διαφορετικών ειδών περιφερειακών Σύνοψη Επεξήγηση

Διαβάστε περισσότερα

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ - ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΤΗΛΕΠΙΚΟΙΝΩΝΙΕΣ ΚΑΙ ΔΙΚΤΥΑ Η/Υ. Μελέτη Σημείου Πρόσβασης ως ασύρματου επαναλήπτη

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ - ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΤΗΛΕΠΙΚΟΙΝΩΝΙΕΣ ΚΑΙ ΔΙΚΤΥΑ Η/Υ. Μελέτη Σημείου Πρόσβασης ως ασύρματου επαναλήπτη Εργαστήριο 9β-10 ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ - ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΤΗΛΕΠΙΚΟΙΝΩΝΙΕΣ ΚΑΙ ΔΙΚΤΥΑ Η/Υ Μελέτη Σημείου Πρόσβασης ως ασύρματου επαναλήπτη Στόχος Ο στόχος του παρόντος εργαστηρίου είναι

Διαβάστε περισσότερα

Σχεδιασμός και υλοποίηση κυκλώματος μέτρησης κατανάλωσης ισχύος

Σχεδιασμός και υλοποίηση κυκλώματος μέτρησης κατανάλωσης ισχύος Σχεδιασμός και υλοποίηση κυκλώματος μέτρησης κατανάλωσης ισχύος Φοιτητής Φετινίδης Αναστάσιος Επιβλέπων Δασυγένης Μηνάς Μάρτιος 2014 1 Περιεχόμενα παρουσίασης Εισαγωγή Θεωρητικό υπόβαθρο Υλικό μέρος του

Διαβάστε περισσότερα

ρομολογητής WiFi N300 (N300R)

ρομολογητής WiFi N300 (N300R) Easy, Reliable & Secure Οδηγός εγκατάστασης ρομολογητής WiFi N300 (N300R) Εμπορικά σήματα Οι επωνυμίες και τα ονόματα προϊόντων είναι εμπορικά σήματα ή σήματα κατατεθέντα των αντίστοιχων κατόχων τους.

Διαβάστε περισσότερα

Εξαμηνιαία Εργασία 2013 Προγραμματίζοντας τον Arduino στη C Μέρος Β : Επικοινωνία Υπολογιστή με Μικροελεγκτή

Εξαμηνιαία Εργασία 2013 Προγραμματίζοντας τον Arduino στη C Μέρος Β : Επικοινωνία Υπολογιστή με Μικροελεγκτή Σκοπός Εξαμηνιαία Εργασία 2013 Προγραμματίζοντας τον Arduino στη C Μέρος Β : Επικοινωνία Υπολογιστή με Μικροελεγκτή Μικροελεγκτές Πλακέτα Arduino Προγραμματισμός Μικροελεγκτών στη C. Επικοινωνία Υπολογιστή

Διαβάστε περισσότερα

Μάθημα 1 ΑΙΣΘΗΤΗΡΕΣ Ο Αισθητήρας Δύναμης. Επανεξέταση των βασικών εννοιών της C και του προγραμματισμού.

Μάθημα 1 ΑΙΣΘΗΤΗΡΕΣ Ο Αισθητήρας Δύναμης. Επανεξέταση των βασικών εννοιών της C και του προγραμματισμού. Σκοπός Σχεδίαση Συστημάτων με τον Arduino Μάθημα 1 ΑΙΣΘΗΤΗΡΕΣ Ο Αισθητήρας Δύναμης. Επανεξέταση των βασικών εννοιών της C και του προγραμματισμού. Κατανόηση των βημάτων στη συστηματική ανάπτυξη ενός προγράμματος.

Διαβάστε περισσότερα

Εισαγωγή στο KNX. Ανακαλύψτε το KNX

Εισαγωγή στο KNX. Ανακαλύψτε το KNX Εισαγωγή στο KNX Ανακαλύψτε το KNX Συμβατική εγκατάσταση Κάθε λειτουργία απαιτεί ένα ή περισσότερα καλώδια για να πραγματοποιηθεί Πολλές λειτουργίες = πολλά καλώδια Κάθε λειτουργία πρέπει να έχει μελετηθεί

Διαβάστε περισσότερα

Ελεγκτής Σταδιακής Ανατολής/Δύσης Λαμπτήρων Ενυδρείου Sunrise/Sunset Aquarium Dim Controller

Ελεγκτής Σταδιακής Ανατολής/Δύσης Λαμπτήρων Ενυδρείου Sunrise/Sunset Aquarium Dim Controller Ελεγκτής Σταδιακής Ανατολής/Δύσης Λαμπτήρων Ενυδρείου Sunrise/Sunset Aquarium Dim Controller 1. Γενικά. Ιστορικά, οι πρώτοι λαμπτήρες που κατασκευάστηκαν ήταν οι γνωστοί σε όλους μας λαμπτήρες πυρακτώσεως.

Διαβάστε περισσότερα

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων Εργαστήριο ενσωματωμένων συστημάτων Παρουσίαση 3: Βασικός Προγραμματισμός Arduino (AVR) (Συνέχεια) Εργαστήριο Αυτομάτου Ελέγχου Η πλατφόρμα Arduino Microcontroller: ATmega328 Operating Voltage: 5V Digital

Διαβάστε περισσότερα

Έλεγχος κινητήρα συνεχούς ρεύματος με τρανζίστορ και Arduino

Έλεγχος κινητήρα συνεχούς ρεύματος με τρανζίστορ και Arduino Έλεγχος κινητήρα συνεχούς ρεύματος με τρανζίστορ και Arduino Στην κατασκευή αυτή ο σκοπός ήταν να ελέγξουμε την ταχύτητα ενός κινητήρα συνεχούς ρεύματος με τη χρήση ενός τρανζίστορ που θα χρησιμοποιηθεί

Διαβάστε περισσότερα

ΑΝΑLOG TO DIGITAL CONVERTER (ADC)

ΑΝΑLOG TO DIGITAL CONVERTER (ADC) ΑΝΑLOG TO DIGITAL CONVERTER (ADC) O ADC αναλαμβάνει να μετατρέψει αναλογικές τάσεις σε ψηφιακές ώστε να είναι διαθέσιμες εσωτερικά στο μικροελεγκτή για επεξεργασία. Η αναλογική τάση που θέλουμε να ψηφιοποιηθεί

Διαβάστε περισσότερα

ΜΙΚΡΟΕΛΕΓΚΤΗΣ PICAXE 18M2

ΜΙΚΡΟΕΛΕΓΚΤΗΣ PICAXE 18M2 ΘΕΜΑ : ΜΙΚΡΟΕΛΕΓΚΤΗΣ PICAXE 18M2 ΔΙΑΡΚΕΙΑ:? περίοδος Οι μικροελεγκτές είναι υπολογιστές χωρίς περιφερειακά, σε ολοκληρωμένα κυκλώματα. Μπορούν να συνδυάσουν αρκετές από τις βασικές λειτουργίες άλλων ειδικών

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΠΡΑΚΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ ΜΑΘΗΜΑ : ΑΥΤΟΜΑΤΙΣΜΟΙ ΚΑΙ

Διαβάστε περισσότερα

Εφαρμογές μικροελεγκτών

Εφαρμογές μικροελεγκτών Μικροελεγκτές Έναν ορισμό που θα μπορούσαμε να δώσουμε για τους μικροελεγκτές είναι ο εξής: Μικροελεγκτής είναι ένα προγραμματιζόμενο ολοκληρωμένο κύκλωμα το οποίο διαθέτει επεξεργαστή, μνήμη, διάφορα

Διαβάστε περισσότερα

Οδηγός εγκατάστασης της επέκτασης εμβέλειας Wi-Fi N300RE

Οδηγός εγκατάστασης της επέκτασης εμβέλειας Wi-Fi N300RE Easy, Reliable & Secure Οδηγός εγκατάστασης Οδηγός εγκατάστασης της επέκτασης εμβέλειας Wi-Fi N300RE Έναρξη χρήσης Η Επέκταση εμβέλειας Wi-Fi επεκτείνει το δίκτυο Wi-Fi, ώστε να περιλαμβάνει την περιοχή

Διαβάστε περισσότερα

Οδηγίες Χρήσης EAP Controller Software

Οδηγίες Χρήσης EAP Controller Software Οδηγίες Χρήσης EAP Controller Software Designed by TP-Link Hellas Ltd. Professional Business Unit Επιμέλεια: Βαλάντης Οικονομόπουλος 1 Περιεχόμενα 1.1 Προσδιορισμός της Τοπολογίας του Δικτύου...2 1.2 Αρχική

Διαβάστε περισσότερα

LFT169 - LFR169 ΠΟΜΠΟΣ ΚΑΙ ΔΕΚΤΗΣ ΨΗΦΙΑΚΩΝ ΚΑΙ ΑΝΑΛΟΓΙΚΩΝ ΣΗΜΑΤΩΝ

LFT169 - LFR169 ΠΟΜΠΟΣ ΚΑΙ ΔΕΚΤΗΣ ΨΗΦΙΑΚΩΝ ΚΑΙ ΑΝΑΛΟΓΙΚΩΝ ΣΗΜΑΤΩΝ LFT169 - LFR169 ΠΟΜΠΟΣ ΚΑΙ ΔΕΚΤΗΣ ΨΗΦΙΑΚΩΝ ΚΑΙ ΑΝΑΛΟΓΙΚΩΝ ΣΗΜΑΤΩΝ Οδηγίες Παραμετροποίησης Power Electronics Control Ε.Π.Ε. Τύποι Συσκευών: LFT169 - LFR169 Περιγραφή: Πομπός και Δέκτης Τηλεχειρισμού 169MHz

Διαβάστε περισσότερα

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

Διαβάστε περισσότερα

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή 8.1 Τακτική σάρωση (Polling) Ας υποθέσουμε ότι έχουμε ένα πληκτρολόγιο συνδεδεμένο σε ένα υπολογιστικό σύστημα. Το πληκτρολόγιο είναι μια μονάδα εισόδου.

Διαβάστε περισσότερα

Μάθημα 1 Πρώτα Βήματα στη Σχεδίαση μίας Εγκατάστασης: Απαιτούμενες Ηλεκτρικές Γραμμές και Υπολογισμοί

Μάθημα 1 Πρώτα Βήματα στη Σχεδίαση μίας Εγκατάστασης: Απαιτούμενες Ηλεκτρικές Γραμμές και Υπολογισμοί Μάθημα 1 Πρώτα Βήματα στη Σχεδίαση μίας Εγκατάστασης: Απαιτούμενες Ηλεκτρικές Γραμμές και Υπολογισμοί Φορτίων Περίληψη Πως σχεδιάζουμε μία ηλεκτρική εγκατάσταση? Ξεκινώντας από τα αρχιτεκτονικά σχέδια

Διαβάστε περισσότερα

ΑΥΤΟΜΑΤΟ ΣΥΣΤΗΜΑ ΕΝΑΛΛΑΓΗΣ ΤΑΧΥΤΗΤΩΝ ΣΕ ΠΟΔΗΛΑΤΟ

ΑΥΤΟΜΑΤΟ ΣΥΣΤΗΜΑ ΕΝΑΛΛΑΓΗΣ ΤΑΧΥΤΗΤΩΝ ΣΕ ΠΟΔΗΛΑΤΟ Τ.Ε.Ι. ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ ΑΥΤΟΜΑΤΟ ΣΥΣΤΗΜΑ ΕΝΑΛΛΑΓΗΣ ΤΑΧΥΤΗΤΩΝ ΣΕ ΠΟΔΗΛΑΤΟ ΟΝΟΜΑΤΑ ΦΟΙΤΗΤΩΝ: ΒΟΥΡΔΕΡΗΣ ΑΝΤΩΝΙΟΣ Α.Μ: 30086 ΙΩΑΝΝΟΥ ΙΩΑΝΝΗΣ Α.Μ: 33359 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΝΙΚΟΛΑΟΥ ΓΡΗΓΟΡΗΣ Ιστορική

Διαβάστε περισσότερα

Εγχειρίδιο χρήσης. Ασύρματο εσωτερικό ραντάρ GSC-P829

Εγχειρίδιο χρήσης. Ασύρματο εσωτερικό ραντάρ GSC-P829 Εγχειρίδιο χρήσης Ασύρματο εσωτερικό ραντάρ GSC-P829 ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΛΕΙΤΟΥΡΓΙΑΣ Ο GSC-P829 παθητικός υπέρυθρος ανιχνευτής συνδυάζει ψηφιακή, διπλού-πυρήνα ελέγχου, ασαφής λογικής, τεχνολογία επεξεργασίας

Διαβάστε περισσότερα

Οδηγός εγκατάστασης της επέκτασης εμβέλειας WiFi WN2000RPT

Οδηγός εγκατάστασης της επέκτασης εμβέλειας WiFi WN2000RPT Οδηγός εγκατάστασης της επέκτασης εμβέλειας WiFi WN2000RPT Έναρξη χρήσης Η Επέκταση εμβέλειας WiFi της NETGEAR αυξάνει την απόσταση κάλυψης ενός δικτύου WiFi ενισχύοντας το υπάρχον σήμα WiFi και βελτιώνοντας

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016)

ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016) ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016) Περιγραφή της Άσκησης Στόχος της άσκησης είναι η δημιουργία ενός συστήματος διαχείρισης φωτισμού. Μία φωτομεταβαλλόμενη αντίσταση (LDR) θα διαπιστώνει την ποσότητα του φωτός

Διαβάστε περισσότερα

Μέτρηση Θερμοκρασίας με τον αισθητήρα TMP36. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων. Βασική δομή ενός προγράμματος στο LabVIEW.

Μέτρηση Θερμοκρασίας με τον αισθητήρα TMP36. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων. Βασική δομή ενός προγράμματος στο LabVIEW. Σκοπός Μάθημα 2 Δραστηριότητα 1 Μέτρηση Θερμοκρασίας με τον αισθητήρα TMP36. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Βασική δομή ενός προγράμματος στο LabVIEW. Εμπρόσθιο Πλαίσιο (front panel). Σχεδίαση

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΠΡΑΚΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Αυτοματισμοί και

Διαβάστε περισσότερα

Γρήγορη έναρξη. Επέκταση εμβέλειας WiFi N300. Μοντέλο WN3100RPv2

Γρήγορη έναρξη. Επέκταση εμβέλειας WiFi N300. Μοντέλο WN3100RPv2 Γρήγορη έναρξη Επέκταση εμβέλειας WiFi N300 Μοντέλο WN3100RPv2 Έναρξη χρήσης Η Επέκταση εμβέλειας WiFi της NETGEAR αυξάνει την απόσταση κάλυψης ενός δικτύου WiFi ενισχύοντας το υπάρχον σήμα WiFi και βελτιώνοντας

Διαβάστε περισσότερα

Εγκατάσταση. Επέκταση εμβέλειας WiFi N300. Μοντέλο EX2700

Εγκατάσταση. Επέκταση εμβέλειας WiFi N300. Μοντέλο EX2700 Εγκατάσταση Επέκταση εμβέλειας WiFi N300 Μοντέλο EX2700 Έναρξη χρήσης Η Επέκταση εμβέλειας WiFi της NETGEAR αυξάνει την απόσταση κάλυψης ενός δικτύου WiFi ενισχύοντας το υπάρχον σήμα WiFi και βελτιώνοντας

Διαβάστε περισσότερα

Δρομολογητής WiFi N150 (N150R)

Δρομολογητής WiFi N150 (N150R) Easy, Reliable & Secure Οδηγός εγκατάστασης Δρομολογητής WiFi N150 (N150R) Εμπορικά σήματα Οι επωνυμίες και τα ονόματα προϊόντων είναι εμπορικά σήματα ή σήματα κατατεθέντα των αντίστοιχων κατόχων τους.

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ 1.1 ΕΙΣΑΓΩΓΗ ΣΤΑ ΑΝΑΛΟΓΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ 1 1.1.1 Αναλογικά σήματα 1 1.1.2 Οι αντιστάσεις 3 1.1.3 Οι πυκνωτές 7 1.1.4 Τα πηνία 11 1.1.5 Οι δίοδοι 13 1.1.6

Διαβάστε περισσότερα

Ethernet Ethernet ΙΕΕΕ CSMA/CD

Ethernet Ethernet ΙΕΕΕ CSMA/CD Ethernet Τα τοπικά δίκτυα είναι συνήθως τύπου Ethernet ή λέμε ότι ακολουθούν το πρότυπο ΙΕΕΕ 802.3 Ακολουθούν το μηχανισμό CSMA/CD (Πολλαπλή πρόσβαση με Ακρόαση Φέροντος και Ανίχνευση Συγκρούσεων). Πολλαπλή

Διαβάστε περισσότερα

Εξαμηνιαία Εργασία 2013 Προγραμματίζοντας τον Arduino στη C Μέρος Α : Υλικά

Εξαμηνιαία Εργασία 2013 Προγραμματίζοντας τον Arduino στη C Μέρος Α : Υλικά Σκοπός Εξαμηνιαία Εργασία 2013 Προγραμματίζοντας τον Arduino στη C Μέρος Α : Υλικά Μικροελεγκτές Πλακέτα Arduino Προσομοίωση Μικροελεγκτών Προγραμματισμός Μικροελεγκτών στη C. 7.1 ΕΠΙΔΙΩΞΗ ΤΗΣ ΕΡΓΑΣΙΑΣ

Διαβάστε περισσότερα

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο Αρχές Δικτύων Επικοινωνιών Επικοινωνίες Δεδομένων Μάθημα 4 ο Τα επικοινωνιακά δίκτυα και οι ανάγκες που εξυπηρετούν Για την επικοινωνία δύο συσκευών απαιτείται να υπάρχει μεταξύ τους σύνδεση από σημείο

Διαβάστε περισσότερα

Ιατρικά Ηλεκτρονικά. Χρήσιμοι Σύνδεσμοι. ΙΑΤΡΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ - ΔΙΑΛΕΞΗ 2η. Σημειώσεις μαθήματος: E mail:

Ιατρικά Ηλεκτρονικά. Χρήσιμοι Σύνδεσμοι. ΙΑΤΡΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ - ΔΙΑΛΕΞΗ 2η. Σημειώσεις μαθήματος: E mail: Ιατρικά Ηλεκτρονικά Δρ. Π. Ασβεστάς Τμήμα Μηχανικών Βιοϊατρικής Τεχνολογίας Τ.Ε Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio127/ E mail: pasv@teiath.gr 2 1 Όπως

Διαβάστε περισσότερα

Υλοποίηση Τεχνολογιών έξυπνων σπιτιών

Υλοποίηση Τεχνολογιών έξυπνων σπιτιών Πανεπιστήμιο Μακεδονίας Μεταπτυχιακό Εφ. Πληροφορικής Ειδικευση Συστήματα Υπολογιστών Μεταπτυχιακή Εργασία Υλοποίηση Τεχνολογιών έξυπνων σπιτιών Εκπόνηση: Απόστολος Πλαστήρας Επιβλέπων Καθηγητής: Αλέξανδρος

Διαβάστε περισσότερα

ΣΥΝΘΕΤΑ ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΙΣΜΟΥ. Μετά την ολοκλήρωση της ενότητας αυτής θα μπορείτε:

ΣΥΝΘΕΤΑ ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΙΣΜΟΥ. Μετά την ολοκλήρωση της ενότητας αυτής θα μπορείτε: Ενότητα 2.6 Κεφάλαιο 2 ΣΥΝΘΕΤΑ ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΙΣΜΟΥ ΣΤΟΧΟΙ Μετά την ολοκλήρωση της ενότητας αυτής θα μπορείτε: Να αιτιολογείτε την αναγκαιότητα χρησιμοποίησης κάθε είδους αυτοματισμού. Να διακρίνετε

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ ΤΗΛΕΦΩΝΙΑ ΕΙΣΑΓΩΓΗ

ΕΝΟΤΗΤΑ ΤΗΛΕΦΩΝΙΑ ΕΙΣΑΓΩΓΗ ΕΝΟΤΗΤΑ 4 4.0 ΤΗΛΕΦΩΝΙΑ ΕΙΣΑΓΩΓΗ Η τηλεφωνία είναι ένα βασικό και πολύ διαδεδομένο ηλεκτρολογικό επικοινωνιακό σύστημα. Η τηλεφωνία είναι από τα παλαιότερα ηλεκτρολογικά επικοινωνιακά συστήματα. Το τηλέφωνο

Διαβάστε περισσότερα

Ασύρµατη λειτουργία (µόνο σε επιλεγµένα µοντέλα)

Ασύρµατη λειτουργία (µόνο σε επιλεγµένα µοντέλα) Ασύρµατη λειτουργία (µόνο σε επιλεγµένα µοντέλα) Οδηγός χρήσης Copyright 2006 Hewlett-Packard Development Company, L.P. Οι επωνυµίες Microsoft και Windows είναι εµπορικά σήµατα κατατεθέντα της εταιρίας

Διαβάστε περισσότερα

TP-LINK WA850 ΟΔΗΓΙΕΣ ΣΥΝΔΕΣΗΣ

TP-LINK WA850 ΟΔΗΓΙΕΣ ΣΥΝΔΕΣΗΣ TP-LINK WA850 ΟΔΗΓΙΕΣ ΣΥΝΔΕΣΗΣ ΚΑΤΑΣΤΑΣΗ ΕΝΔΕΙΞΕΩΝ (LED) RE Wireless Power Ethernet Σήμα Σβηστό Αναβοσβήνει Σταθερά αναμένο Σβηστό Σταθερά αναμένο Σβηστό Σταθερά αναμένο Σβηστό Σταθερά αναμένο Σβηστό Σταθερά

Διαβάστε περισσότερα

«ΑΣΥΡΜΑΤΟ ΣΥΣΤΗΜΑ ΕΠΙΤΗΡΗΣΗΣ, ΚΑΤΑΓΡΑΦΗΣ & ΕΛΕΓΧΟΥ ΑΝΤΛΙΟΣΤΑΣΙΩΝ» Τεχνική έκθεση Προδιαγραφές Προϋπολογισμός

«ΑΣΥΡΜΑΤΟ ΣΥΣΤΗΜΑ ΕΠΙΤΗΡΗΣΗΣ, ΚΑΤΑΓΡΑΦΗΣ & ΕΛΕΓΧΟΥ ΑΝΤΛΙΟΣΤΑΣΙΩΝ» Τεχνική έκθεση Προδιαγραφές Προϋπολογισμός Δ/ΝΣΗ ΤΕΧΝΙΚΩΝ ΥΠΗΡΕΣΙΩΝ ΤΜΗΜΑ ΑΡΔΕΥΣΗΣ ΤΙΤΛΟΣ ΜΕΛΕΤΗΣ «ΑΣΥΡΜΑΤΟ ΣΥΣΤΗΜΑ ΕΠΙΤΗΡΗΣΗΣ, ΚΑΤΑΓΡΑΦΗΣ & ΕΛΕΓΧΟΥ ΑΝΤΛΙΟΣΤΑΣΙΩΝ» Τεχνική έκθεση Προδιαγραφές Προϋπολογισμός Προϋπολογ. : 9.963,00 Με ΦΠΑ 23% Χρήση

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής) ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α Γενικού Λυκείου (Μάθημα Επιλογής) Σύγχρονα Υπολογιστικά Συστήματα τους υπερυπολογιστές (supercomputers) που χρησιμοποιούν ερευνητικά εργαστήρια τα μεγάλα συστήματα (mainframes)

Διαβάστε περισσότερα

XTC45 universal timer

XTC45 universal timer XTC45 universal timer Περιγραφή Ο XTC45 είναι ένας χρονοδιακόπτης γενικής χρήσης ο οποίος μπορεί να ελεγχθεί και να προγραμματιστεί με το λογισμικό που τον συνοδεύει, μέσω ενσύρματου ή ασύρματου δικτύου

Διαβάστε περισσότερα

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων Εργαστήριο ενσωματωμένων συστημάτων Παρουσίαση 2: Βασικός Προγραμματισμός Arduino (AVR) Εργαστήριο Αυτομάτου Ελέγχου Η πλατφόρμα Arduino Microcontroller: ATmega328 Operating Voltage: 5V Digital I/O Pins:

Διαβάστε περισσότερα

Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα

Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα 1ο ΕΠΑΛ Περάματος 7ο ΕΚ Πειραιά Πλακέτα Arduino Το 2005 oι Massimo Banzi και David Cueartielles στο Ivrea Δημιουργούν την υπολογιστική πλατφόρμα Arduino.

Διαβάστε περισσότερα

Εγκατάσταση. Επέκταση εμβέλειας WiFi N600. Μοντέλο WN3500RP

Εγκατάσταση. Επέκταση εμβέλειας WiFi N600. Μοντέλο WN3500RP Εγκατάσταση Επέκταση εμβέλειας WiFi N600 Μοντέλο WN3500RP Έναρξη χρήσης Η Επέκταση εμβέλειας WiFi της NETGEAR αυξάνει την απόσταση κάλυψης ενός δικτύου WiFi ενισχύοντας το υπάρχον σήμα WiFi και βελτιώνοντας

Διαβάστε περισσότερα

Η πρωτοποριακή υπηρεσία για απόλυτο έλεγχο στο χώρο σας! powered by

Η πρωτοποριακή υπηρεσία για απόλυτο έλεγχο στο χώρο σας! powered by Η πρωτοποριακή υπηρεσία για απόλυτο έλεγχο στο χώρο σας! O χώρος σας, όπως δεν τον έχετε φανταστεί ξανά! Το σπίτι σας είναι ο χώρος που ζείτε και θέλετε να είναι άνετο, ασφαλές, λειτουργικό και να προφυλάσσει

Διαβάστε περισσότερα

Α5.1 Εισαγωγή στα Δίκτυα. Α Λυκείου

Α5.1 Εισαγωγή στα Δίκτυα. Α Λυκείου Α5.1 Εισαγωγή στα Δίκτυα Α Λυκείου Εισαγωγή Δίκτυο Υπολογιστών (Computer Network) είναι μια ομάδα από δύο ή περισσότερους υπολογιστές ή άλλες συσκευές που συνδέονται μεταξύ τους με σκοπό να ανταλλάσσουν

Διαβάστε περισσότερα

Βασικές Αρχές Εφαρμογών Ελέγχου Φωτισμού. Εκπαιδευτικό κέντρο ISC

Βασικές Αρχές Εφαρμογών Ελέγχου Φωτισμού. Εκπαιδευτικό κέντρο ISC Βασικές Αρχές Εφαρμογών Ελέγχου Φωτισμού Εκπαιδευτικό κέντρο ISC July 2009 Ανακαλύψτε τις ανάγκες και τις λύσεις για τον έλεγχο φωτισμού Κύκλωμα απλού διακόπτη Κύκλωμα διακόπτη αλέ-ρετούρ Έλεγχος φωτισμού

Διαβάστε περισσότερα

Περιεχόμενα συσκευασίας

Περιεχόμενα συσκευασίας Εμπορικά σήματα Το NETGEAR, το λογότυπο NETGEAR και το Connect with Innovation είναι εμπορικά σήματα ή/και σήματα κατατεθέντα της NETGEAR, Inc. ή/και των θυγατρικών της στις Ηνωμένες Πολιτείες Αμερικής

Διαβάστε περισσότερα

Plugwise Business ιαχείριση και Εξοικονόµηση ενέργειας στο Εργασιακό περιβάλλον.

Plugwise Business ιαχείριση και Εξοικονόµηση ενέργειας στο Εργασιακό περιβάλλον. Plugwise Business ιαχείριση και Εξοικονόµηση ενέργειας στο Εργασιακό περιβάλλον. Το Plugwise είναι ένα εύχρηστο σύστηµα διαχείρισης ενέργειας σε εργασιακούς χώρους. Μετράει την κατανάλωση ρεύµατος κάθε

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 10: ΟΔΗΓΗΣΗ ΚΙΝΗΤΗΡΩΝ

ΕΝΟΤΗΤΑ 10: ΟΔΗΓΗΣΗ ΚΙΝΗΤΗΡΩΝ ΕΝΟΤΗΤΑ 10: ΟΔΗΓΗΣΗ ΚΙΝΗΤΗΡΩΝ Στόχος και Περίγραμμα της Ενότητας 10 Στόχος της παρουσίασης Παρουσίαση της βασικής ιδέα και απλών παραδειγμάτων για την οδήγηση DC και βηματικών κινητήρων με το Arduino.

Διαβάστε περισσότερα

Η πρωτοποριακή υπηρεσία για απόλυτο έλεγχο στο χώρο σας! powered by

Η πρωτοποριακή υπηρεσία για απόλυτο έλεγχο στο χώρο σας! powered by Η πρωτοποριακή υπηρεσία για απόλυτο έλεγχο στο χώρο σας! O χώρος σας, Οφέλη όπως δεν τον έχετε φανταστεί ξανά! Άνεση στην καθημερινότητα Ασφάλεια, έλεγχος και προστασία Διαμορφώστε την ατμόσφαιρα του χώρου

Διαβάστε περισσότερα

ΠΡΟΪΟΝΤΑ ΤΗΣ ΣΥΝΔΕΔΕΜΕΝΗΣ ΕΓΚΑΤΑΣΤΑΣΗΣ. Celiane TM

ΠΡΟΪΟΝΤΑ ΤΗΣ ΣΥΝΔΕΔΕΜΕΝΗΣ ΕΓΚΑΤΑΣΤΑΣΗΣ. Celiane TM Celiane TM Μία συνδεδεμένη εγκατάσταση αποτελείται από ενσύρματα προϊόντα που τοποθετούνται ως νέα ή σε αντικατάσταση των υπαρχόντων διακοπτών και πριζών, και ασύρματους διακόπτες που συσχετίζονται με

Διαβάστε περισσότερα

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 4ο ΜΝΗΜΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 4ο ΜΝΗΜΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17 ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 4ο ΜΝΗΜΕΣ Μνήμες (Memory) - Είναι ημιαγώγιμα κυκλώματα που μπορούν να αποθηκεύσουν ένα σύνολο από δυαδικά ψηφία (bit). - Μια μνήμη αποθηκεύει λέξεις (σειρές από bit). - Σε κάθε

Διαβάστε περισσότερα

ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ARDUINO

ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ARDUINO ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ARDUINO Αντώνιος Καραγεώργος Βασικά Στοιχεία της Γλώσσας Προγραμματισμού Arduino Constants: HIGH/LOW Ορίζουν το επίπεδο της τάσης εισόδου/εξόδου ενός pin INPUT/OUTPUT Ορίζουν την

Διαβάστε περισσότερα

Κωνσταντίνος Γκαλονάκης. Arduino: Προγραμματισμός στην πράξη

Κωνσταντίνος Γκαλονάκης. Arduino: Προγραμματισμός στην πράξη Κωνσταντίνος Γκαλονάκης Arduino: Προγραμματισμός στην πράξη 1 Σύνδεση του Arduino με τον Η/Υ και προγραμματισμός αυτού. 1. Εγκατάσταση περιβάλλοντος Arduino IDE Για να προγραμματίσετε τη μονάδα σας θα

Διαβάστε περισσότερα