ΔΙΠΛΩMΑΤΙΚΗ ΕΡΓΑΣΙΑ. Tης Φοιτήτριας του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

Σχετικά έγγραφα
Θέμα: Προηγμένες Τεχνικές για την Παρακολούθηση και τον Έλεγχο Κτιριακών Ενεργειακών Καταναλώσεων

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

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

Ενότητα 3. Στρώµα Ζεύξης: Αρχές Λειτουργίας & Το Υπόδειγµα του Ethernet

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

Κινητές Επικοινωνίες & Τηλεπικοινωνιακά Δίκτυα

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Ι. Σημειώσεις Θεωρίας

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 5ο ΚΕΦΑΛΑΙΟ

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

Εργαστήριο 4 Πρωτόκολλα Δρομολόγησης

WIRELESS SENSOR NETWORKS (WSN)

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η

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

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

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP

T.E.I. ΗΠΕΙΡΟΥ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΟΙΚΗΣΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Μοντέλο Ανάπτυξης Ασύρµατων Αισθητήρων και Πληροφοριακού Ελέγχου µέσω Ενσωµατωµένου Συστήµατος

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η. Αρχές Δικτύων Επικοινωνιών

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Μετάδοσης Δεδομένων. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

1.5.1 ΓΕΦΥΡΑ (BRIDGE) Εικόνα Επίπεδα λειτουργίας επαναλήπτη, γέφυρας, δρομολογητή και πύλης ως προς το μοντέλο OSI.

- Δομή πλαισίου Ethernet - Πλαίσια Ethernet μεγάλου μεγέθους (Jumbo frames)

ΤΕΙ Στερεάς Ελλάδας Τμ. Ηλ.γων Μηχ/κων ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 4: Επίπεδο 3 το πρωτόκολλο IP

ΔΙΑΣΥΝΔΕΣΗ ΔΙΚΤΥΩΝ (INTERNETWORKING)

ΔΙΚΤΥΑ Η/Υ ΙΙ. Γέφυρες

ΕΠΙΠΕΔΟ ΣΥΝΔΕΣΗΣ ΜΑC

Πτυχιακή Εργασία. Ασύρματα Δίκτυα της Τεχνολογίας Hot Spot

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 1 ο ΚΕΦΑΛΑΙΟ

Δίκτυα Τηλεπικοινωνιών. και Μετάδοσης

Δροµολόγηση (Routing)

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ. Ιωάννης Σταυρακάκης, Καθηγητής Password: edi

Περίληψη. Ethernet Δίκτυα Δακτυλίου, (Token Ring) Άλλα Δίκτυα Σύνδεση Τοπικών Δικτύων.

Δίκτυα Υπολογιστών I

ΤΕΙ ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ

Υλοποίηση τεχνικών για την αποφυγή συμφόρησης σε τοπικά ασύρματα δίκτυα αισθητήρων

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

Ethernet Ethernet ΙΕΕΕ CSMA/CD

Ασύρµατα ίκτυα Αισθητήρων. Σαράντης Πασκαλής Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ. Ιωάννης Σταυρακάκης, Καθηγητής Password: edi

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

Τοπικά Δίκτυα. Ethernet Δίκτυα Δακτυλίου, (Token Ring) Άλλα Δίκτυα Σύνδεση Τοπικών Δικτύων.

Μάθημα 6: Αρχιτεκτονική TCP/IP

ΤΕΙ Στερεάς Ελλάδας Τμ. Ηλ.γων Μηχ/κων ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

Νέες Επικοινωνιακές Τεχνολογίες

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

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

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

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

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ «ΠΡΟΗΓΜΕΝΕΣ ΔΙΚΤΥΑΚΕΣ ΤΕΧΝΟΛΟΓΙΕΣ» ΔΡΟΜΟΛΟΓΗΣΗ ΣΕ AD HOC ΔΙΚΤΥΑ. Γενικά

Δίκτυα Η/Υ Θεωρία. Διάλεξη 2η

ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα. λ από τον ρυθμό μετάδοσής της. Υποθέτοντας ότι ο κόμβος A

ΠΕΡΙΕΧΟΜΕΝΑ ΕΡΓΑΣΙΑΣ ΕΙΣΑΓΩΓΗ 5

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Δρομολόγηση

ΕΠΛ 476: ΚΙΝΗΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ (MOBILE NETWORKS)

Πρωτόκολλα Διαδικτύου

Ιατρική Πληροφορική ΔΡ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

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

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της. Ερώτηση 2 η : Ποια είναι τα κύρια χαρακτηριστικά της μεταγωγής μηνύματος?

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα

Ad Hoc Routing Πρωτόκολλα. Κατηγορίες και κύρια πρωτόκολλα

Μάθημα 3: Τοπολογίες Δικτύων

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95

Μαρία Μακρή Α.Ε.Μ: 3460

Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών. ΗΥ335a Δίκτυα Υπολογιστών Διδάσκουσα: Παπαδοπούλη Μαρία BlindSense

ΤΕΙ Κρήτης, Παράρτηµα Χανίων

1.BLUETOOTH 2.HOMERF 3.HIPERLAN 2 4.IEEE

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ

Επαναληπτικές Ασκήσεις Μαθήματος

2 η Σειρά Ασκήσεων Data Link Layer

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

Σύγχρονη και Ασύγχρονη Σειριακή Επικοινωνία

Άσκηση 1 η Τοπικά Δίκτυα Δεδομένων (LANs)

Δίκτυα Θεωρία

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

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

ΕΛΕΓΧΟΣ ΣΥΜΦΟΡΗΣΗΣ ΣΕ ΑΣΥΡΜΑΤΑ ΔΙΚΤΥΑ

Δρομολόγηση (Routing)

ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ. Ιωάννης Σταυρακάκης, Καθηγητής Password: edi

ΔΙΚΤΥΑ Η/Υ ΙΙ. Πρωτόκολλα δρομολόγησης

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

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

Πρωτόκολλα Διαδικτύου

Κεφάλαιο 7.3. Πρωτόκολλο TCP

Περίληψη Λαμπρόπουλος

Κεφάλαιο 5: Τοπικά ίκτυα

Διάρθρωση. Δίκτυα Υπολογιστών I Δίκτυα άμεσου συνδέσμου: Μέρος Α. Διάρθρωση. Δίκτυα άμεσου συνδέσμου και μοντέλο OSI (1/2) Ευάγγελος Παπαπέτρου

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο. Ψηφιακή Υπογραφή και Αυθεντικοποίηση Μηνύματος

1.1 Επαναλήπτες (repeaters ή regenerators)

Κεφάλαιο 2. Υπολογιστές και Τεχνολογία Επικοινωνιών Παρελθόν - Παρόν - Μέλλον

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΔΙΠΛΩMΑΤΙΚΗ ΕΡΓΑΣΙΑ Tης Φοιτήτριας του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών ΜΑΥΡΙΚΟΠΟΥΛΟΥ ΒΙΚΤΩΡΙΑ Α.Μ.: 227560 Ανάπτυξη εφαρμογής ελέγχου για έλεγχο κατανάλωσης ενέργειας Ν ο Επιβλέπων: καθηγητής Σταύρος Κουμπιάς Πάτρα, Μήνας Ιούλιος Έτος 2016 ΠΑΝΕΠΙΣΤΗΜΙΟΥΠΟΛΗ ΠΑΤΡΑΣ 26504 ΡΙΟ - ΠΑΤΡΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η διπλωματική εργασία με θέμα: "ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΕΛΕΓΧΟΥ ΓΙΑ ΕΛΕΓΧΟ ΚΑΤΑΝΑΛΩΣΗΣ ΕΝΕΡΓΕΙΑΣ" της φοιτήτριας του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών: Μαυρικοπούλου Βικτώρια του Ιωάννη (Α.Μ. 227560) Παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις 14/07/2016 Ο Επιβλέπων Ο Διευθυντής του Τομέα Καθηγητής Σταύρος Κουμπιάς Καθηγητής Ευθύμιος Χούσος ΠΑΝΕΠΙΣΤΗΜΙΟΥΠΟΛΗ ΠΑΤΡΑΣ 26504 ΡΙΟ - ΠΑΤΡΑ

1

Αριθμός Διπλωματικής Εργασίας: ΤΙΤΛΟΣ: "ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΕΛΕΓΧΟΥ ΓΙΑ ΕΛΕΓΧΟ ΚΑΤΑΝΑΛΩΣΗΣ ΕΝΕΡΓΕΙΑΣ " Φοιτήτρια: Μαυρικοπούλου Ι. Βικτώρια Επιβλέπων: Σταύρος Κουμπιάς Πρόλογος Η ραγδαία εξέλιξη του Internet of things και της smart grid τεχνολογίας δίνει νέες διαστάσεις στην αλληλεπίδραση του ανθρώπου με τη κατοικία του. Ο ένοικος ενός smart home έχει τη δυνατότητα απομακρυσμένου ελέγχου των έξυπνων οικιακών συσκευών γεγονός που οδηγεί στον αυτοματισμό πολλών ενεργειών και κατά συνέπεια στη διευκόλυνση του στα πλαίσια της καθημερινότητας. Αυτό το προφίλ ελέγχου κυρίως όμως εξυπηρετεί απώτερους σκοπούς όχι μόνο σε προσωπικό επίπεδο αλλά στο σύνολο της κοινωνίας καθώς καλύπτει την ανάγκη για αποδοτικότερη αξιοποίηση της ενέργειας. Τα τελευταία χρόνια παρατηρείται μια στροφή της επιστήμης προς τον έλεγχο της ενεργειακής κατανάλωσης, γνωστή ως smart grid science και στα πλαίσια αυτής έχει εισαχθεί ο όρος των «Έξυπνων Δικτύων». Τα έξυπνα δίκτυα αποτελούν μια εξέλιξη των σημερινών δικτύων ηλεκτρικής ενέργειας και επιτρέπουν την αποδοτικότερη χρήση της υπάρχουσας εγκατεστημένης ισχύος και της υποδομής μεταφοράς και διανομής ενέργειας. Σε αυτή τη προσπάθεια ελέγχου και παρακολούθησης ενέργειας στα πλαίσια ενός «smart home» παίζει καθοριστικό ρόλο η ανάπτυξη του ΙοΤ. Με τον όρο Ιnternet of Things αναφερόμαστε σε σενάρια όπου η συνδεσιμότητα δικτύου και η υπολογιστική ικανότητα επεκτείνεται σε αντικείμενα, αισθητήρες, οικιακές συσκευές γεγονός που επιτρέπει την μεταξύ τους επικοινωνία καθώς και την ανταλλαγή δεδομένων με την ελάχιστη ανθρώπινη παρέμβαση. 2

3

Ευχαριστίες Η εργασία αυτή αποτέλεσε ένα από τα σημαντικότερα στάδια των σπουδών μου μέσα από την οποία μου δόθηκε η ευκαιρία να συνδυάσω τη θεωρία του τομέα Ηλεκτρονικής και Υπολογιστών με τη πράξη και να αποκτήσω γνώσεις και εμπειρία πάνω στο επίπεδο των Ηλεκτρονικών Εφαρμογών. Θα ήθελα να ευχαριστήσω τον επιβλεποντά μου καθηγητή Σταύρο Κουμπιά για την ευκαιρία που μου έδωσε να ασχοληθώ με ένα τόσο ενδιαφέρον πρακτικό πεδίο και την εμπιστοσύνη που μου έδειξε. Επίσης θα ήθελα να ευχαριστήσω θερμά το φίλο μου Δήμο για τις συμβουλές του και την υποστηριξή του σε ένα βασικό κομμάτι υλοποίησης της διπλωματικής μου. Επιπλέον θα ήθελα να ευχαριστήσω τον μεταπτυχιακό φοιτητή Γιώργο Πάρη Μάκκα, ο οποίος έχει αναλάβει τη συνέχιση της εφαρμογής που διαπραγματεύεται η παρούσα διπλωματική εργασία, για τη βοήθεια του στα τελευταία βήματα που αφορούν το στήσιμο του γραφικού περιβάλλοντος. Τέλος θα ήθελα να ευχαριστήσω την οικογένεια και τους φίλους μου καθώς η δική τους συμπαράσταση και υποστήριξη συντέλεσε το βασικότερο κίνητρο για την επίτευξη της διπλωματικής εργασίας και την ολοκλήρωση των σπουδών μου. 4

ΠΕΡΙΕΧΟΜΕΝΑ 1 ΕΙΣΑΓΩΓΗ... 9 1.1 Σκοπός Διπλωματικής... 9 1.2 Μ2Μ επικοινωνίες... 9 1.3 Ιnternet of Things... 10 1.4 Wireless Sensor Networks... 10 1.5 Έξυπνα Δίκτυα... 10 1.6 Home Automation... 11 1.7 Έξυπνοι Μετρητές... 13 2 ΣΤΟΙΒΑ ΠΡΩΤΟΚΟΛΛΟΥ ZIGBEE... 15 2.1 Εισαγωγή... 15 2.2 Zigbee & IEEE 802.15.4... 15 2.2.1 Στοίβα πρωτοκόλλου... 15 2.2.2 Χαρακτηριστικά Πρωτοκόλλου... 16 2.2.3 Ασφάλεια πρωτοκόλλου... 19 2.2.4 Εφαρμογές πρωτοκόλλου... 24 2.3 Επίπεδο δικτύου... 24 2.3.1 Τύποι κόμβων... 24 2.3.2 Σύνδεση με το δίκτυο και εκχώρηση διευθύνσεων... 26 2.3.3 Ανακάλυψη διαδρομής... 27 2.3.4 Επαναλήψεις μετάδοσης και πακέτα ACK... 29 3 ΠΡΟΔΙΑΓΡΑΦΗ ΤΟΥ ΕΠΙΠΕΔΟΥ ΕΦΑΡΜΟΓΗΣ... 31 3.1 Χbee PRO series 2... 31 3.2 Σειριακή επικοινωνία... 32 3.2.1 Εισαγωγή... 32 3.2.2 UART data flow... 33 5

3.2.3 Σειριακά δεδομένα στο Xbee... 33 3.2.4 Σειριακοί buffers... 34 3.3 Zigbee network... 34 3.3.1 PANID... 34 3.3.2 Device addresses... 35 3.3.3 Operating Channel... 36 3.3.4 Τοπολογία mesh... 37 3.3.5 Δρομολόγηση... 38 3.3.6 Transmission modes... 38 3.3.7 Fragmentation... 40 3.4 API mode... 41 3.5 ZDO-ZDP... 43 3.5.1 Ορισμός... 43 3.5.2 Attribute... 44 3.5.3 Endpoint... 44 3.5.4 Cluster... 44 3.5.5 ZDO... 45 3.6 Zigbee Cluster Library... 47 3.6.1 Λειτουργία... 47 3.6.2 ZCL frames... 51 3.6.3 Read attribute command... 53 3.6.4 Read attribute response command... 53 4 ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 57 4.1 Περιγραφή... 57 4.2 Libelium... 57 5 BΑΣΙΚΕΣ ΑΡΧΕΣ ΕΦΑΡΜΟΓΗΣ... 61 5.1 Μετρητικές συσκευές... 61 5.2 X-CTU... 63 5.2.1 Aρχικοποιήσεις... 63 5.2.2 Network address... 65 6

5.2.3 Active endpoints... 67 5.2.4 Node descriptor... 68 5.2.5 Simple Descriptor... 69 5.2.6 Management LQI (neighbor table)... 71 5.2.7 Management rtg (routing table)... 73 5.3 CLUSTERS... 74 5.3.1 Basic cluster... 75 5.3.2 Identify Cluster... 75 5.3.3 Groups Cluster... 76 5.3.4 On/Off cluster... 77 5.3.5 Time cluster... 78 5.3.6 Metering cluster... 79 6 ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΒΗΜΑΤΑ... 85 7 DESKTOP USER INTERFACE... 91 7.1 QT framework... 91 7.2 Σειριακή λήψη δεδομένων... 92 7.3 SQLite... 92 7.4 Γραφικές παραστάσεις... 92 8 ΠΑΡΑΡΤΗΜΑ Α... 97 9 ΒΙΒΛΙΟΓΡΑΦΙΑ... 107 7

8

1 Εισαγωγή 1.1 Σκοπός Διπλωματικής Σκοπός της παρούσας διπλωματικής εργασίας είναι η δημιουργία ενός ασύρματου δικτύου για τον έλεγχο της κατανάλωσης ισχύος στο χώρο του εργαστηρίου "Ηλεκτρονικών εφαρμογών". Η εφαρμογή λειτουργεί στα πλαίσια ενός Ηome Αutomation προφίλ και στο χώρο του εργαστηρίου είναι τοποθετημένα 3 dinrails σε 3 ηλεκτρολογικούς πίνακες για τη μέτρηση της ενεργειακής κατανάλωσης και μιας πρίζας σούκο για τη μέτρηση τόσο της ενέργειας όσο και της στιγμιαίας καταναλισκόμενης ισχύος των επιλεγμένων οικιακών συσκευών. Από τη σχεδίαση ενός Home Automation προφίλ εγείρονται σημαντικά ζητήματα όπως ασφάλεια, αξιοπιστία, ελεγξιμότητα και μετρησιμότητα της ενεργειακής κατανάλωσης, καθώς και ενεργό συμμετοχή του καταναλωτή. Για το λόγο αυτό χρησιμοποιείται το πρωτόκολλο Zigbee (IEEE 802.15.4), ιδανικό για εφαρμογές χαμηλού ρυθμού μετάδοσης δεδομένων και χαμηλών ενεργειακών απαιτήσεων. Μέσω του ενσωματωμένου συστήματος Libelium έγινε ο προγραμματισμός ενός waspmote σε Zigbee router με σκοπό τη σύνδεση του στο δίκτυο των μετρητικών συσκευών καθώς και τη παρακολούθησή τους με βάση τη συλλογή πληροφοριών. Παρακάτω εισάγονται οι βασικές έννοιες και αρχές σε επίπεδο επικοινωνίας και διαδικτύου πάνω στις οποίες στηρίχτηκε η διεξαγωξή της διπλωματικής εργασίας. 1.2 Μ2Μ επικοινωνίες Οι επικοινωνίες Μ2Μ (Machine-to-machine) αναφέρονται στη συνδεδιμότητα και επικοινωνία μεταξύ μηχανών και συσκευών χωρίς την ανθρώπινη παρέμβαση. Περιλαμβάνουν ένα μεγάλο αριθμό συσκευών οι οποίες, είτε ενσύρματα είτε ασύρματα, θα μπορούν να επικοινωνούν μεταξύ τους, να ανταλλάσουν πληροφορίες και να εκτελούν εντολές. Η διερεύνηση αυτής της επικοινωνίας φέρει στην επιφάνεια σημαντικά ζητήματα προς αντιμετώπιση, με κυριότερα την ανάγκη για τον έλεγχο απομακρυσμένων συσκευών, την ανάπτυξη της κατάλληλης ευφυϊας στις συσκευές και το σχεδιασμό μιας απλής και καθολικής αρχιτεκτονικής για δίκτυα έξυπνων συσκευών. 9

1.3 Ιnternet of Things Το M2M αποτελεί τμήμα μιας ευρύτερης έννοιας συνδεσιμότητας συσκευών, που ονομάζεται ΙοT (Internet of Τhings). Όσον αφορά το ΙοΤ, πρόκειται για ένα όραμα που αφορά τη διασύνδεση οποιουδήποτε αντικειμένου με δεδομένα προσβάσιμα από οποιαδήποτε εφαρμογή, ώστε ο μεγαλύτερος αριθμός χρηστών να επωφελείται από τη χρήση τους. Εδώ και μια δεκαετία το ΙοΤ αποτελεί εξαιρετικό σημείο αναφοράς και έρευνας, τόσο από τη βιομηχανική όσο και από την ακαδημαική κοινότητα παγκοσμίως. Υπόσχεται διασύνδεση μεταξύ ανθρώπων και αντικειμένων οποιαδήποτε στιγμή σε οποιοδήποτε μέρος με χρήση απλά του Διαδικτύου. Κατά συνέπεια έχει απασχολήσει πολλές επιχειρήσεις και ακαδημαικά ινστιτούτα για την επίτευξη της δημιουργίας ενός βέλτιστου κόσμου, όπου οι συσκευές θα μπορούν ανά πάσα στιγμή να λαμβάνουν γνώση ώστε να ικανοποιούν τις επιθυμίες του χρήστη. 1.4 Wireless Sensor Networks Τα ασύρματα δίκτυα αισθητήρων (Wireless Sensor Networks) αποτελούν δικτυακές υποδομές με μεγάλο αριθμό συσκευών - κόμβων χαμηλού κόστους. Αποστολή τους είναι η ανίχνευση, παρακολούθηση και καταγραφή συμβάντων σε μια περιοχή ενδιαφέροντος. Ένα δίκτυο WSN διοχετεύει τη συλλεγόμενη πληροφορία και τα μηνύματα διαχείρισης με πολλαπλά άλματα μέσω των κόμβων που το συνθέτουν προς το σταθμό βάσης. Είναι εφικτό να λειτουργεί για μεγάλο χρονικό διάστημα χωρίς την ανθρώπινη επίβλεψη. Για το λόγο αυτό, η εξέλιξη τους είναι ραγδαία, ειδικά σε περιβάλλοντα δυσπρόσιτα για τον άνθρωπο, στα οποία όμως η συλλογή πληροφοριών (ανίχνευση, παρακολούθηση ή καταγραφή συμβάντων) κρίνεται σημαντική. 1.5 Έξυπνα Δίκτυα Τα σύχρονα συστήματα ηλεκτρικής ενέργειας αντιμετωπίζουν διάφορα προβλήματα. Μερικά από αυτά είναι η σχετικά χαμηλή απόδοση και οι υψηλές απώλειες, ενώ η ραγδαία αύξηση της κατανάλωσης ηλεκτρικής ενέργειας αποτελεί 10

μια από τις σημαντικότερες προκλήσεις που έχουν να αντιμετωπίσουν. Η αντιμετώπιση θεμάτων αξιοπιστίας του δικτύου, όπως τυχαία συμβάντα, αλλά και θεμάτων ασφάλειας κρίνεται επιτακτική. Αυτή η ανάγκη για τη δημιουργία ηλεκτρικών συστημάτων για την αντιμετώπιση των παραπάνω ζητημάτων έχει οδηγήσει στην ανάπτυξη του όρου "έξυπνα δίκτυα". Χαρακτηριστικό των έξυπνων δικτύων είναι η αμφίδρομη επικοινωνία μεταξύ καταναλωτών και προμηθευτών ηλεκτρικής ενέργειας. Τα έξυπνα δίκτυα χρησιμοποιούν αισθητήρες, μετρητές, ψηφιακά συστήματα ελέγχου και εργαλεία ανάλυσης δεδομένων για την αυτοματοποίηση, παρακολούθηση και τον έλεγχο της αμφίδρομης ροής ενέργειας σε όλες τις λειτουργίες από το σταθμό ηλεκτροπαραγωγής μέχρι τα σπίτια των καταναλωτών. Με άλλα λόγια ένα έξυπνο δίκτυο είναι ένα ηλεκτρικό δίκτυο το οποίο έχει δημιουργηθεί για να συλλέγει πληροφορίες σχετικά με τις καταναλώσεις και να λαμβάνει αποφάσεις με τη χρήση της information and communications technology. Μερικά χαρακτηριστικά του είναι τα εξής : Είναι προσαρμοστικό και έχει τη δυνατότητα αυτοίασης. Εστιάζει στην πρόληψη, ανιχνεύει πιθανά προβλήματα και αποκρίνεται άμεσα χωρίς να επιδρά στον καταναλωτή. Οι χρήστες του έχουν πολλές επιλογές, είναι ενημερωμένοι και συμμετέχουν ενεργά στην αγορά ενέργειας. Είναι ανθεκτικό σε καταπονήσεις και φυσικές καταστροφές με ικανότητα ταχείας αποκατάστασης της βλάβης. Έχει απώτερο σκοπό την ικανοποίηση των απαιτήσεων των καταναλωτών προσφέρονταντας υψηλής ποιότητας ηλεκτρική ενέργεια ή διαφορετικές ποιότητες σε διαφορετικές τιμές. Διευκολύνει όλες τις επιλογές παραγωγής (ανανεώσιμες πηγές, διανεμημένη παραγωγή) και αποθήκευση ηλεκτρικής ενέργειας. 1.6 Home Automation Η τεχνολογία έχει αναπτυχθεί πλέον στο σημείο που μπορούμε να έχουμε την απαραίτητη προσέγγιση σε οικιακούς αυτοματισμούς, επιτρέποντας στις συσκευές να 11

επικοινωνούν μεταξύ τους καθώς και να ελέγχονται με ευέλικτους τρόπους. Μια ασύρματου δικτύου προσέγγιση σε αυτή την επικοινωνία και τον έλεγχο παρέχει μια εύκολη, οικονομικά αποδεκτή και επεκτάσιμη λύση για το λεγόμενο Ηome Αutomation. Πολλαπλές εφαρμογές Ηοme Automation μπορούν να ελεγχθούν από το ίδιο δίκτυο. Οι περισσότερες εφαρμογές σχετίζονται με ασύρματα δίκτυα ΗΑ καθώς η εγκατάσταση ενός ενσύρματου δικτύου HA είναι δαπανηρή και χρονοβόρα, εκτός αν πραγματοποιείται κατά την κατασκευή του κτιρίου. Τα πλεονεκτήματα ενός ασύρματου δικτύου ΗΑ βασισμένου στη χρήση radios είναι τα παρακάτω: Δεν απαιτεί μεγάλο κόστος ούτε καλωδίωση. Μπορεί να εγκατασταθεί εύκολα και φθηνά οποιαδήποτε στιγμή με την ελάχιστη δυνατή διακοπή. Μπορεί να επεκταθεί ανά πάσα στιγμή για την κάλυψη μιας ευρύτερης φυσικής περιοχής. Έχει τη δυνατότητα να ενσωματώσει περισσότερες περιοχές εφαρμογής ανά πάσα στιγμή. Το προφίλ εφαρμογής Zigbee Home Automation που παρουσιάζεται στην παρούσα διπλωματική εργασία διευκολύνει αυτή την ασύρματη λύση δικτύωσης. Ένα σύστημα Zigbee Home Automation μπορεί να οδηγήσει σε εξοικονόμηση ενέργειας, εξόδων και πόρων για ένα νοικοκυριό. Για την επίτευξη αυτού μπορούν να χρησιμοποιηθούν τα ακόλουθα : Σενάρια με χρονόμετρα: Η εξοικονόμηση ενέργειας μπορεί να επιτευχθεί μέσω της προσεκτικής διαμόρφωσης σεναρίων με χρονόμετρα με σκοπό να διασφαλιστεί ότι δεν καταναλώνεται περισσότερη ενέργεια από όση πραγματικά χρειάζεται. Αισθητήρες: Μπορούν να χρησιμοποιηθούν για τον καθορισμό ενεργοποίησης και απενεργοποίησης συσκευών. Για παράδειγμα ένας αισθητήρας κίνησης μπορεί να εντοπίσει ένα άτομο και να ανοίξει τα φώτα ενός δωματίου καθώς επίσης και να τα κλείσει στην περίπτωση που δεν ανιχνεύεται κίνηση. Μια τέτοια μέθοδος μπορεί να είναι πολύ χρήσιμη για τον έλεγχο φωτισμού σε έναν διάδρομο ή ένα γκαράζ ή στα εξωτερικά φώτα ενός κτιρίου. 12

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

14

2 Στοίβα πρωτοκόλλου Zigbee 2.1 Εισαγωγή Τα WPANs (Wireless Personal Area Networks) είναι προσωπικά, μικρής απόστασης, ασύρματα δίκτυα για διασυνδεδεμένες συσκευές συγκεντρωμένες συνήθως σε έναν ιδιωτικό χώρο εργασίας. Περιορίζονται στον χώρο αυτό που δε ξεπερνά τα 10 μέτρα προς κάθε κατεύθυνση και στοχεύουν σε χαμηλό κόστος, ισχύ και μικρή εμβέλεια. Η γνωστή ομάδα ΙΕΕΕ 802.15 έχει καθορίσει τρεις τάξεις για τα WPAN οι οποίες διαφοροποιούνται ανάλογα με το ρυθμό δεδομένων, την απόρροια της μπαταρίας και την ποιότητα υπηρεσιών (QoS). IEEE 802.15.3 : υψηλού ρυθμού δεδομένων WPAN - κατάλληλο για υψηλές απαιτήσεις σε QoS. ΙΕΕΕ 802.15.1 (γνωστό με την ονομασία Bluetooth) : μεσαίου ρυθμού δεδομένων WPAN - κατάλληλο για εφαρμογές σε κινητά τηλέφωνα και για μετάδοση φωνής λόγω επαρκούς QoS. IEEE 802.15.4 : χαμηλού ρυθμού δεδομένων WPAN - κατάλληλο για βιομηχανικές, οικιακές, ιατρικές εφαρμογές με πολύ χαμηλή κατανάλωση ισχύος, χαμηλό κόστος και με μικρές απαιτήσεις σε ρυθμό δεδομένων και QoS. O μικρός ρυθμός δεδομένων επιτρέπει στα λεγόμενα LR-WPAN πολύ μικρή κατανάλωση ισχύος. 2.2 Zigbee & IEEE 802.15.4 2.2.1 Στοίβα πρωτοκόλλου Η IEEE και η Zigbee Alliance καθόρισαν από κοινού ολόκληρη τη στοίβα του πρωτοκόλλου. Η αρχιτεκτονική της στοίβας Zigbee αποτελείται από ένα σύνολο από blocks που ονομάζονται επίπεδα. Κάθε επίπεδο εκτελεί ένα συγκεκριμένο σύνολο υπηρεσιών για το ανώτερο από αυτό επίπεδο. Το πρότυπο 802.15.4 καθορίζει τα δύο κατώτερα επίπεδα : το φυσικό (physical-phy) και το επίπεδο ελέγχου προσπέλασης μέσου (Medium Access Control-MAC). H Zigbee Alliance καθορίζει τα δύο ανώτερα επίπεδα: το επίπεδο δικτύου (Network layer-nwk) και το πλαίσιο για το επίπεδο 15

εφαρμογών. Το πλαίσιο του επιπέδου εφαρμογών αποτελείται από το υπό-επίπεδο υποστήριξης εφαρμογής (Application Support - APS) και τα αντικείμενα συσκευής Ζigbee (Zigbee Device Objects - ZDOs). Τα αντικείμενα εφαρμογής που έχουν καθοριστεί από τον κατασκευαστή χρησιμοποιούν το πλαίσιο και μοιράζονται το APS και τις υπηρεσίες ασφάλειας με τα ZDOs. Tα επίπεδα της στοίβας παρουσιάζονται στο figure 2-1. Figure 2-1 2.2.2 Χαρακτηριστικά Πρωτοκόλλου H Ζigbee Alliance, ένας όμιλος από διεθνείς συνεργαζόμενες εταιρείες, δημιούργησε ένα ενιαίο πρότυπο γνωστό με το όνομα Zigbee. Το πρότυπο αυτό αναπτύχθηκε για να πληρεί τις απαραίτητες προυποθέσεις χαμηλού κόστους, χαλημής 16

κατανάλωσης ισχύος και δημιουργίας ευέλικτων και επεκτάσιμων δικτύων. Οι συσκευές που λειτουργούν σύμφωνα με το Zigbee μπορούν να εκπέμπουν σε απόσταση 10-75 μέτρων, ανάλογα με το περιβάλλον RF και την κατανάλωση ισχύος που απαιτείται για τη συγκεκριμένη εφαρμογή. Οι ταχύτητες που υποστηρίζει το Zigbee περιορίζονται στα 250Kbps για τη συχνότητα των 2,4GHz παγκοσμίως, στα 20Kbps για τη συχνότητα των 868MHz στην Ευρώπη και τα 40Kbps για τη συχνότητα των 915ΜHz στη Βόρεια Αμερική και την Αυστραλία. Ένα δίκτυο Zigbee καταλαμβάνει μέχρι 16 κανάλια στην παγκόσμια συχνότητα των 2,4GHz, το καθένα από τα οποία αντιστοιχεί σε 5MHz. To κάθε κανάλι χωρίζεται φυσικά από τα υπόλοιπα του δικτύου. Το Zigbee έχει σχεδιαστεί για να μεταδίδει δεδομένα σε χαμηλές ταχύτητες και έτσι είναι λιγότερο ενεργοβόρο. Ανάλογα με την εφαρμογή και τον τύπο της μπαταρίας που θα χρησιμοποιηθεί, η αυτονομία ενός συστήματος με ασύρματη δικτύωση που κάνει χρήση αυτού του πρωτοκόλλου μπορεί να φτάσει μέχρι και τα 10 χρόνια. Επιγραμματικά το πρωτόκολλο Zigbee στοχεύει σε : Μεγάλα δίκτυα (ένας μεγάλος αριθμός συσκευών και μια μεγάλη περιοχή κάλυψης) τα οποία μπορούν να σχηματιστούν αυτόνομα και να λειτουργούν αξιόπιστα με ασφάλεια ακόμα και για χρόνια χωρίς την ανθρώπινη παρέμβαση. Πολύ μεγάλη διάρκεια ζωής της μπαταρίας (έτη χρήσης ενός ζευγαριού ΑΑ), πολύ χαμηλό κόστος υποδομής (χαμηλό κόστος συσκευών και εγκατάστασης), πολύ χαμηλή πολυπλοκότητα και μικρό μέγεθος. Έναν σχετικά χαμηλό ρυθμό δεδομένων. Το Zigbee στοχεύει επίσης σε μικρή στοίβα ικανή να ταιριάζει σε 8-bit μικροελεγκτές. Εδώ γεννιέται το ερώτημα για ποιο λόγο ένα πρωτόκολλο επικοινωνίας να ενθαρρύνει το χαμηλό ρυθμό δεδομένων. Η απάντηση βρίσκεται στο γεγονός ότι το Zigbee πρωτόκολλο αφορά ασύρματη παρακολούθηση και έλεγχο. Το Zigbee χρησιμοποιεί χαμηλά επίπεδα ενέργειας για τη μετάδοση της πληροφορίας και αποστέλλει τα δεδομένα σε μικρά πακέτα. 17

To Zigbee είναι ένα πρότυπο πρωτόκολλο δικτύωσης ειδικά σχεδιασμένο για τον έλεγχο και την αυτοματοποίηση. Ταιρίαζει σε 8-bit μικροελεγκτές καθώς επίσης μπορεί να λειτουργήσει και σε αυτούς που είναι 16-bit ή 32-bit. To Ζigbee επιτυχγάνει υψηλή αξιοπιστία λόγω των εξής χαρακτηριστικών : Το Ζigbee χρησιμοποιεί CSMA-CA (Carrier Sense Multiple Access- Collission Avoidance) για να αυξήσει την αποδοτικότητα. Πριν αρχίσει την μετάδοση ακούει το κανάλι. Όταν το κανάλι είναι άδειο, το Zigbee αρχίζει να μεταδίδει πακέτα. Αυτός ο τρόπος μετάδοσης εμποδίζει τα κανάλια να στέλνουν πληροφορίες την ίδια στιγμή ταυτόχρονα προκαλώντας αλλοιωμένα δεδομένα. Το Zigbee χρησιμοποιεί ένα 16-bit CRC, με την ονομασία FCS ( Frame Checksum) σε κάθε πακέτο. Αυτό επιβεβαιώνει ότι τα bits δεδομένων έιναι σωστά. Η Mesh δικτύωση του πρωτοκόλλου προσφέρει τρεις βελτιωμένες δυνατότητες σε ένα ασύρματο δίκτυο : επεκταμένο φάσμα μέσω multi-hop ad-hoc σχηματισμός του δικτύου αυτόματη ανακάλυψη διαδρομής "αυτοεπούλωση" Μέσω της mesh δικτύωσης τα δεδομένα μπορούν να φτάσουν από το πρώτο κόμβο σε οποιοδήποτε άλλο κόμβο του Zigbee δικτύου, ανεξαρτήτως της απόστασης μεταξύ τους αρκεί να υπάρχουν αρκετά μονοπάτια διαδρομής ενδιάμεσα. Επιπρόσθετα, το Zigbee παρέχει αξιόπιστη ταυτόχρονη μετάδοση προς μεγάλο αριθμό κόμβων του δικτύου (broadcast transmission) καθώς και μετάδοση σε οποιαδήποτε ομάδα κόμβων τη λεγόμενη multicasting. Το zigbee προκειμένου να ενισχύσει τη mesh δικτύωση σε περιορισμένης RAM συστήματα παρέχει το λεγόμενο tree routing ως μια back-up routing τεχνική. Τέλος προσφέρεται η δυνατότητα μιας αυτόματης end-to-end επιβεβαίωσης λήψης (acknowledgement), έτσι ώστε η κάθε εφαρμογή να γνωρίζει πότε ένα συγκεκριμένο πακέτο λήφθηκε από κάποιον άλλον κόμβο. Προς διευκόλυνση της εφαρμογής το Zigbee αναλαμβάνει να φιλτράρει οποιοδήποτε διπλά λαμβανόμενο πακέτο. 18

Το μυστικό της χαμηλής κατανάλωσης ενέργειας στο πρωτόκολλο Zigbee σε συνδυασμό με την ικανότητα ύπνου των radios και μικροελεγκτών είναι ο χαμηλός κύκλος καθηκόντων (low duty cycle). 'Ενας Zigbee κόμβος δεν χρειάζεται να κρατάει συνεχή επαφή με το δίκτυο για να παραμένει στο δίκτυο. Προκειμένου να συνυπάρχει με άλλες τεχνολογίες το Zigbee κρατάει χαμηλούς τους ρυθμούς δεδομένων στην εφαρμογή για αυτό και πολλοί το αποκαλούν "a very quiet protocol". 2.2.3 Ασφάλεια πρωτοκόλλου Το Zigbee χρησιμοποιεί το National Institute of Standards and Technology (NIST) Advanced Encryption Standard (AES). Το πρότυπο AES-128 είναι ένα block cipher το οποίο κρυπτογραφεί και αποκρυπτογραφεί πακέτα με έναν αρκετά ισχυρό τρόπο. Είναι ένα από τα πιο γνωστά και αξιόπιστα πρότυπα κρυπτογράφησης. Το Zigbee προσφέρει: Επιπλέον υπηρεσίες κρυπτογράφησης (τα κλειδία κρυπτογράφησης της εφαρμογής και του δικτύου εφαρμόζουν επιπλέον 128 ΑΕS κρυπτογράφη). Πιστοποίηση και αυθεντικότητα (association & authentication) - μόνο πιστοποιημένοι κόμβοι μπορούν να μπουν στο δίκτυο. Πρωτόκολλο δρομολόγησης (routing protocol): AODV, ένα ad hoc πρωτόκολλο αντίδρασης έχει εφαρμοστεί για να εκτελεί τη δρομολόγηση των δεδομένων και τη διαδικασία προώθησης σε κάθε κόμβο του δικτύου. Υπηρεσίες σε επίπεδο εφαρμογών. Μια θεωρητική έννοια με το όνομα "cluster" έχει ενταχθεί. Κάθε κόμβος ανήκει σε ένα προκαθορισμένο cluster και μπορεί να δεχτεί έναν προκαθορισμένο αριθμό από ενέργειες. Η ακεραιότητα των δεδομένων εξασφαλίζεται χάρις το Message Integrity Code (MIC) / Message authentication code (MAC). Αυτός ο κώδικας εξασφαλίζει την ακεραιότητα τόσο της MAC επικεφαλίδας όσο και του MAC φορτίου όπως φαίνεται στο figure 2-2 για το πρωτόκολλο 802.15.4. 19

Figure2-2 Υπάρχουν 3 πεδία στο IEEE 802.15.4 MAC frame που σχετίζονται με θέματα ασφάλειας : Frame control (MAC επικεφαλίδα) Αuxiliary Security Control (MAC επικεφαλίδα) Data payload (ΜΑC φορτίο) Figure2-3 To Αuxiliary Security Frame ενεργοποείται όταν το υποπεδίο Security Enable του Frame Control είναι ενεργοποιημένο. Υπάρχουν 3 πεδία : 20

Security Control (1B): διευκρινίζει το είδος της προστασίας που χρησιμοποιείται. Frame Counter (4B): είναι ένας μετρητής ο οποίος παράγεται για κάθε συγκεκριμένο frame προκειμένου να αποφευχθούν πολλαπλές χρήσεις ασφάλειας. Κάθε μήνυμα έχει ένα ξεχωριστό sequence ID το οποίο αναπαριστάται από αυτό το πεδίο. Key Identifier (0-9B): δινει τις απαραίτητες πληροφορίες σχετικά με το κλειδί ασφάλειας που χρησιμοποιούμε για κάθε κόμβο που επικοινωνούμε. Η προστασία του πρωτοκόλλου Zigbee εκτελεί και άλλα 2 επιπλέον επίπεδα στην κορυφή του 802.15.4 : Network security layer Application security layer Όλες οι πολιτικές ασφάλειας στηρίζονται στον AES 128b αλγόριθμο κρυπτογράφησης με σκοπό την ισχύ της hardware αρχιτεκτονικής που υλοποιήθηκε προηγουμένως στο MAC layer. Υπάρχουν 3 είδη κλειδιών ασφάλειας : Master keys: Είναι προκαθορισμένα για κάθε κόμβο. Η λειτουργία τους είναι να κρατήσουν εμπιστευτικά τα Link Keys που ανταλλάσσονται μεταξύ 2 κόμβων κατά τη διαδικασία Key Establishment Procedure (SKKE). Link keys: Είναι μοναδικά για κάθε ζευγάρι κόμβων που συμμετέχουν σε μια μετάδοση δεδομένων. Αυτά τα κλειδιά καθορίζονται από το επίπεδο εφαρμογής. Χρησιμοποιούνται για να κρυπτογραφήσουν όλες τις πληροφορίες μεταξύ των 2 κόμβων και γι αυτό το λόγο απαιτείται περισσότερος χώρος μνήμης. Νetwork key: Eίναι ένα μοναδικό 128 bits κλειδί που μοιράζεται μεταξύ όλων των κόμβων του δικτύου και δημιουργείται από το Trust Center. Κάθε κόμβος πρέπει να λάβει το Network key προκειμένου να συμμετέχει στο δίκτυο. Εφόσον ο trust center αποφασίσει να αλλάξει το Network key, αυτoμοιράζεται μέσα στο δίκτυο με τη χρήση του παλιού network key όπως παρουσιάζεται στο figure 2.4. Καθώς το νέο κλειδί έχει ενημερωθεί σε έναν κόμβο το frame counter αυτού αρχικοποιείται σε μηδέν. To trust center είναι σχεδόν πάντα ο 21

coordinator, ωστόσο μπορεί να είναι και ένας άλλος επιλεγμένος κόμβος. Ρόλος του είναι να αυθεντικοποιεί και να πιστοποιεί κάθε νέο κόμβο που προσπαθεί να εισέλθει στο δίκτυο. Για να χρησιμοποιηθεί ένα Trust Centrer σε ένα Zigbee δίκτυο, ο coordinator πρέπει να θέσει 1 το αντίστοιχο bit στην παράμετρο "Εncryption Options" πριν την έναρξη του δικτύου. Κάθε ζεύγος κόμβων μπορεί να έχει και Νetwork και Link Keys. Σε αυτή τη περίπτωση χρησιμοποιείται το Link key. Υπάρχουν 2 ειδών πολιτικές ασφάλειας που μπορεί να ακολουθήσει το Trust Center : Commercial mode: Το Trust Center μοιράζεται Master και Link keys με οποιονδήποτε από τους κόμβους του δικτύου. Αυτή η μέθοδος απαιτεί υψηλά αποθέματα μνήμης και προσφέρει ένα πλήρως κεντρικοποιημένο μοντέλο για τον έλεγχο του κλειδιού ασφάλειας (figure 2-4). Residential mode: Το Trust Center μοιράζεται μόνο το Νetwork key, μια μέθοδος προτιμότερη σε ασύρματα δίκτυα αισθητήρων (figure 2-5). 22

Figure 2-4 Figure 2-5 23

2.2.4 Εφαρμογές πρωτοκόλλου Το Zigbee έχει πολύ χαμηλούς χρόνους απόκρισης και είναι ιδανικό για τη χρήση σε εφαρμογές πραγματικού χρόνου όπου χρειάζεται άμεση δράση. Τα προφίλ εφαρμογών περιγράφουν τον τρόπο με τον οποίο τα διάφορα αντικείμενα της εφαρμογής, όπως φώτα, διακόπτες, τηλεχειριστήρια μπορούν να εργαστούν από κοινού. Το κάθε προφίλ εφαρμογής επίσης προσδιορίζει τη συμβατότητα μεταξύ εφαρμογών από διαφορετικούς κατασκευαστές. Τυπικές εφαρμογές του πρωτοκόλλου είναι: Βιομηχανικός έλεγχος Δίκτυα αισθητήρων Αυτοματισμοί κτιρίων Οικιακοί αυτοματισμοί Παρακολούθηση οχημάτων Υγειονομική περίθαλψη Γενικά τέτοιου είδους εφαρμογές έχουν ως απαίτηση: χαμηλούς ρυθμούς δεδομένων, κόμβους που βρίσκονται σε ηρεμία (δεν εκπέμπουν/λαμβάνουν) για μεγάλες χρονικές περιόδους, τοποθεσίες κόμβων όπου τα καλώδια θα ήταν δύσκολο ή δαπανηρό να εγκατασταθούν καθώς και την ανάγκη να τροποποιείται το δίκτυο (πρόσθεση, αφαίρεση ή μετακίνηση κόμβων) ενώ βρίσκεται σε λειτουργία. 2.3 Επίπεδο δικτύου Το επίπεδο δικτύου (ΝWK-Network layer) είναι υπεύθυνο για την οργάνωση και τη δρομολόγηση πάνω από ενός multi-hop δικτύου και είναι τοποθετημένο πάνω από τις λειτουργίες του ΙΕΕΕ 802.15.4. 2.3.1 Τύποι κόμβων Το Zigbee αναγνωρίζει τρεις τύπους κόμβων με συγκεκριμένα χαρακτηριστικά ο καθένας. 24

Coordinator - Συντονιστής o Επιλέγει το κανάλι καθώς και τα 64-bit PANID, 16-bit PANID ώστε να δημιουργήσει το δίκτυο. o Eπιτρέπει στους routers και τις τερματικές συσκευές να μπουν στο δίκτυο του. o Βοηθάει στη δρομολόγηση των δεδομένων. o Δεν βρίσκεται ποτέ σε sleep mode. o Μπορεί να αποθηκεύσει προσωρινά δεδομένα που απευθύνονται στις τερματικές συσκευές, όταν αυτές βρίσκονται σε sleep mode. Router o Πρέπει να εισέλθει σε ένα Zigbee PAN προκειμένου να μπορεί να μεταδώσει, να λάβει και να δρομολογήσει δεδομένα. o Μετά την ένταξή του στο δίκτυο, μπορεί να επιτρέψει την ένταξη άλλων routers ή τερματικών συσκευών. o Μετά την ένταξή του επίσης βοηθάει στη δρομολόγηση των δεδομένων. o Δεν βρίσκεται ποτέ σε sleep mode. Όπως και ο συντονιστής πρέπει να παραμένει πάντα σε "ξύπνια" λειτουργία. o Μπορεί επίσης να αποθηκεύει δεδομένα που απευθύνονται σε "sleeping" τερματικές συσκευές. End device - Τερματική Συσκευή o Πρέπει να εισέλθει σε ένα Zigbee PAN προκειμένου να μπορεί να μεταδώσει ή να λάβει δεδομένα. o Δεν μπορεί να επιτρέψει την ένταξη άλλων τερματικών συσκευών στο δίκτυο. o Πρέπει πάντα να στέλνει ή να λαμβάνει δεδομένα μέσω του γονέα της ο οποίος είναι ένας router ή ο coordinator. o Δεν είναι ικανή να δρομολογήσει δεδομένα. o Μπορεί να εισέλθει σε διάφορες λειτουργίες ενέργειας, όπως σε sleep mode προκειμένου να συντηρεί ισχύ και μπορεί να είναι τροφοδοτούμενη από μπαταρία. Εκτός από τη τοπολογία star (που παραπέμπει στην αντίστοιχη τοπολογία του ΙΕΕΕ 802.15.4), το Zigbee Network Layer υποστηρίζει και πιο πολύπλοκες τοπολογίες όπως οι tree και mesh. Το figure 2-7 δείχνει παραδείγματα τέτοιων 25

τοπολογιών. Χαρακτηριστικές λειτουργίες που παρέχει το επίπεδο δικτύου είναι η multi-hop δρομολόγηση, η ανακάλυψη διαδρομής και η συντήρησή της, η ασφάλεια και η σύνδεση στο δίκτυο καθώς και η αποχώρηση από αυτό, με εκχώρηση 16-bit διεύθυνσης σε συσκευές που συνδέονται στο δίκτυο. Figure 2-6 2.3.2 Σύνδεση με το δίκτυο και εκχώρηση διευθύνσεων Ένα multi-hop δίκτυο εγκαθίσταται σύμφωνα με τη διαδικασία σύνδεσης (join). Όταν μια συσκευή επιθυμεί να συνδεθεί σε ένα υπάρχον δίκτυο, ζητείται από το network layer να ξεκινήσει μια διαδικασία ανακάλυψης δικτύου. Με την υποστήριξη της διαδικασίας σάρωσης του MAC layer, ενημερώνεται για τους γειτονικούς routers που έχουν ανακοινώσει τα δίκτυά τους. Αφού το ανώτερο επίπεδο αποφασίσει σε ποιο δίκτυο θα συνδεθεί (διάφορα δίκτυα Zigbee μπορούν να επικαλύπτονται στο χώρο χρησιμοποιώντας διαφορετικά κανάλια) το δίκτυο επιλέγει τον κόμβο-πατέρα από τη γειτονιά του και ζητά απο το ΜAC layer να ξεκινήσει μια διαδικασία συσχέτισης. 'Αλλωστε το Ζigbee είναι ένα επίπεδο σχετικό με την οργάνωση του δικτύου. Το πρώτο πράγμα που οφείλει να κάνει ένας κόμβος (router ή τερματική συσκευή) για να εισέλθει σε ένα δίκτυο είναι να ζητήσει από τον coordinator μια 16-bit διεύθυνση δικτύου γεγονός που αποτελεί τμήμα της association process. Όλες οι πληροφορίες 26

στο δίκτυο δρομολογούνται χρησιμοποιώντας αυτή τη διεύθυνση και όχι την 64-bit MAC. Σε αυτό το βήμα εκτελούνται οι διαδικασίες πιστοποίησης και κρυπτογράφησης. 2.3.3 Ανακάλυψη διαδρομής Η ανακάλυψη διαδρομής είναι μια διαδικασία που απαιτείται για τον καθορισμό των καταχωρήσεων στον πίνακα δρομολόγησης των κόμβων κατά μήκος της διαδρομής ανάμεσα σε δύο κόμβους που επιθυμούν να επικοινωνήσουν. Ενας πίνακας ανακάλυψης διαδρομής διατηρείται στους routers και τον coordinator ώστε να υλοποιηθεί η ανακάλυψη διαδρομής. H ανακάλυψη διαδρομής στηρίζεται στον πολύ γνωστό αλγόριθμο δρομολόγησης Ad hoc On Demand Distance Vector (AODV). H δρομολόγηση σύμφωνα με το πρωτόκολλο AODV επιτυγχάνεται με τη χρήση πινάκων σε κάθε κόμβο οι οποίοι αποθηκεύουν το επόμενο hop (κόμβος ενδιάμεσος μεταξύ του κόμβου πηγής και του κόμβου προορισμού) για τον κόμβο προορισμού. Εάν ένα επόμενο hop δεν είναι γνωστό, μια ανακάλυψη διαδρομής πρέπει να πραγματοποιηθεί για να βρει το μονοπάτι. Δεδομένου του περιορισμένου αριθμού διαδρομών που μπορούν να αποθηκευτούν σε έναν δρομολογητή, η διαδικασία ανακάλυψης διαδρομής θα λαμβάνει χώρα πιο συχνά σε μεγάλα δίκτυα όπου απαιτείται η επικοινωνία πολλαπλών κόμβων. Στον πίνακα 2-2 ακολουθεί ένα παράδειγμα πίνακα δρομολόγησης των κόμβων. Table2-1 Όταν ένας κόμβος-πηγή πρέπει να ανακαλύψει μια διαδρομή προς έναν κόμβο προορισμού στέλνει μια εντολή αναζήτησης διαδρομής προς όλους (broadcast route request command). H εντολή αυτή περιέχει τη διεύθυνση δικτύου της πηγής, τη 27

διεύθυνση δικτύου του προορισμού και ένα πεδίο με το κόστος της διαδρομής. Καθώς η εντολή αυτή μεταδίδεται μέσω του δικτύου (broadcast transmission) κάθε κόμβος που αναμεταδίδει το μήνυμα ανανεώνει και το πεδίο με το κόστος της διαδρομής και δημιουργεί μια προσωρινή είσοδο στον πίνακα του. Στο figure 2-8 παρουσιάζεται ένα παράδειγμα αίτησης διαδρομής όπου ο router R3 προσπαθεί να ανακαλύψει μια διαδρομή προς το router R6. Figure2-7 Όταν ο κόμβος προορισμού λάβει ένα αίτημα διαδρομής, συγκρίνει το πεδίο κόστος διαδρομής με την προηγούμενη λαμβανόμενη εντολή αιτήματος διαδρομής. Έαν το πεδίο αυτό είναι καλύτερο από όποιο προηγουμένο είχε λάβει τότε ο κόμβος προορισμού θα μεταδώσει ένα πακέτο απάντησης διαδρομής στον κόμβο που του έστειλε το αίτημα. Οι ενδιάμεσοι κόμβοι λαμβάνουν και προωθούν αυτό το πακέτο απάντησης προς τον κόμβο πηγής- τον κόμβο που έστειλε το αίτημα. Στο figure 2-9 παρουσιάζεται ένα παράδειγμα απάντησης αιτήματος διαδρομής όπου ο router R6 στέλνει την απάντηση στον router R3. Figure 2-8 28

2.3.4 Επαναλήψεις μετάδοσης και πακέτα ACK To Zigbee περιλαμβάνει πακέτα αναγνώρισης λήψης (ACK) τόσο στο ΜΑC επίπεδο όσο και στο APS επίπεδο. Όταν τα δεδομένα μεταδίδονται σε μια απομακρυσμένη συσκευή, μπορεί να χρειάζεται να διασχίσουν πολλά hops προκειμένου να φτάσουν στον προορισμό τους. Καθώς τα δεδομένα μεταδίδονται από κάθε κόμβο στο γειτονικό του ένα πακέτο επιβεβαίωσης λήψης (ACK) μεταδίδεται προς την αντίθετη κατεύθυνση για να δείξει άμα η μετάδοση των δεδομένων εκτελέστηκε με επιτυχία. Άν το πακέτο ACK δεν ληφθεί τότε ο αρχικός κόμβος που μεταδίδει θα ξαναμεταδώσει τα δεδομένα εώς και 4 φορές. Αυτό το ACK ονομάζεται MAC layer acknowledgement. Επίσης η συσκευή που άρχισε τη μετάδοση αναμένει να λάβει ένα ACK από τη συσκευή - τον κόμβο προορισμού. Αυτό το ACK θα διασχίσει την ίδια διαδρομή που διασχίζουν τα δεδομένα αλλά προς την αντίθετη κατεύθυνση. Εάν η πρώτη συσκευή αποτύχει να λάβει το ACK θα αναμεταδώσει τα δεδομένα μέχρι και 2 φορές μέχρι να λάβει το ACK. Αυτό το ACK ονομάζεται Zigbee APS layer acknowledgement. 29

30

3 Προδιαγραφή του επιπέδου εφαρμογής 3.1 Χbee PRO series 2 Τα XBee-PRO ZB RF modules είναι σχεδιασμένα να λειτουργούν μέσω του πρωτοκόλλου Zigbee και να ικανοποιούν τις ανάγκες χαμηλού κόστους και χαμηλής κατανάλωσης σε ασύρματα δίκτυα αισθητήρων. Τα modules απαιτούν μηδαμινή ενέργεια και παρέχουν αξιόπιστη μεταφορά δεδομένων μεταξύ απομακρυσμένων συσκευών. Λειτουργούν σε εύρος συχνότητας 2.4 GHz. XBee είναι ένα όνομα που έχει δοθεί από τη Digi στο πεδίο φυσικών ραδιοσυχνοτήτων (RF) πομπού-δέκτη. Zigbee είναι ένα RF πρωτόκολλο εμπευσμένο και δημιουργημένο από τη Zigbee Alliance. Αν και τα ονόματα είναι παρόμοια υπάρχει διαφορά ανάμεσα στο Xbee και το Zigbee. To XBee είναι ένα ασύρματο radio ικανό να μεταδώσει και να δεχτεί δεδομένα. Ένα RF module είναι ένα μικρό ηλεκτρονικό κύκλωμα το οποίο χρησιμοποιείται για να στείλει και να λάβει radio σήματα σε διαφορετικές συχνότητες. Xbee είναι το «brand name» μιας οικογένειας από RF modules εμπνευσμένης από τη Digi. Figure 3-1 31

Figure 3-2 3.2 Σειριακή επικοινωνία 3.2.1 Εισαγωγή Η σειριακή επικοινωνία είναι ένας τρόπος επικοινωνίας στον οποίο τα δεδομένα στέλνονται ένα bit τη φορά, το ένα μετά το άλλο, μέσω ενός καναλιού η διαύλου επικοινωνίας. Είναι το αντίθετο της παράλληλης επικοινωνίας, στην οποία πολλά bits στέλνονται σαν ένα πακέτο ταυτόχρονα μέσω παράλληλων καναλιών. Η σειριακή επικοινωνία μπορεί να υλοποιηθεί με 2 τρόπους σύγχρονα και ασύγχρονα. Στη σύγχρονη επικοινωνία τα ρολόγια του πομπού και του δέκτη είναι συγχρονισμένα πριν τη μετάδοση, τρέχουν δηλαδή με τον ίδιο ρυθμό, έτσι ώστε ο δέκτης να μπορεί να δειγματοληπτήσει το σήμα στα ίδια χρονικά διαστήματα με τον πομπό. Επομένως τα δεδομένα προωθούνται συνεχώς σύμφωνα με έναν συγκεκριμένο ρυθμό. Οι χαρακτήρες ομαδοποιούνται σε ομάδες δεδομένων οι οποίες ενθυλακώνονται σε ένα η περισσότερα SYNC bytes. Στην ασύγχρονη επικοινωνία ο πομπός και ο δέκτης δεν είναι συγχρονισμένοι πριν από κάθε μετάδοση. Έτσι ο πομπός μπορεί να αφήσει αυθαίρετα κενά διαστήματα πριν από κάθε μετάδοση. Ο δέκτης πρέπει να είναι έτοιμος για λήψη όταν έρχονται τα δεδομένα. Ο συγχρονισμός γίνεται με start bits και stop bits, τα οποία μπορεί να έχουν διάρκεια 1, 1.5 και 2 bits. O κάθε χαρακτήρας που στέλνουμε μπορεί να έχει μήκος από 5 εώς 8 bits. Ένα επιπλέον χαρακτηριστικό που μπορούμε να έχουμε στη σειριακή μετάδοση είναι ο έλεγχος ισοτιμίας. Για να μπορέσει να υλοποιηθεί ασύγχρονη επικοινωνία πρέπει ο πομπός και ο δέκτης να συμφωνούν σε αυτές τις παραμέτρους. 32

3.2.2 UART data flow Μέσω της σειριακής θύρας, το module μπορεί να επικοινωνήσει με οποιαδήποτε λογική και συμβατή UART. Οι συσκευές που έχουν UART διεπαφή μπορούν να συνδεθούν απευθείας στα pins του RF module όπως φαίνεται στο figure 3-3 : Figure 3-3 3.2.3 Σειριακά δεδομένα στο Xbee Τα δεδομένα εισέρχονται στη UART μέσω του DIN (pin 3) ως ασύγχρονο σειριακό σήμα. Το σήμα πρέπει να παίρνει τη τιμή 1 (high) όταν κανένα δεδομένο δεν μεταδίδεται. Κάθε byte δεδομένων αποτελείται απο ένα bit έναρξης (start bitlow), 8 bits δεδομένων (8 bits) και ένα τελευταίο bit (stop bit high). Το figure 3-4 απεικονίζει το σειριακό πρότυπο bit δεδομένων που διέρχεται από το module. To πακέτο δεδομένων είναι 0x1F (ο δεκαδικός αριθμός 31 ) όπως μεταδόθηκε μέσω του RF module. Figure 3-4 33

'Οπως αναφέρθηκε και προηγουμένως οι σειριακές επικοινωνίες εξαρτώνται από τις δυο UARTs (αυτή του microcontroller και αυτή του RF module) να είναι ρυθμισμένες με συμβατές λειτουργίες (baud rate, parity bit, start bits, stop bits, data bits). 3.2.4 Σειριακοί buffers Τα Xbee modules διατηρούν μικρούς buffers για να συλλέγουν σειριακά και RF δεδομένα. Οι buffers της σειριακής λήψης συλλέγουν εισερχόμενους σειριακούς χαρακτήρες και τους κρατάνε μέχρι να μπορούν να τους επεξεργαστούν. Εάν μεγάλα ποσά σειριακών δεδομένων στέλνονται στο module, ο έλεγχος ροής CTC flow control ίσως να απαιτεί την αποφυγή υπερχείλισης στον buffer. Οι buffers της σειριακής μετάδοσης συλλέγουν δεδομένα τα οποία λαμβάνονται μέσω του RF link και τα οποία μεταδίδονται εκτός της UART. Το figure 3-5 παρουσιάζει το εσωτερικό διάγραμμα ροής δεδομένων. Figure 3-5 3.3 Zigbee network 3.3.1 PANID Τα δίκτυα Zigbee ονομάζονται και PANs (personal area networks). Κάθε PAN ορίζεται με ένα μοναδικό PAN ID (identifier). Αυτό το αναγνωριστικό είναι κοινό μεταξύ όλων των συσκευών του ίδιου δικτύου. Οι Zigbee συσκευές μπορεί να είναι 34

είτε προγραμματισμένες με ένα συγκεκριμένο PAN ΙD που αφορά το PAN στο οποίο πρoκείται να ενταχθούν ή μπορούν να ανακαλύψουν μόνες τους κοντινά δίκτυα και να επιλέξουν ένα PAN ID. To Zigbee χρησιμοποιεί τόσο 64-bit όσο και 16-bit PAN IDs. Και τα δύο χρησιμοποιούνται για να προσδιορίσουν επακριβώς ένα δίκτυο. Συσκευές στο ίδιο δίκτυο Ζigbee πρέπει να μοιράζονται τα ίδια 64-bit, 16-bit PAN identifiers. To 16-bit PAN ID χρησιμοποιείται ώς ένα MAC layer πεδίο διεύθυνσης για όλες τις RF μεταδόσεις δεδομένων μεταξύ των συσκευών στο δίκτυο. Ωστόσο επειδή υπάρχει ένας περιορισμός διευθύνσεων 16-bit PAN ID (διαθέσιμες 65.535), υπάρχει πιθανότητα πολλαπλά Zigbee δίκτυα να χρησιμοποιούν την ίδια 16-bitδιεύθυνση. Για το παραπάνω λόγο η Zigbee Alliance δημιούργησε τo 64-bit PAN ID. To 64-bit PAN ID (αλλιώς ονομάζεται extended) αφορά μια μοναδική τιμή. Όταν ο coordinator ξεκινάει να χτίζει ένα δίκτυο, μπορεί να διαλέξει είτε μια προκαθορισμένη είτε μια τυχαία διεύθυνση 64-bit PAN ID. Aυτή χρησιμοποιείται κατά τη διαδικασία "joining", δηλαδή κατά τη διαδικασίας συμμετοχής άλλων συσκευών στο υπάρχον δίκτυο. Περιλαμβάνεται σε κάθε Zigbee beacon και χρησιμοποείται για την αποφυγή των κοινών 16-bit PAN IDs. Σε περίπτωση κοινού 16-bit PAN ID η Zigbee stack μπορεί να αλλάξει τη μια για να λυθεί η σύγκρουση κοινών διευθύνσεων. Οι Zigbee routers και οι Zigbee τερματικές συσκευές πρέπει να προγραμματιστούν με το 64-bit PAN ID προκειμένου να εισέλθουν σε ένα συγκεκριμένο δίκτυο. Στη συνέχεια, αφού εισέλθουν στο δίκτυο, λαμβάνουν τυπικά και το 16-bit PANID. 3.3.2 Device addresses MAC address: Πρόκειται για μια 64-bit διεύθυνση μοναδική για κάθε συσκευή καθώς καθορίζεται κατά τη διάρκεια της κατασκευής της. Network address: Πρόκειται για μια 16-bit διεύθυνση την οποία λαμβάνει κάθε συσκευή όταν εισέρχεται σε ένα Zigbee δίκτυο και ονομάζεται "network address". Η 16-bit διεύθυνση του coordinator είναι πάντα η 0x0000. Όλες οι υπόλοιπες συσκευές λαμβάνουν μια τυχαία 16-bit διεύθυνση από τον coordinator ή τον router που επέτρεψε την εισαγωγή τους στο δίκτυο. Όλες οι μεταδόσεις δεδομένων στο Zigbee 35

δίκτυο γίνονται με τη χρήση των 16-bit network διευθύνσεων. Οι πίνακες δρομολόγησης που θα αναφερθούν στη συνέχεια λαμβάνουν υπόψιν τους αυτές τις διευθύνσεις για τη δρομολόγηση των πακέτων δεδομένων στο δίκτυο. Ωστόσο η 16- bit διεύθυνση δεν είναι σταθερή, μπορεί να αλλάξει κατά την περίπτωση εύρεσης όμοιας στο ίδιο δίκτυο, γι αυτό το λόγο δεν αποτελεί αξιόπιστο τρόπο για την αναγνώριση μιας συσκευής. Κατά συνέπεια η 64-bit διεύθυνση προορισμού περιλαμβάνεται στις μεταδόσεις δεδομένων έτσι ώστε να διασφαλιστεί ότι τα δεδομένα θα αποσταλούν στον σωστό προορισμό. 3.3.3 Operating Channel Με την επιλογή καναλιού γίνεται στην ουσία η επιλογή συχνότητας στην οποία στέλνονται και λαμβάνονται δεδομένα. Το Zigbee δουλεύει παγκοσμίως σε εύρος συχνοτήτων 2.4 GHz. H συχνότητα των 2.4 GHz διαιρείται ανά 5MHz, όπως φαίνεται στο figure 3-6, και κάθε διαίρεση αντιστοιχεί σε διαφορετικό κανάλι. Το κανάλι επιλέγεται από τον coordinator όταν αυτός ξεκινάει το δίκτυο και δεν μπορεί να τροποποιηθεί. Σύμφωνα με τον πίνακα 3-1 το Xbee-pro Zigbee που έχουμε στη διάθεση μας μπορεί να λειτουργήσει σε 14 κανάλια, από το κανάλι 11 μέχρι το κανάλι 24. Figure 3-6 36

Table 3-1 3.3.4 Τοπολογία mesh Η τοπολογία mesh αναφέρεται και σαν peer-to-peer. Σε αυτή την τοπολογία υπάρχει ένας συντονιστής PAN και κάθε τερματική συσκευή μπορεί να επικοινωνήσει με κάθε άλλη συσκευή αρκεί να είναι η μια στην εμβέλεια της άλλης. Ένα δίκτυο mesh μπορεί να είναι ad hoc, να αυτοδιοργανώνεται (self-organising) και να αυτο-επουλώνεται (self-healing). Επίσης επιτρέπει πολλαπλά άλματα (hops) για τη δρομολόγηση μηνυμάτων από οποιαδήποτε συσκευή σε οποιαδήποτε άλλη συσκευή στο δίκτυο. Παρέχει μεγάλη αξιοπιστία λόγω της δρομολόγησης πολλαπλής διαδρομής. Κάποια από τα βασικά χαρακτηριστικά της τοπολογίας είναι: Τα πακέτα πραγματοποιούν πολλαπλά άλματα προκειμένου να φτάσουν στο προορισμό τους. Η περιοχή του δικτύου μπορεί να αυξηθεί προσθέτοντας επιπλέον συσκευές στο δίκτυο. 37

Ελαχιστοποιεί τις νεκρές ζώνες. Προσφέρει αυτο-επούλωση, που σημαίνει πως εάν κατά τη διάρκεια της μετάδοσης δε μπορεί να επιτευχθεί κάποιο μονοπάτι, ο κόμβος θα βρει εναλλακτικό μονοπάτι προς τον προορισμό. Οι συσκευές μπορούν να είναι κοντά η μία στην άλλη, οπότε χρησιμοποιούν λιγότερη ισχύ. Εύκολη προσθήκη και αφαίρεση συσκευών. Κάθε συσκευή προέλευσης μπορεί να επικοινωνήσει με κάθε συσκευή προορισμού. Η δρομολόγηση mesh χρησιμοποιεί πιο πολύπλοκο πρωτόκολλο δρομολόγησης από άλλες τοπολογίες (π.χ. star). Απαιτεί μεγαλύτερο overhead από άλλες τοπολογίες (π.χ. star). 3.3.5 Δρομολόγηση Στη τοπολογία mesh δεν επιτρέπονται σήματα beacon, αποτελεί μια από τις πιο πολύπλοκες τοπολογίες αλλά παράλληλα είναι από τις πιο στιβαρές και ανεκτικές σε σφάλματα. Οι δρομολογητές διατηρούν έναν πίνακα δρομολόγησης (routing table- RT) και χρησιμοποιούν έναν αλγόριθμο ανακάλυψης διαδρομής για να δομούν και να ενημερώνουν αυτές τις δομές δεδομένων στους κόμβους της διαδρομής. Ένας πίνακας δρομολόγησης περιγράφεται στον Πίνακα 3-2. Table 3-2 3.3.6 Transmission modes Broadcast transmissions: Αποτελεί τον τρόπο μετάδοσης όπου τα πακέτα δεδομένων στέλνονται από μια συσκευή- κόμβο προς όλες τις συσκευές- κόμβους του 38

Zigbee δικτύου. Για να επιτευχθεί αυτός ο τρόπος μετάδοσης, ο coordinator και οι routers του δικτύου επαναμεταδίδουν το πακέτο δεδομένων που έλαβαν 3 φορές. Figure 3-7 Η συσκευή- κόμβος που έστειλε δεδομένα με broadcast τρόπο δημιουργεί μια είσοδο σε ένα τοπικό πίνακα broadcast μεταδόσεων. Αυτή η καταχώρηση στον πίνακα χρησιμοποιείται για να παρακολουθεί κάθε λήψη του πακέτου δεδομένων που μεταδίδεται έτσι ώστε να εξασφαλίσει ότι αυτό δεν θα στέλνεται επ άπειρον. Κάθε καταχώρηση διαρκεί για 8 δευτερόλεπτα. Ο πίνακας broadcast μεταδόσεων έχει 8 θέσεις. Για κάθε broadcast μετάδοση, η Zigbee στοίβα διατηρεί χώρο στον buffer για ένα αντίγραφο του πακέτου δεδομένων. Αυτό χρησιμοποιείται για την απαιτούμενη αναμετάδοση των πακέτων. Ανάλογα με το μέγεθος του πακέτου δεδομένων δημιουργείται και ο απαραίτητος χώρος στον buffer. Δεδομένου ότι τέτοιου είδους μεταδόσεις αναμεταδίδονται από όλες τις συσκευές του δικτύου, πρέπει να επιλέγονται με μέτρο για την αποφυγή συμφόρησης σε ένα δίκτυο με πολλές συσκευές-κόμβους. Unicast transmissions: Aποτελεί έναν τρόπο μετάδοσης από μια συσκευήπηγή (αποστολέας ενός πακέτου δεδομένων) σε μια μόνο συσκευή-προορισμό (μοναδικός παραλήπτης του πακέτου δεδομένων). Η συσκευή προορισμού του πακέτου δεδομένων μπορεί να είναι είτε γειτονικός κόμβος της συσκευής που το έστειλε, είτε να βρίσκεται μακριά οπότε να απαιτεί πολλαπλά hops για την παραλαβή του πακέτου. Στην δεύτερη περίπτωση είναι απαραίτητη η χρήση ενός πίνακα 39

δρομολόγησης για την επιλογή του καλύτερου δυνατού "μονοματιού" από ενδιάμεσες συσκευές για την παραλαβή του πακέτου. 3.3.7 Fragmentation Κάθε unicast μετάδοση μπορεί να υποστηρίξει εώς και 84 bytes ωφέλιμου RF φορτίου. Ωστόσο το firmware της Χbee ZB υποστηρίζει ένα χαρακτηριστικό του πρωτοκόλλου Zigbee που ονομάζεται "fragmentation" ή αλλίως κατακερματισμός του πακέτου και επιτρέπει σε ένα μεγάλου μεγέθους πακέτο να χωριστεί σε πολλαπλές RF μεταδόσεις πριν την αποστολή δεδομένων από τη UART. To figure 3-8 παρουσίαζει τη διαδικασία αυτή. Figure 3-8 Το API frame μετάδοσης μπορεί να περιλαμβάνει εώς και 255 bytes δεδομένων τα οποία μπορούν να χωριστούν σε πολλαπλές μεταδόσεις για να συγκεντρωθούν από τη μεριά λήψης. Εάν ένα η περισσότερα από τα κατακερματισμένα πακέτα δεν ληφθούν σωστά ή καθόλου από τη συσκευή λήψης τότε αυτή θα αποβάλλει ολόκληρο το μήνυμα και στη συσκευή αποστολής θα ενημερωθεί για την αποτυχία μετάδοσης μέσω του status της μετάδοσης του API frame.to firmware του Zigbee μπορεί να υποστηρίζει μόνο ένα κατακερματισμένο πακέτο τη στιγμή στη συσκευή λήψης λόγω των περιορισμών μνήμης.οι εφαρμογές που δεν θέλουν να χρησιμοποιήσουν τη μέθοδο του κατακερματισμού πρέπει να αποφύγουν την αποστολή δεδομένων που υπερβαίνουν το μέγιστο αριθμό bytes σε μια ενιαία RF μετάδοση. Οι broadcast 40

μεταδόσεις δεν υποστηρίζουν τον κατακερματισμό των πακέτων δεδομένων. Το μέγιστο μέγεθος φορτίου δεδομένων είναι 84 bytes. 3.4 API mode Διακρίνουμε 2 τρόπους λειτουργίας του πρωτοκόλου Ζigbee, τη transparent operation και τη API operation. Στη περίπτωση των public profiles όπως το HA επιβάλλεται η λειτουργία σε API mode. Mε αυτόν τον τρόπο επεκτείνεται το επίπεδο στο οποίο μια εφαρμογή μπορεί να αλληλεπιδράσει με τις δικτυακές ικανότητες του xbee module. Όλα τα δεδομένα σε ΑPI mode περιέχονται σε frames τα οποία με τη σειρά τους καθορίζουν τις λειτουργίες και τα γεγονότα μέσα στο module.στο xbee module κατά τη λειτουργία της αποστολής και λήψης των frames συμμετέχουν 2 pins (pin2 και pin 3). Τα frames μετάδοσης δεδομένων τα οποία λαμβάνονται μέσω του DIN pin (pin3) περιλαμβάνουν : RF Transmit Data Frame Command Frame (ισοδυναμείμε AT commands) Τα frames λήψης δεδομένων τα οποία αποστέλλονται μέσω του DOUT pin (pin 2) περιλαμβάνουν : RF-received data frame Command απάντηση Event notifications όπως reset, associate, disassociate Η χρήση API operation συνιστάται όταν μια συσκευή : Στέλνει RF data σε πολλαπλούς προσδιορισμούς. Στέλνει εντολές για τη διαχείριση απομακρυσμένων εντολών στο δίκτυο. Δέχεται Ι/Ο δείγματα από απομακρυσμένες συσκευές. Πρέπει να υποστηρίζει zigbee endpoints, cluster IDs, profile IDs. Χρησιμοποιεί Zigbee Device Profile services. Το frame δεδομένων της UART ορίζει μια συγκεκριμένη API δομή: 41

Figure3-9 Όπου το cmdid frame (API-identifier) δείχνει ποια API messages θα συμπεριληφθούν στο cmddata frame (Identifier-specific data). Τα multi-byte values στέλνονται σε big endian μορφή. The XBee modules υποστηρίζουν τα ακόλουθα API frames: Table 3-3 42

3.5 ZDO-ZDP 3.5.1 Ορισμός To Zigbee περιέχει δύο σύνολα υπηρεσιών για τη θέση και τη συντήρηση του δικτύου (network commissioning and maintenance): Zigbee Device Object - ZDO ( μαζί με το Zigbee Device Profile - ZCL ) Zigbee Cluster Library - ZCL Το ΖDP (Zigbee Device Profile) είναι το "απαραίτητο συστατικό" για τη διαχείριση Zigbee συσκευών, είναι αυτό που καθορίζει την λειτουργία των συσκευών και τις διάφορες υπηρεσίες που προσφέρει το πρωτόκολλο Zigbee. Τα περισσότερα ZDP μηνύματα περιλαμβάνουν μια αλληλεπίδραση εντολής/απάντησης. Πολλά ZDP messages έχουν να κάνουν με την ανακάλυψη των χαρακτηριστικών κάποιας zigbee συσκευής, όπως τα endpoints, τα cluster IDs των οποίων οι ορισμοί θα παρουσιαστούν στη συνέχεια. Το πρωτόκολλο Zigbee έχει διάφορα προφίλ τα οποία είναι συλλογές διαφόρων χαρακτηριστικών για τη λειτουργία μιας εφαρμογής. Θα επικεντρωθoύμε στο Ζigbee προφίλ του Home Automation καθώς αυτό είναι που διαπραγματεύεται η παρούσα διπλωματική εργασία. Μέσα στο HA profile τα δεδομένα τα οποία μπορούν να διαβαστούν και να τροποποιηθούν ονομάζονται attributes. Αυτά τα attributes βρίσκονται μέσα σε clusters. Στο συγκεκριμένο προφίλ, όπως και σε κάθε δημόσιο προφίλ του πρωτοκόλλου Ζigbee, υπάρχουν προκαθορισμένα clusters τα οποία προσδιορίζονται από συγκεκριμένους αριθμούς- αναγνωριστικά (cluster identifiers) καθένα από τα οποία είναι 2 bytes. Τα clusters χρησιμοποιούνται για να διευκρινίσουν μια μοναδική λειτουργία, υπηρεσία ή ενέργεια και περιλαμβάνονται σε όλες τις αποστολές-λήψεις μιας εφαρμογής. Όταν σταλθεί ένα μήνυμα για τη διαχείριση μιας συσκευής επιβάλλεται να οριστεί το endpoint από το οποίο θα σταλθεί το μήνυμα καθώς και αυτό στο οποίο στέλνεται το μήνυμα. Πρέπει να προσδιοριστεί δηλαδή ενα source endpoint και ένα destination endpoint. Ένα endpoint μπορεί να καθοριστεί απλά ως μια συλλογή από clusters. Παρακάτω παρουσιάζονται οι παραπάνω έννοιες πιο επεξηγηματικά. 43

3.5.2 Attribute Mια οντότητα δεδομένων η οποία αναπαριστά μια φυσική ποσότητα ή κατάσταση. Αυτή η οντότητα επικοινωνεί με τις συσκευές με τη χρήση εντολών. 3.5.3 Endpoint Mέσα σε κάθε Zigbee κόμβο υπάρχουν endpoints τα οποία καθορίζουν την τρέχουσα εφαρμογή σε αυτόν τον κόμβο. Κάθε μοναδικός Zigbee κόμβος δύναται να συμμετέχει σε πολλαπλές εφαρμογές και μπορεί να υποστηρίζει το μέγιστο μέχρι 240 endpoints, σε οποιοδήποτε σύνολο endpoint identifiers. Για παράδειγμα, ένα κόμβος μπορεί να περιέχει μόνο ένα endpoint, έστω με τον αριθμό 55 και ένας άλλος 20 endpoints, αριθμημένα από το 1 μέχρι το 10 και από το 201 μέχρι το 210. Τα endpoints εξυπηρετούν τρεις σκοπούς στο πρωτόκολλο Zigbee: Επιτρέπουν την ύπαρξη διαφορετικών προφίλ εφαρμογών μέσα σε κάθε κόμβο. Επιτρέπουν την ύπαρξη ξεχωριστών σημείων ελέγχου μέσα σε κάθε κόμβο. Επιτρέπουν την ύπαρξη ξεχωριστών συσκευών να λειτουργούν μέσα στον ίδιο κόμβο. Κάτω από κάθε endpoint υπάρχει ένας αριθμός από clusters. 3.5.4 Cluster Mια συλλογή από attributes και commands, που μαζί καθορίζουν μια διεπαφή επικοινωνίας μεταξύ 2 συσκευών. Οι συσκευές μπορούν να παίξουν το ρόλο είτε του client είτε του server σε αυτή την επικοινωνία. Τα clusters καθορίζονται από έναν 16- bit αναγνωριστικό (cluster ID) και είναι αντικείμενα της εφαρμογής. Ενώ η network address και τα endpoints αφορούν τη διευθυνσιοδότηση των συσκευών τα clusters καθορίζουν την έννοια της εφαρμογής. Ένα ευρέως γνωστό cluster είναι το On/Off cluster (ID 0x0006). Aυτό το cluster γνωρίζει πως να θέσει κάτι εντός ή εκτός λειτουργίας. Δεν έχει σημασία άμα αυτό αφορά ένα φως, μια λάμπα, ένα κουδούνι ή έναν μηχανισμό πόρτας. Όλες αυτές οι συσκευές έχουν μια δυαδική κατάσταση on/off. 44

3.5.5 ZDO Τα ZDOs ως μέρος του Ζigbee Device Profile παρέχουν την ικανότητα της διαχείρισης και χαρτογράφησης του Zigbee δικτύου και της ανακάλυψης υπηρεσιών σε Zigbee συσκευές. Είναι απαραίτητη η χρήση τους για την ανάπτυξη οποιουδήποτε προιόντος Zigbee που λειτουργεί σε δημόσιο προφίλ όπως αυτό του Home Automation. Το Zigbee Device Profile έχει ένα application profile identifier, το 0x0000. Aυτό το προφίλ υλοποιείται σε όλες τις Ζigbee συσκευές. Το endpoint 0 είναι δεσμευμένο ώστε να υποστηρίζει το Zigbee Device Profile και καλείται Zigbee Device Object (ZDO) endpoint. Το ZDO (Zigbee Device Object) είναι το επίπεδο εφαρμογής το οποίο παρέχει τις λειτουργίες ανακάλυψης συσκευών και υπηρεσιών καθώς και προηγμένες δυνατότητες διαχείρισης του δικτύου. Οι ZDO υπηρεσίες περιλαμβάνουν τα ακόλουθα χαρακτηριστικά: Εικόνα του neighbor table οποιασδήποτε συσκευής στο δίκτυο. Εικόνα του routing table οποιασδήποτε συσκευής στο δίκτυο. Περιέχει λίστα με τα υποστηριζόμενα endpoints κάθε συσκευής στο δίκτυο. Καθιστά ικανή μια συσκευή να αποχωρήσει από το δίκτυο. Ενεργοποιεί ή απενεργοποιεί τη δυνατότητα permit-joining για μια ή περισσότερες συσκευές. O πίνακας 3-4 δείχνει μερικά από τα πιο βασικά ZDOs με τα αντίστοιχα cluster identifiers. 45

Table3-4 To Explicit Transmit API frame (0x11) χρησιμοποιείται για να στείλει Zigbee Device Object commands σε συσκευές στο δίκτυο. Απαιτείται μορφοποίηση του πεδίου data payload. Όταν στέλνεται μια ZDO command μέσω ΑPI mode, όλες οι τιμές των πολλαπλών bytes στο payload της εντολής πρέπει να στέλνονται σε little endian byte order έτσι ώστε η εντολή να εκτελεστεί σωστά από την απομακρυσμένη συσκευή στην οποία απευθύνεται. Επίσης απαραίτητη προυπόθεση για ένα ΑPI Xbee να λάβει ZDO responses είναι να θέσουμε την ΑO command σε 1 για να ενεργοποιήσουμε τη δυνατότητα δημιουργίας του explicit receive frame. AO (Api Options) : 0-default receive API indicators enabled 1-explicit Rx data indicator API frame enabled (0x91) 3-ενεργοποιημένες οι ZDO requests στη UART οι οποίες δεν υποστηρίζονται από τη στοίβα. Οι ZDOs εντολές στέλνονται θέτοντας : SE=0x00 (endpoint πηγής - source endpoint) 46

DE=0x00 (endpoint προορισμού - destination endpoint) Zigbee Device profile ID= 0x0000 Cluster ID = appropriate ZDO cluster ID Κατά τη διεξαγωγή της διπλωματικής εργασίας οι ΖDO εντολές εκτελέστηκαν μέσω του περιβάλλοντος X-CTU και θα παρουσιαστούν στο επόμενο κεφάλαιο. Μέσω των ZDO commands έγινε η σύνδεση στο δίκτυο του coordinator, η ανακάλυψη των endpoints και άλλων χαρακτηριστικών. 3.6 Zigbee Cluster Library 3.6.1 Λειτουργία Η ZCL αποτελεί ένα αποθετήριο για τις λειτουργίες των clusters και αναπτύχθηκε από τη Zigbee Alliance. Αποτελείται από ένα σύνολο στοιχείων όπως δομές των frames, εντολές πρόσβασης σε attributes, τύποι δεδομένων και από ένα σύνολο από clusters. Τα clusters τα οποία είναι γενικής χρήσης σε πολλούς τομείς εφαρμογών συμπεριλαμβάνονται στο γενικό σύνολο ενώ αυτά τα οποία προορίζονται κυριώς για συγκεκριμένους τομείς εφαρμογών ομαδοποιούνται σε σύνολα απευθυνόμενα σε κάθε τομέα εφαρμογής. Τα clusters αποτελούν, όπως προαναφέρθηκε, μια συλλογή από attributes και commands η οποία καθορίζει μια διεπαφή επικοινωνίας μεταξύ δύο συσκευών. Οι συσκευές παίζουν το ρόλο server και client. Ο client είναι μια διεπαφή cluster η οποία βρίσκεται στη λίστα cluster εξόδου του simple descriptor και σχετίζεται με ένα συγκεκριμένο endpoint. Τυπικά αυτή η διεπαφή στέλνει εντολές για τη διαχείρηση των attributes στο αντίστοιχο server cluster. Ο server είναι μια διεπαφή cluster που βρίσκεται στη λίστα cluster εισόδου του simple descriptor, συνδέεται άμεσα με ένα endpoint και υποστηρίζει όλα ή τα περισσότερα attributes του cluster. Όσον αφορά τη ZCL γίνεται χρήση του μοντέλου client/server, το οποίο παρουσιάζεται στο figure 3-10. 47

Figure 3-10 Ένα cluster είναι μια συλλογή εντολών και attributes η οποία καθορίζει μια διεπαφή σε μια συγκεκριμένη λειτουργικότητα. Η οντότητα που αποθηκεύει τα attributes ενός cluster αναφέρεται ως server του cluster και η οντότητα που επηρεάζει ή χειρίζεται αυτά τα attributes αναφέρεται ως client ενός cluster. Ωστόσο, αν απαιτείται από την εφαρμογή μπορούν να υπάρχουν attributes και στο client του server. Εντολές όπως 'read attribute', 'write attribute' που επιτρέπουν στις συσκευές να χειρίζονται τα attributes στέλνονται από τη client συσκευή και λαμβάνονται από την server συσκευή. Οποιαδήποτε απάντηση σε αυτές τις εντολές στέλνεται από τη server συσκευή και λαμβάνεται από τη client συσκευή. Τα clusters τα οποία υποστηρίζονται από το αντικείμενο της εφαρμογής μέσα στο προφίλ της συγκεκριμένης εφαρμογής αναγνωρίζονται μέσω του simple descriptor και είναι ορισμένα σε κάθε ενεργό endpoint της συσκευής. Στον simple descriptor, η λίστα των clusters εισόδου της εφαρμογής (input cluster list) περιέχει τη λίστα των server clusters που υποστηρίζονται από τη συσκευή και η λίστα των clusters εξόδου της εφαρμογής (output cluster list) περιέχει τη λίστα των client clusters που υποστηρίζονται από τη συσκευή. Η ZCL διαιρείται σε έναν αριθμό λειτουργικών αρμοδιοτήτων, καθεμία από τις οποίες καθορίζει clusters σχετικά με μια συγκεκριμένη λειτουργικότητα. Αυτές παρουσιάζονται στον πίνακα 3-5. 48

Table3-5 Κατά τη λειτουργία των ZCL εντολών είναι απαραίτητη η γνώση μερικών χαρακτηριστικών που ικανοποιούν το προφίλ εφαρμογής. Δίνονται οι παρακάτω ορισμοί : Device Identifier Έχει μήκος 16-bits και προσδιορίζει μια συγκεκριμένη συσκευή μέσα σε ένα συγκεκριμένο προφίλ εφαρμογής. Table 3-6 Cluster Identifier Έχει μήκος 16-bits και προσδιορίζει μία ομάδα μεταβλητών και attributes μέσα σε ένα ορισμένο προφίλ συσκευής. 49

Table 3-7 Attribute Identifier Έχει μήκος 16-bits και προσδιορίζει ένα attribute μέσα σε ένα συγκεκριμένο προφίλ εφαρμογής. Table 3-8 Command Identifier Έχει μήκος 8-bits και προσδιορίζει μια εντολή της ZCL είτε με γενικό τρόπο είτε με ειδικό όταν γίνεται αναφορά σε συγκεκριμένο cluster. Table 3-9 50

3.6.2 ZCL frames Μια δομή ενός ZCL frame (ZCL frame format) αποτελείται από μία ZCL επικεφαλίδα (ZCL header) και από ένα ZCL φορτίο (ZCL payload). Παρακάτω παρουσιάζεται το γενικό ZCL frame. Table 3-10 To πεδίο του frame control έχει μήκος 8 bits και περιέχει πληροφορίες σχετικά με το τύπο της εντολής καθώς και σημαίες ελέγχου. Table3-11 Αξίζει να σημειωθούν οι υποπεριπτώσεις του πρώτου πεδίου : Table 3-12 Το πεδίο manufacturer code έχει μήκος 16 bits και διευκρινίζει το code του κατασκευαστή για ιδιόκτητες επιμηκύνσεις ενός προφίλ. Αυτό το πεδίο 51

συμπληρώνεται μόνο εφόσον το δεύτερο πεδίο του frame control (manufacturer specific subfield) έχει τεθεί 1. Το πεδίο transaction sequence number έχει μήκος 8 bits και στην ουσία αποτελεί έναν αριθμό συναλλαγής έτσι ώστε το command frame της απάντησης να σχετίζεται με το command frame της ερώτησης. Το πεδίο command identifier έχει μήκος 8 bits και μας δείχνει ποιο cluster command χρησιμοποιείται. Ανάλογα με τη τιμή του frame type στο πεδίο του frame control το command ID μπορεί να απευθύνεται σε συγκεκριμένο η όχι cluster. To πεδίο frame payload δεν έχει συγκεκριμένο μήκος. Το μέγιστο μήκος του μπορεί να καθοριστεί μόνο από το stack profile που χρησιμοποιείται. ZCL general command frames Στον πίνακα 3-13 παρουσιάζονται τα command IDs τα οποία διαμορφώνουν API frames και υποστηρίζουν οποιοδήποτε προφίλ για αυτό και ονομάζονται general commands. Table 3-13 52

3.6.3 Read attribute command Οι read attribute commands χρησιμοποιoύνται όταν μια συσκευή θέλει να καθορίσει-"διαβάσει" τις τιμές ενός η περισσότερων attributes μιας άλλης συσκευής στο δίκτυο. Κάθε πεδίο attribute ID πρέπει να περιέχει έναν αριθμό identifier του χαρακτηριστικού που θα διαβαστεί. H δομή ενός read attribute command frame παρουσιάζεται στον πίνακα 3-14. Table 3-14 ZCL header : Το frame control field διαμορφώνεται όπως παρουσιάστηκε παραπάνω. Στην περίπτωση που η εντολή χρησιμοποιείται για να διαβάσει attributes ενός οποιουδήποτε cluster στην ZCL τότε όλα θέτονται μηδεν (0000). Το command ID field πρέπει να πάρει τη τιμή 00 ετσι ώστε να αντιστοιχεί σε read attribute. Attribute ID : έχει μηκος 16 bits και περιέχει το identifier του attribute που θέλουμε να διαβάσουμε. 3.6.4 Read attribute response command Ως απάντηση αυτής της read attribute command η απομακρυσμένη συσκευή στο δίκτυο πρέπει να επιστρέψει μια read attribute response command. Αυτή με τη σειρά της περιέχει τόσα read attribute status records όσα και τα attributes IDs που συμπεριλήφθηκαν στο command frame. Κάθε read attribute status record περιέχει το αντίστοιχο attribute ID από το command frame, μια τιμή του status και τέλος τη τιμή του αντίστοιχου attribute. Για κάθε attribute ID που περιέχεται στο command frame, η συσκευή ελέγχει ότι αυτό αντιστοιχεί σε ενα attribute που πράγματι υφίσταται για τη δεδομένη συσκευή. 53

Σε περίπτωση που δεν αντιστοιχεί κάποιο attribute, το πεδίο του status record πρέπει να μας ενημερώνει και δεν επιστρέφεται κάποια τιμή στο attribute field. Read Attribute Command frame format : Table3-15 Kάθε read attribute status record διαμορφώνεται σύμφωνα με τον πίνακα 3-16: Table 3-16 Attribute identifier : έχει μηκος 16 bits και περιέχει το αριθμό- identifier του. attribute που περιμένουν απάντηση. Status : έχει μήκος 8 bits και ενημερώνει κατά πόσο λήφθηκε απάντηση για το συγκεκριμένο attribute. Η επιτυχής λήψης απάντησης παρουσιάζεται για τιμή 0x00 στο πεδίο του status. Αttribute data value : έχει μηκος 8 bits και παρουσίαζει το τύπο δεδομένων πoυ περιμένουμε να λάβουμε ως απάντηση για τη τιμή του attribute που διαβάστηκε. Ένα παραστατικό σχεδιάγραμμα των παρουσιάζεται στοfigure 3-11. read attributes request και response 54

Figure 3-11 55

56

4 Ενσωματωμένα συστήματα 4.1 Περιγραφή Ενσωματωμένα υπολογιστικά συστήματα είναι συσκευές οι οποίες περιλαμβάνουν έναν προγραμματιζόμενο υπολογιστή που εκτελεί μια προκαθορισμένη εργασία και δεν είναι γενικού σκοπού. Βασικό χαρακτηριστικό τους είναι η ύπαρξη ενός υπολογιστικού πυρήνα που είναι είτε μικροελεγκτής είτε DSP (digital signal processor) και το γεγονός ότι αλληλεπιδρούν συνεχώς με το περιβάλλον με διάφορους τρόπους. Επειδή τα ενσωματωμένα συστήματα εκτελούν μια συγκεκριμένη λειτουργία δίνεται η δυνατότητα στον εκάστοτε σχεδιαστή να μειώσει το μέγεθος και το κόστος επιτυγχάνοντας ταυτόχρονα υψηλή αξιοπιστία και απόδοση. Επειδή λειτουργούν σε πραγματικό χρόνο πρέπει να πληρούνται κάποιες προδιαγραφές όπως το βάρος, η κατανάλωση ενέργειας κτλ. Τα βασικά μέρη που μπορεί να έχει ένα ενσωματωμένο σύστημα είναι τα εξής : Ψηφιακά μέρη όπως επεξεργαστές, μνήμες, δίαυλοι, ελεγκτές Ενσωματωμένο λογισμικό Αναλογικά στοιχεία όπως αισθητήρες, διεγέρτες Μετατροπείς από αναλογικό σε ψηφιακό σήμα και αντίστροφα 4.2 Libelium Η libelium προσφέρει μια ποικιλία προιόντων με σκοπό να διευκολύνει τη καθημερινότητα σε μια ποικιλία τομέων. Από το φυσικό και υδάτινο περιβάλλον εώς τους δρόμους και τις πυκνοκατοικημένες περιοχές η χρήση πολλών εφαρμογών προσφέρουν πολλαπλά πλεονεκτήματα. Οι τομείς με τους οποίους η Libelium ασχολήθηκε και επέφερε σημαντικές αλλαγές είναι κυρίως οι εξής: Smart cities Smart environment Smart water Smart metering Security and emergencies 57

Retail Logistics Industrial control Smart agriculture Smart animal farming Domotic & Home Automation ehealth Για τη διεξαγωγή της διπλωματικής εργασίας έγινε χρήση ενός waspmote της Libelium, το οποίο παίζει το ρόλο ενός router στο Ζigbee δίκτυο της εφαρμογής. Το waspmote το οποίο και παρουσιάζεται στο figure 4.1 έχει τα εξής χαρακτηριστικά : Μικροελεγκτής: ATmega1281 Συχνότητα: 14.7456 MHz Μνήμη SRAM: 8KB Μνήμη EPROM: 4KB Μνήμη FLASH: 128KB SD Card: 2GB Βάρος: 20gr Διαστάσεις: 73.5 x 51 x 13 mm Εύρος θερμοκρασίας: [-10 βαθμοί κελσίου, +65 βαθμοί κελσίου] Ρολόι: RTC (32KHz) o Kατανάλωση : o ΟΝ: 15mA o Sleep: 55μΑ o Deep Sleep: 55μΑ o Hibernate: 0,07μΑ Figure 4-1 58

o Eίσοδοι/ Έξοδοι (Ι/Ο) : o 7 αναλογικές είσοδοι o 8 ψηφικές είσοδοι/ έξοδοι o 1 PWM o 2 UART o 1 I2C o 1 USB o 1 SPI o Ηλεκτρικά δεδομένα: Τάση μπαταρίας: 3.3V - 4.2V USB charging: 5V - 100mA Solar panel charging: 6-12V - 280mA Στο figure 4.2 φαίνονται τα στοιχεία στο πάνω μέρος του waspmote board, ενώ στο figure 4.3 παρουσίαζεται η κάτω όψη του. Figure 4-2 59

Figure 4-3 60

5 Bασικές αρχές εφαρμογής 5.1 Μετρητικές συσκευές Οι συσκευές μέτρησης που χρησιμοποιούνται έχουν σχεδιαστεί και υλοποιηθεί απο την εταιρεία Μeazon. Χάρις στον αποδοτικό σχεδιασμό τους έχουν χαμηλό TCO, γεγονός που επιτρέπει την εφαρμογή ενός μεγαλύτερου αριθμού σημείων μέτρησης με σκοπό την επίτευξη μιας λεπτομερής εικόνας των αποδοτικότερων ενεργειακών δυνατοτήτων του χώρου. Πρόκειται για δύο ειδών συσκευές με προηγμένες δυνατότητες μέτρησης ρεύματος, τάσης, συχνότητας, ενεργού/ άεργου ισχύος και ενέργειας. Για την διεξαγωγή της διπλωματικής εργασίας έγινε χρήση των παρακάτω. Τρεις τριφασικοί μετρητές, γνωστοί ως dinrails, συνδεδεμένοι στους πίνακες του εργαστηρίου οι οποίοι υπολογίζουν την συνολική κατανάλωση και των τριών φάσεων. Είναι εύκολοι στη εγκατάσταση και παρέχουν τη δυνατότητα καταγραφής δεδομένων για περίπου 21 μέρες ή περισσότερο. Παρουσιάζουν τη δυνατότητα χρονοπρoγραμματισμού μέσω του εξωτερικού ρελέ και παρέχουν άμεση σε πραγματικό χρόνο πρόσβαση από οποιοδήποτε σημείο στον κόσμο. Ένας μονοφασικός μετρητής, η λεγόμενη smart plug, που παρεμβάλλεται μεταξύ οποιασδήποτε ηλεκτρικής συσκευής και της πρίζας στην οποία είναι συνδεδεμένη. Ειδικά σχεδιασμένη για οικιακές συσκευές επιτρέπει την εξ αποστάσεως μέτρηση και τον έλεγχο αυτών. Περιέχει ενσωματωμένο ρελέ οπότε μπορούμε να ελέγχουμε τη κατάσταση (On/Off) στην οποία βρίσκεται η συσκευή που έχουμε συνδέσει. Επίσης διαθέτει και αισθητήρα μέτρησης θερμοκρασίας για να μας παρέχει πληροφορία για τη θερμοκρασία του χώρου που βρίσκεται. Το μέγιστο ρεύμα φορτίου που μπορούν να δεχτούν οι μετρητές είναι 60Α ανά φάση/γραμμή για τον τριφασικό μετρητή και 16Α για το μονοφασικό. Η ακρίβεια των συσκευών αυτών βάση των στοιχείων που παρουσιάζει η εταιρεία είναι 1%. H Μeazon επέλεξε τη χρήση του πρωτοκόλλου ασύρματης επικοινωνίας IEEE 802.15.4 (Zigbee) ώστε να μειώσει το κόστος και παράλληλα να επωφεληθεί όλα τα πλεονεκτήματα του πρωτοκόλλου. Το χαμηλό κόστος προσδίδει ευκολία στον ασύρματο έλεγχο και την παρακολούθηση των ενεργειακών εφαρμογών. 61

Το Zigbee δίκτυο της meazon ακολουθεί τη mesh συνδεσμολογία ώστε η τοποθέτηση των συσκευών ενέργειας να επιτευχθεί αποτελεσματικά σε οποιαδήποτε θέση του κτιρίου παρέχοντας υψηλή αξιοπιστία και μεγάλο εύρος επέκτασης. Για τη λειτουργία όλου του συστήματος είναι ιδιαίτερα σημαντικός ο ρόλος του Gateway, ενός κεντρικού κόμβου ο οποίος λειτουργεί ως coordinator και είναι υπεύθυνος για : τη σύνδεση των συσκευών μεταξύ τους, τη συλλογή δεδομένων, μετρήσεων και εντολών από αυτές και τη σύνδεση με άλλα δίκτυα, κυρίως με το Διαδίκτυο. Ο μετρητής ηλεκτρικής ενέργειας στο Zigbee δίκτυο του εργαστηρίου είναι ένας Zigbee router κόμβος. Έχουν τοποθετηθεί 4 routers υπό την επίβλεψη της Gateway η οποία λειτουργεί ως Zigbee coordinator του συστήματος και είναι αυτή που διαμορφώνει το δίκτυο και συλλέγει τις ηλεκτρικές μετρήσεις πραγματικού χρόνου. Έχοντας ως στόχο της διπλωματικής τη συλλογή των απαιτούμενων μετρήσεων συνδέθηκε ένας router-waspmote της libelium στο Ζigbee δίκτυο της meazon μέσω ενός Xbee-pro Zigbee radio. Με αυτόν τον τρόπο πραγματοποιήθηκε η συλλογή πληροφοριών από τα 3 dinrails που είναι τοποθετημένα στους ηλεκτρικούς πίνακες του εργαστηρίου καθώς και από τη bizy plug. Προτού αναφερθούμε αναλυτικά στο τρόπο επικοινωνίας και συλλογής δεδομένων αξίζει να παρουσιάσουμε τα βασικά χαρακτηριστικά της bizy plug ως μοναφασικού μετρητή καθώς τα ίδια ισχύουν και για τα dinrails με τη μόνη διαφορά ότι έχουμε 3 φάσεις. Η Bizy Plug χρησιμοποιείται για τον έλεγχο της τροφοδοσίας (on/off/scheduling) και την μέτρηση της καταναλισκόμενης ισχύος και ενέργειας στις ηλεκτρικές συσκευές. Μπορεί να συνδέσει ασύρματα κάθε οικιακή συσκευή σε ένα δίκτυο Home Automation. Είναι ιδανική για να τροφοδοτεί συσκευές όπως ηλεκτρονικούς υπολογιστές, εκτυπωτές, φώτα, φορτιστές ακόμα και air conditions, ψυγεία, δηλαδή κάθε ηλεκτρική οικιακή συσκευή που μπορεί να ελεγχθεί με διακόπτη και να μεταβεί στις δύο καταστάσεις on/off. Η bizy plug μπορεί να υποστηρίξει οποιαδήποτε συσκευή η οποία καταναλώνει μέχρι 16 Amps. Το όριο ρεύματος είναι μεγάλο έτσι ώστε να υποστηρίζει μεγάλες οικιακές συσκευές όπως το ψυγείο ή ταυτόχρονα 2-3 62

συσκευές μαζί. Τόσο αυτή όσο και οι μετρητές υποστηρίζουν τα clusters που θα παρουσιαστούν στη συνέχεια. Όσον αφορά τη σύνδεση της bizy plug με το δίκτυο ενός zigbee coordinator είναι εφικτό να καταλάβουμε άμα έχει επιτευχθεί χάρις το led που διαθέτει. Όταν το led αναβοσβήνει ομαλά η πρίζα βρίσκεται σε αδράνεια, δεν είναι συνδεδεμένη σε κάποιο δίκτυο. Προκειμένου να αρχίσει η joining διαδικασία φέρνουμε ένα μαγνήτη στο μέσο της πρίζας και ενεργοποιείται ο εσωτερικός διακόπτης. Παρατηρείται συνεχόμενο αναβόσβημα του led της πρίζας γεγονός που υποδεικνύει ότι η πρίζα στέλνει beacons προκειμένου να βρει ένα Zigbee δίκτυο να συνδεθεί. Άμα βρίσκεται κοντά σε έναν coordinator ή router του δικτύου ο οποίος επιτρέπει την ένταξη άλλων κόμβων τότε συνδέεται στο αντίστοιχο δίκτυο. Η συμμετοχή στο δίκτυο παρατηρείται οπτικά καθώς το led της πρίζας σταματά να αναβοσβήνει και παραμένει ανοιχτό η κλειστό. Συνήθως η μετέπειτα κατάσταση του led καθορίζεται από τη κατάσταση του εσωτερικού ρελέ της πρίζας. 5.2 X-CTU 5.2.1 Aρχικοποιήσεις Αρχικά έγινε η σύνδεση ενός radio Xbee Pro Series 2 στη serial port (σειριακή θύρα) και μέσω του X-CTU η αναβάθμιση του firmware σε Ζigbee Router API 23A7, την νεότερη έκδοση που παρέχεται από τη Digi. Στη συνέχεια, μέσω ΑPI frames και συγκεκριμένα ZDO commands επιτεύχθηκε η σύνδεση στο PAN (Personal Area Network) των μετρητικών συσκευών. Στην πλατφόρμα του X-CTU είναι απαραίτητη η αρχικοποίηση των παρακάτω settings : Ζigbee stack profile (ZS) = 2 Channel verification (JV) = 1 (enabled) Join Notification (JN) = 1 (enabled) Network Discovery Options (NO) = 01 (append DD value-to ND responses or API node identification frames) Power mode (PM) = 0 63

Encryption enable (EE) = 1 (enabled) Encryption Key (KY) = 5a6967426565416c6c69616e63653039 Baud rate (BD) = 38400 API enable (AP) = 1 API output mode (AO) = 1 Το δημόσιο προφίλ του Home Automation πληρεί κάποιες προυποθέσεις. Αρχικά λειτουργεί για Zigbee stack profile 2. Oι Home Automation εφαρμογές απαιτούν συγκεκριμένες ρυθμίσεις όσον αφορά τις Zigbee δικτυακές παραμέτρους. Αυτές ικανοποιούνται για Zigbee stack profile ίσο με 2. Channel Verification (JV): Όταν η παράμετρος τεθεί 1, ένας router θα εξακριβώσει άμα ο coordinator είναι στο ενεργό κανάλι όταν αρχίσει να συμμετέχει σε αυτό ή όταν ολοκληρώσει έναν κύκλο ενέργειας. Στην περίπτωση που δεν ανιχνευτεί coordinator ο router θα εγκαταλείψει το κανάλι και θα προσπαθήσει να συμμετέχει σε ένα νέο ενεργό PAN. Join Notification (JN): Όταν πάρει τη τιμή 1 σημαίνει ότι το module θα μεταδώσει ένα πακέτο αναγνώρισης σε όλους τους κόμβους με broadcast τρόπο όταν αυτό βρεθεί σε ισχύ ή πρωτοεισέλθει στο κανάλι. Αυτή η ενέργεια ανάβει τα σχετικά LED όλων των συσκευών που έλαβαν αυτή τη μετάδοση και αυτές με τις σειρά τους στέλνουν από τη θυριακή τους σείρα ένα πλαίσιο API. Το encryption key είναι το δημόσιο κλειδί κρυπτογράφησης του home automation profile. Κατά τη διεξαγωγή της διπλωματικής εργασίας οι ΖDO εντολές εκτελέστηκαν μέσω του περιβάλλοντος X-CTU. Όλες αυτές οι εντολές εκτελέστηκαν έχοντας θέσει, πέρα από τις παραπάνω αρχικοποιήσεις, τα εξής : SE = 0x00 (endpoint πηγής - source endpoint) DE = 0x00 (endpoint προορισμού - destination endpoint) Zigbee Device profile ID = 0x0000 Cluster ID = appropriate ZDO cluster ID 64

5.2.2 Network address Table5-1 Στάλθηκε το εξής ΑPI frame : API ID= 0x11 Frame ID= 0X01 64-bit address= 0x0000 0000 0000 FFFF (broadcast transmission ) 16-bit address= 0xFFFE (unknown 16-bit address) source endpoint=0x00 destination endpoint=0x00 cluster ID (network address request) = 0x0000 profile ID ( zigbee device profile id)=0x0000 broadcast radius = 0x00 transmit options =0x00 data payload=01 403DDA60 0013A200 όπου data payload η 64-bit MAC διεύθυνση του router-waspmote σε little endian order. 65

Λόγω της broadcast μετάδοσης του frame επιστράφηκαν ως απάντηση όλες οι 64- bit και 16-bit διευθύνσεις όλων των συσκευών του δικτύου, καθώς επίσης και συμπληρώθηκαν στη σελίδα των παραμέτρων του X-CTU το κανάλι λειτουργίας και οι 64-bit, 16-bit PANID διευθύνσεις. Channel: 0x0F OP (operating PANID): 124B0001464B89 ΟΙ (operating 16-bit PANID): 6412 o Router-waspmote: 64-bit address:0013α200 403DDA60 16-bit address: B9D7 o Bizy Plug: 64-bit address:00124b0002cc8068 16-bit address:bab0 o DinrailOne: 64-bit address:00124b00040α7f5f 16-bit address: 3ACE o Dinrail Two: 64-bit address:00124b00040a7fd6 16-bit address: 4308 o Dinrail Three: 64-bit address:00124b00040a8105 16-bit address:d9ee o Coordinator: 64-bit address:00124b0001464b89 16-bit address:0000 66

5.2.3 Active endpoints Table5-2 Από το περιβάλλον του X-CTU στάλθηκε το παρακάτω API frame: Active endpoints request API ID= 0x11 Frame ID= 0X01 64-bit address= 0x0000 0000 0000 FFFF (broadcast transmission ) 16-bit address= 0xFFFE (unknown 16-bit address) source endpoint=0x00 destination endpoint=0x00 cluster ID (active endpoint request) = 0x0005 profile ID ( zigbee device profile id)=0x0000 broadcast radius = 0x00 transmit options =0x00 data payload=01 D7B9 (transaction sequence number + 16bit address σε little endian order) Ως απάντηση λήφθηκε το frame με RF data (HEX) : 01 00 D7 B9 02 E6 E8 Η active endpoint list για τον router-waspmote είναι τα Ε6, Ε8. 67

Στέλνοντας το ίδιο frame απλά με τις 16-bit διευθύνσεις των άλλων συσκευών στο data payload, βρέθηκαν τα endpoints 0A και 0Ε τόσο για τη πρίζα όσο και για τα dinrails. To endpoint 0A είναι αυτό που θα χρησιμέψει για την αποστολή ZCL commands. Δηλαδή όλα τα clusters που υποστηρίζουν οι συσκευές αντιστοιχούν σε αυτό το endpoint. To endpoint 0E αφορά αναβαθμίσεις Over-The-Air του firmware. 5.2.4 Node descriptor Table 5-3 Table 5-4 Νode descriptor request: Data payload: 01 B0 BA (bizy plug) Νode descriptor response: RF data: 00 B0 BA 01 40 8E 36 11 50 A0 00 00 00 A0 00 00 Aπό το παραπάνω λαμβανόμενο πακέτο προκύπτουν οι εξής πληροφορίες σχετικά με τη λειτουργία των μετρητικών συσκευών: 68

Frequency band: 2,4 GHz Manufacturer code: 3611 Maximum buffer size: 50 = 01010000 Maximum incoming transfer size: A000 Server mask: 0000 Maximum outgoing transfer size: A000 5.2.5 Simple Descriptor Table5-5 Ακολουθούν τα αποτελέσματα για τη bizy plug : Simple descriptor request (endpoint=0a): Data payload: 01 BOBA 0A Simple descriptor response: RF data: 01 00 B0 BA 14 0A 04 01 51 00 00 06 00 00 03 00 06 00 02 07 04 00 00 FD 00 Σύμφωνα με την απάντηση προκύπτουν τα στοιχεία: 69

Sequence :01 Status: 00 (επιτυχία) NTW address: B0BA Length :14 Endpoint: 0A Application profile id: 0401 (μετατροπή σε big endian order: 0104 home automation profile) Application device id: 5100 (μετατροπή σε big endian order: 0051 smart plug) Application device version + reserved: 00 Input cluster count: 06 Input cluster list: 00 00 / 03 00 / 06 00 / 02 07 / 04 00 / 00 FD / (Κάθε cluster έχει μέγεθος 2 bytes. Παραπάνω αυτά παρουσιάζονται σε little endian order) Output cluster count: 00 Δεν υπάρχει output cluster list Simple descriptor request (endpoint=0ε): Data payload: 01 BOBA 0E Simple descriptor response: RF data: 01 00 B0 BA 0C 0E 04 01 00 00 00 01 0A 00 01 19 00 Sequence :01 Status: 00 NTW address: B0BA Length: 0C Endpoint: 0E Application profile id: 0401 (μετατροπήσε big endian order 0104 home automation profile) Application device id: 0000 Application device version + reserved: 00 Input cluster count: 01 Input cluster list: 0A 00 Output cluster count: 01 Output cluster list: 19 00 Ακολουθούν τα αποτελέσματα για ένα dinrail (ισχύουν τα ίδια για όλα τα dinrails της εφαρμογής): Simple descriptor request(endpoint=0a): Data payload: 01 CE 3A 0A Simple descriptor response: 70

RF data: 01 00 CE 3A 16 0A 04 01 51 00 00 07 00 00 03 00 06 00 02 07 0F 00 04 00 00 FD 00 Sequence :01 Status: 00 NTW address: CE3A (little endian order) Length :15 Endpoint: 0A Application profile id: 0401 (μετατροπήσε big endian order 0104 home automation profile) Application device id: 5100 Application device version + reserved: 00 Input cluster count: 07 Input cluster list: 00 00 / 03 00 / 06 00 / 02 07 / 0F 00 / 04 00 / 00 FD Output cluster count: 00 Simple descriptor request(endpoint=0ε): Data payload: 01 CE 3A 0E Simple descriptor response: RF data: 01 00 CE 3A 0C 0E 04 01 00 00 00 01 0A 00 01 19 00 Sequence :01 Status: 00 NTW address: B0BA Length :0C Endpoint: 0E Application profile id: 0401 Application device id: 0000 Application device version + reserved: 00 Input cluster count: 01 Input cluster list: 0A 00 Output cluster count: 01 Output cluster list: 19 00 5.2.6 Management LQI (neighbor table) 71

Table 5-6 Table 5-7 Management LQI request: Data payload: 01 00 Management LQI response: Sequence:01 Status:00 Neighbor table entries:05 Start index:00 NTW table list count :03 Extended panid: 89 4b 46 01 00 4b 12 00 (τηςπριζαςη 64 bit address είναιπραγματισε big endian order 00 12 4b 00 01 46 4b 89) Extended address: 89 4b 46 01 00 4b 12 00 ΝΤW address: 0000 Device type + receiver on when idle + relationship +reserved: 08 Permit joining + reserved: 02 Depth: 00 LQI: 01 72

Extended panid: 89 4b 46 01 00 4b 12 00 Extended address: FF FF FF FF FF FF FF FF ΝΤW address: CE 3A (ενός dinrail η 16-bit address) Device type+ receiver on when idle + relationship + reserved: 39 Permit joining + reserved: 02 Depth: FF LQI: 56 Extended panid: 89 4b 46 01 00 4b 12 00 Extended address: FF FF FF FF FF FF FF FF ΝΤW address: D7 B9 (του router-waspmote η 16-bit address) Device type+ receiver on when idle + relationship + reserved: 39 Permit joining + reserved: 02 Depth: FF LQI: 90 5.2.7 Management rtg (routing table) Table 5-8 Table 5-9 73

Management rtg request: Data payload: 01 00 Management rtg response: Sequence: 01 Status :00 Routing table entries: 05 Start index:00 Routing table list count: 05 Destination address :0000 Status + memory contained flag + many to one flag + route record required + reserved: 00 Next hop address: 0000 Destination address: 16D3 (του coordinator) Status + memory contained flag + many to one flag + route record required + reserved: 00 Next hop address: 0843 (ενός dinrail) Destination address: D7B9 (του router-waspmote) Status + memory contained flag + many to one flag + route record required +reserved : 00 Next hop address: D7B9(του router-waspmote ) Destination address: CE3A (ενός dinrail) Status + memory contained flag + many to one flag + route record required +reserved : 00 Next hop address: CE3A (ενός dinrail) Destination address: ΕΕD9 (ενοςμετρητη) Status + memory contained flag + many to one flag + route record required + reserved: 00 Next hop address: CE3A (ενός dinrail) 5.3 CLUSTERS Ο general functional domain της ZCL περιέχει clusters και πληροφορίες που παρέχουν γενικές λειτουργίες και attributes. Από αυτόν τον τομέα η meazon bizy plug και τα dinrails υποστηρίζουν τα εξής clusters: Basic cluster- Cluster ID : 0x0000 Identify cluster - Cluster ID : 0x0003 Groups cluster - Cluster ID : 0x0004 On/Off cluster - Cluster ID : 0x0006 Time Cluster - Cluster ID : 0x000A 74

5.3.1 Basic cluster Το Basic Cluster περιέχει attributes για το καθορισμό βασικών πληροφοριών σχετικά με τη συγκεκριμένη συσκευή. Παρακάτω στον πίνακα 5-10 παρουσιάζονται τα υποστηριζόμενα attributes. Table5-10 Το basic cluster δεν δημιουργεί καμία εντολή command απλά δέχεται μία με αναγνωριστικό το 0x00 όπως φαίνεται στον πίνακα 5-11. Table 5-11 5.3.2 Identify Cluster Το Identify Cluster υπάρχει με σκοπό την αναγνώριση κάποιας συσκευής. Κάθε συσκευή στο Zigbee δίκτυο έχει τη δυνατότητα να "ταυτοποιηθεί" άμα της ζητηθεί 75

είτε οπτικά είτε ηχητικά. Στη συγκεκριμένη περίπτωση που η πρίζα και οι μετρητές έχουν πάνω τους LED αυτό αποτελεί το αναγνωριστικό τους. Aναβοσβήνουν το LED για όση ώρα έχει οριστεί από το μοναδικό attribute που υποστηρίζει το identify cluster και έχει το όνομα Identify Time Cluster. Υποστηρίζονται οπότε και οι αντίστοιχες εντολές για να επιτευχθεί η προαναφερθείσα λειτουργία αναγνώρισης. Τα attributes και τα commands παρουσιάζονται στον πινακα 5-12. Table 5-12 5.3.3 Groups Cluster Το Groups Cluster αφορά τα attributes και τις εντολές για τη διαμόρφωση και τον διαχειρισμό μιας ομάδας συσκευών. Αυτό το cluster εφαρμόζεται ως ένα server cluster. Στον πίνακα 5-13 φαίνονται τα υποστηριζόμενα attributes και οι commands που δύναται να εκτελεστούν με βάση το συγκεκριμένο cluster. 76

Table 5-13 5.3.4 On/Off cluster To On/Off Cluster περιέχει attributes και εντολές για την αλλαγή κατάστασης των συσκευών σε on/off. Με άλλα λόγια αυτό το cluster παρέχει τη διεπαφή με το εξωτερικό (ή εσωτερικό) ρελέ-διακόπτη τον οποίο και χρησιμοποιούμε για να ελέγξουμε τη λειτουργικότητα οποιουδήποτε επιθυμητού φορτίου. Ανάλογα με τον αριθμό των διακοπτών που ενδιαφέρεται ο χρήστης να χρησιμοποιήσει χρειάζεται και αντίστοιχο αριθμό των On/Off clusters τα οποία είναι διανεμημένα σε διαφορετικά endpoints. Στους έξυπνους τριφασικούς και μονοφασικούς μετρητές που αφορούν την εφαρμογή απαιτείται ένα μόνο Οn/Off cluster για τον κάθε διακόπτη που προσφέρει ο κάθε μετρητής. To cluster περιέχει ένα attribute σχετικό με τη κατάσταση των 77

συσκευών και μπορεί να πάρει τη τιμή On=1 και Off=0. Στον πίνακα 5-14 παρουσιάζεται το attribute μαζί με τις εντολές που αφορούν το cluster. Table5-14 Το On/Off cluster έχει περαιτέρω επεκταθεί με τη προσθήκη ενός επιπλέον attribute κατασκευασμένο ειδικά για τους τριφασικούς και μονοφασικούς μετρητές της εφαρμογής. Το attribute αυτό με την ονομασία OnOff Startup State διαμορφώνει τη startup τιμή του On/Off attribute και κατά συνέπεια τη κατάσταση του ρελέ σε : 0x00 : Ξεκίνημα με τη τιμή 0 (off κατάσταση). 0x01 : Ξεκίνημα με τη τιμή 1 (on κατάσταση). 0x02 : Ξεκίνημα με τι τιμή της προηγούμενης κατάστασης (δηλαδή τη κατάσταση που είχε το ρελέ πριν τη λειτουργεία off ). 5.3.5 Time cluster To Time Cluster παρέχει μια βασική διεπαφή σε ένα ρολόι πραγματικού χρόνου. Η ώρα του ρολογιού μπορεί να διαβαστεί καθώς και να επεξεργαστεί 78

προκειμένου να συγχρονιστεί το ρολόι σε μια δεδομένη ώρα. Αυτή η "standard" ώρα είναι στην ουσια ένας αριθμός από δευτερόλεπτα, λεπτά και ώρες σύμφωνα με τη UTC (Universal Coordinated Time). To cluster επίσης περιλαμβάνει τη βασική λειτουργικότητα για τη τοπική ώρα ζώνης και τη θερινή ώρα η οποία είναι ζωτικής σημασίας για τον σωστό συγχρονισμό των έξυπνων μετρητικών συσκευών καθώς και την ακριβή χρονο-σφράγιση των παραγόμενων μετρήσεων. Τα προσφερόμενα attributes του time cluster που είναι δυνατόν να χρησιμοποιηθούν αριθμούνται στον πίνακα 5-15. Table 5-15 5.3.6 Metering cluster To σημαντικότερο cluster της εφαρμογής είναι αυτό που μας παρέχει τις απαραίτητες μετρήσεις για την αποδοτική αξιοποίηση των μετρητικών συσκευών, εξού και το όνομα Metering Cluster. Το Metering cluster προσδιορίζεται από το ClusterID : 0x0702 και καθορίζεται από τη Zigbee Alliance με ένα σύνολο από 79

attributes, από τα οποία θα χρησιμοποιηθούν μερικά από αυτά ενώ εξίσου έχουν προστεθεί επιπλέον attributes από το κατασκευαστή των μετρητικών συσκευών με στόχο την μεγαλύτερη ακρίβεια μετρήσεων στον χρήστη. Τα attributes του Metering Cluster είναι ομαδοποιημένα σε σύνολα. Κάθε σύνολο προσδιορίζεται από μια μάσκα. Στον πινακα 5.16 παρουσιάζονται το σύνολο των attributes που παρέχονται από τη ZigbeeAlliance. Attribute Set Mask 0x0000 0x0100 0x0200 0x0300 0x0400 0x0500 0x0600 0x0700 0x0008 0x0900-0xff00 Description Reading Information Set TOU Information Set Meter Status Formatting Historical Consumption Load Profile Configuration Supply Limit Block Information Alarms Reserved Table 5-16 Στον παρακάτω πίνακες παρουσίαζονται τα attributes που θα αξιοποιηθούν από τις μετρητικές συσκευές από κάθε γενικό σύνολο. Στον πίνακα 5-17 εμφανίζεται το προσφερόμενο σύνολο των attributes για να γίνει η ανάγνωσητωνμετρήσεων. Identifier Name Type Access 0x0000 Current Summation Unsigned 48-bit Read Only Delivered Integer 0x0001 Current Summation Unsigned 48-bit Read Only Received Integer 0x0007 Reading SnapShot UTC Time Read Only Time 0x0017 Inlet Temperature Signed 24-bit Integer Read Only Table 5-17 80

Τα attributes με τα ονόματα CurrentSummationDelivered και CurrentSummmationReceived δείχνουν την καταναλισκόμενη και λαμβανόμενη ενέργεια αντίστοιχα. Το attribute με το όνομα ReadingSnapShotTime κραταέι την ώρα κατά την οποία ενημερώθηκαν τελευταία φορά τα παραπάνω attributes. Και τέλος το attribute με το όνομα Inlet Temperature κρατάει τη τιμή της μετρούμενης θερμοκρασίας από τον αισθητήρα θερμοκρασίας που κάθε μετρητική συσκευή διαθέτει. Στον πίνακα 5-18 παρουσίαζεται το status attribute που παρουσιάζει τη κατάσταση της μετρητικής συσκευής. Identifier Name Type Access 0x0200 Status 8-bit bitmap Read Only Table 5-18 Συγκεκριμένα παρέχει δείκτες που μας ενημερώνουν για τις προσωρινές σφαλμένες συνθήκες όπως ανιχνεύονται για κάθε μετρητική συσκευή ξεχωριστά. Έχει πεδίο μήκους 8-bit όπου κάθε bit ενεργοποιημένο σε κατάσταση high ("1") μαρτυράει και το αντίστοιχο σφάλμα που έχει προκύψει στη λειτουργία της συσκευής. Μέσα από την ανάγνωση των bits μπορούμε να καθορίσουμε και να ελεγξουμε πότε κάθε bit βρίσκεται σε κατάσταση low ή high. H ανάγνωση αυτών επιτυγχάνεται μέσω της ZCL report attribute command. Στον πινακα 5-19 παρουσίαζεται η ερμηνεία καθενός από αυτά τα bits. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Reserved Service Disconnect Leak Detect Power Quality Power Failure Tamper Detect Low Battery Check Meter Open Table 5-19 Service Disconnect Open: Τίθεται σε true ("1") όταν η υπηρεσία έχει ξεσυνδεθεί από τη συνολική εγκατάσταση. Leak Detect: Τίθεται σε true ("1") όταν ανιχνευτεί διαρροή. 81

Power Quality: Τίθεται σε true ("1") όταν ανιχνευτεί ένα σφάλμα στη ποιότητα της μέτρησης όπως χαμηλή η υψηλή τάση. Power Failure: Τίθεται σε true ("1") κατά τη διάρκεια διακοπής. Tamper Detect: Τίθεται σε true ("1") όταν ανιχνευτεί κάποια παραβίαση στο δίκτυο. Low Battery: Τίθεται σε true ("1") όταν απαιτείται συντήρηση της μπαταρίας. Check Meter: Τίθεται σε true ("1") όταν ανιχνευτεί ένα μικρής σημασίας σφάλμα όπως σφάλμα στη μέτρηση, σφάλμα στη μνήμη. Στον πίνακα 5-20 ακολουθεί το σύνολο των attributes μορφοποίησης: Identifier Name Type Access UnitOfMeasure 8-bit Read 0x0300 Enumeration Only SummationFormatting 8-bit BitMap Read 0x0303 Only DemandFormatting 8-bit BitMap Read 0x0304 Only MeteringDeviceType 8-bit BitMap Read 0x0306 Only MeterSerialNumber Octet String Read 0x0308 Only TemperatureUnitOfMeasure 8-bit Read 0x030c Enumeration Only TemperatureFormatting 8-bit BitMap Read 0x030d Only Table 5-20 To UnitOfMeasure attribute παρέχει πληροφορία σχετικά με τη μονάδα μέτρησης της παραγόμενης ενέργειας και γενικότερα των μετρήσεων ισχύος. Στην περίπτωση των μετρητικών συσκευών την εφαρμογής το attribute θα έχει τη τιμή 0x00 που σημαίνει ότι η απεικόνιση είναι σε KWh (Kilowatts ανά ώρα) και ΚW (Kilowatts) σε καθαρή δυαδική μορφή. 82

To SummationFormatting attribute παρέχει τη μέθοδο για τη σωστή αποκρυπτογράφηση του αριθμού των ψηφίων και τη δεκαδική θέση των τιμών που παρουσιάζονται από το σύνολο των attributes σχετικά με τις πληροφορίες μετρήσεων. Αυτό το attribute χρησιμοποιείται συγκριτικά με τα 2 attributes με ονόματα Current Summation Delivered και Current Summation Received. To DemandFormatting attribute χρησιμοποιείται με παρόμοιο τρόπο όπως το SummationFormatting attribute αλλά επηρεάζει τη μορφοποίηση της στιγμιαίας ζήτησης. Το MeteringDeviceType attribute υποδεικνύει το τύπο μέτρησης. Στη περίπτωση των μετρητικών συσκευών της εφαρμογής αυτό είναι 0, γεγονός που υποδηλώνει ηλεκτρική μέτρηση. Το MeterSerialNumber attribute αναφέρεται στην αποθήκευση ενός string 24 χαρακτήρων κρυπτογραφημένο σε μορφή UTF-8. Ο γνωστός σειριακός αριθμός χρησιμοποιείται για να παρέχει μια μοναδική ένδειξη κάθε μετρητικής συσκευής. Τα τελευταία δύο attributes Temperature Unit Of Measure και Temperature Formatting παρέχουν την ίδια λειτουργικότητα όπως το UnitOfMeasure και το SummationFormatting απλά για το attribute που αφορά την Inlet Temperature. Τέλος, από τα attributes της Zigbee Alliance υπάρχει το attribute Instataneous Demand, το οποίο μας δίνει τη στιγμιαία ισχύς και παρουσίαζεται στον πίνακα 5-21. Identifier Name Type Access 0x0400 Instantaneous Demand Signed24-bit integer Read Only Table 5-21 H Meazon έχει δημιουργήσει δικά της attributes για το Metering cluster (0x0702). Το set των attributes παρουσίαζεται στον πίνακα 5-22 : 83

Attribute Set Mask 0x1000 0x2000 0x3000 0x4000 0x5000 Description Meazon Electric Properties Meazon Electric Instant Measurements MeazonElectricSummation Measurements Meazon Electric History Measurements Meazon Electric Calibration Table 5-22 Τα επιπλέον αυτά attributes της meazon παρέχουν πληροφορίες για κάθε φάση των συσκευών ξεχωριστά, όπως τάση, ρεύμα, ισχύς, ενέργεια. 84

6 Προγραμματιστικά βήματα Βήμα 1 : Είσοδος waspmote στο PAN των μετρητικών συσκευών Κάθε πρόγραμμα στο libelium αποτελείται από δύο βασικές συναρτήσεις, την "setup" και την "loop", που όπως μαρτυρούν τα ονόματά τους η πρώτη εμπεριέχει τις αρχικοποιήσεις του προγράμματος και η δεύτερη εκτελεί το κυρίως πρόγραμμα σε συνεχείς επαναλήψεις. Όλες οι συναρτήσεις που κατασκευάζει ο χρήστης είναι απαραίτητο να καλούνται μέσα από αυτές τις δύο συναρτήσεις. Το πρόγραμμα ξεκινά με την αρχικοποίηση του πρωτοκόλλου xbeezb.init(zigbee,freq2_4g,normal); xbeezb.on(); Στη συνέχεια πραγματοποιούνται οι απαραίτητες αρχικοποιήσεις έτσι ώστε ο router-waspmote να συνδεθεί στο δίκτυο των μετρητικών συσκευών. Mέσω των ZDO commands που εκτελέστηκαν στο περιβάλλον του X-CTU έγινε γνωστή η 64-bit διεύθυνση του PAN. Αρχικοποιώντας λοιπόν το PANID σε 0x00124B0001464B89, ο router γνωρίζει τη διεύθυνση του Zigbee δικτύου στο οποίο θα εισέλθει. Παράλληλα όμως πρέπει να γίνουν και άλλες αρχικοποιήσεις για να μπορέσει να επιτευχθεί η σύνδεση στο PAN. Αυτές παρουσιάζονται στη συνάρτηση initializexbee(). Αφού ο router - waspmote αρχικοποιηθεί με τα παραπάνω χαρακτηριστικά αρκεί να επιτρέψει ο coordinator ή οι υπόλοιποι routers του δικτύου την είσοδο του σε αυτό. Η meazon έχει δημιουργήσει ένα περιβάλλον για τον έλεγχο των συσκευών καθώς επίσης παρέχει τη δυνατότητα εισόδου και εξόδου συσκευών από την IP διεύθυνση που υποστηρίζει ο coordinator. Για να εισέλθει λοιπόν ένας νέος router στη mesh τοπολογία του δικτύου απαιτείται η έγκριση από μια μετρητική συσκευή ή τον coordinator. Στην IP διεύθυνση του εργαστηρίου http://150.140.187.15/#/home επιλέγουμε ρύθμισεις συσκευών (figures 6-1), τοποθεσία και στη συνέχεια προσθήκη. Η προσθήκη μιας νέας συσκευής μπορεί να επιτευχθεί επιλέγοντας το "+ ΠΡΟΣΘΗΚΗ" είτε στο κάτω μέρος είτε αριστερά οποιασδήποτε συσκευής του δικτύου όπως παρουσιάζεται στο figure 6-2. Δηλαδή η προσθήκη μπορεί να γίνει είτε από τον coordinator και κατά συνέπεια όλων των routers του δικτύου ή μέσω ενός router, προτιμότερα του κοντινότερου στη συσκευή που θέλει να εισέλθει στο δίκτυο. 85

Figure 6-1 Figure6-2 Ο router-waspmote εισέρχεται στο δίκτυο και μέσω της συνάρτησης joining channel() ανακαλύπτουμε το κανάλι στο οποίο βρίσκεται το PAN καθώς και τις διευθύνσεις (operating PAN, extended PAN, network addresses) που αποκτά ο router. Mέσα στην joining channel() καλείται η συνάρτηση printassociationstate() σκοπός της οποίας είναι να δείξει πότε έγινε η είσοδος στο δίκτυο ή διαφορετικά τον λόγο για τον οποίο δεν έχει επιτευχθεί ακόμα. 86

Βήμα 2 : Προετοιμασία για την ανταλλαγή δεδομένων μεταξύ waspmote και μετρητικών συσκευών. O header mine δημιουργήθηκε για να κρατάει τις δομές σχετικά με τα απαραίτητα στοιχεία ενός frame, τα οποία είναι οι διευθύνσεις (64-bit και 16-bit) προορισμού του πακέτου δεδομένων, τα endpoints πηγής και προορισμού, το cluster ID, prοfile ID και η δομή της ZCL command (ZCL header & ZCL payload). Aυτές οι δομές ενημερώνονται στη setup συνάρτηση αφού έχουν γίνει οι απαραίτητες αρχικοποιήσεις στην αρχή του προγράμματος. Το profile ID είναι σταθερά το 0x0104 (Home automation profile) ενώ το cluster ID μπορεί να πάρει οποιαδήποτε τιμή από τα clusters που υποστηρίζουν οι μετρητικές συσκευές. Στο πρόγραμμα παρακολούθησης των συσκευών χρησιμοποιείται το Simple Metering cluster (0x0702) για να γίνει η λήψη δεδομένων σχετικά με την καναλισκόμενη ισχύ και την ενέργεια των συσκευών. Βήμα 3: Αποστολή frame Γίνεται η διαδοχική αποστολή και λήψη πακέτου δεδομένων κάθε συσκευής ξεχωριστά. Όσον αφορά την αποστολή, ο router-waspmote στέλνει ένα frame με ZCL command για να εκτελέσει "read attribute command", δηλαδή να "διαβάσει" από τη συσκευή τις τιμές των attributes, να δεχτεί δηλαδή τις μετρήσεις που αφορούν τη στιγμιαία κατανάλωση ισχύος και την ενέργεια. Το ΖCL payload αποτελείται από τα attributes 0x0000 και 0x0400 τα οποία αντιστοιχούν στην ενέργεια που μετράει η συσκευή από τη στιγμή που άρχισε η λειτουργίας της (Current Summation Delivered) και την στιγμιαία ισχύ της μετρητικής συσκευής (Instantaneous Demand). Ουσιαστικά, η συνάρτηση SendZCL(PACKET ZCL PacketOut) χτίζει το frame που θα στείλει το waspmote σε οποιαδήποτε συσκευή. Αυτό το frame μπορεί να σταλεί ταυτόχρονα σε όλες τις συσκευές του δικτύου αρκεί να τεθεί η 64-bit address σε 0x0000 0000 0000 FFFF (broadcast transmission) και η 16-bit address σε 0xFFFE (unknown address). Αλλιώς επιλέγεται η διεύθυνση κάποιας συσκευής. 'Oλες οι διευθύνσεις των μετρητικών συσκευών της εφαρμογής έχουν αρχικοποιηθεί στην αρχή του προγράμματος. 87

Βήμα 4: Λήψη frame Η λήψη του frame απάντησης από τη μετρητική συσκευή γίνεται και επεξεργάζεται από τη συνάρτηση ReceiveZCL(PACKETZCL PacketOut). Μετά την αποστολή του πακέτου από το waspmote το Χbee πέραν του frame απάντησης δέχεται και άλλα frames. Μέσω της συνάρτησης διαβάζονται όλα τα bytes που έχουν ληφθεί και βρίσκονται στο buffer της λήψης και έπειτα ξεκινάει ο έλεγχος για την αναγνώριση του frame απάντησης. Τα βήματα είναι τα εξής : Kάθε καινούριο frame προοριζόμενο για το Xbee ξεκινάει από 7Ε. Γίνεται έλεγχος της διεύθυνσης για την αναγνώριση της συσκευής που έστειλε το frame. Έλεγχος των endpoints. To source endpoint πρέπει να αντιστοιχεί σε αυτό των μετρητικών συσκευών (0A) και το destination point σε αυτό του waspmote (E8). Το cluster ID του frame λήψης πρέπει να είναι ίδιο με αυτό του frame αποστολής. Το profile ID της εφαρμογής είναι πάντα 0x0104 ( Home Automation Profile). Το ZCL frame ελέγχεται από τη συνάρτηση RXData_Received η οποία ελέγχει: o Το sequence number του frame λήψης να είναι το ίδιο με αυτό του frame αποστολής. Αυτό το byte είναι το 2ο byte στο ZCL header και χρησιμεύει στο να γίνεται η πλήρης αντιστοίχιση μεταξύ αυτών των δύο frames. Κάθε frame αποστολής-λήψης έχει διαφορετικό sequence number. Στο πρόγραμμα αυξάνεται κάθε φορά κατά 1 πριν την αποστολή-λήψη κάθε frame. o Το τρίτο byte του ZCL header να είναι το 01 έτσι ώστε να αντιστοιχεί σε read attribute response και να επιβεβαιώνει την απάντηση σε εντολή ανάγνωσης που στάλθηκε προηγουμένως. o Στο ZCL payload να φτάνουν πρώτα τα 2 bytes που αναφέρονται στο attribute του οποίου ζητήθηκε η τιμή. o Nα ακολουθεί το status, το οποίο έχει μέγεθος 1 byte και πρέπει να είναι 00 για να έχει γίνει με επιτυχία η λήψη της τιμής του attribute. 88

o Πριν τη τιμή υπάρχει 1 byte το οποίο ονομάζεται data type και δηλώνει το τύπο δεδομένων που θα ακολουθήσει. Με αυτόν τον τρόπο είναι γνωστά τα bytes που θα καταλάβει η τιμή του attribute. Στην RXData_Received πραγματοποιείται η αποστολή των τιμών των attributes στην UART 1 για τη μετάβαση τους στον κεντρικό υπολογιστή συγκεκριμένα στο user interface για την μετέπειτα αναπαράσταση και γραφική απεικόνισή τους. Βήμα 5: Υπολογισμός checksum O υπολογισμός του checksum είναι απαραίτητος για την αποστολή ενός frame και γίνεται μέσω της συνάρτησης calculate_checksum. Το checksum αποτελεί πάντα το τελευταίο byte κάθε frame σε API mode. Στη συνάρτηση λήψης του frame απάντησης το checksum υπολογίζεται πάλι για την επιβεβαίωση της σωστής λήψης ολόκληρου του frame. Βήμα 6: UART 1 To waspmote έχει 2 UARTs. Με τη UART 0 επιτυγχάνεται η επικοινωνία των συσκευών μέσω του πρωτοκόλλου Zigbee. Σε αυτήν είναι συνδεδεμένο το module Χbee και πραγματοποιείται η αποστολή και η λήψη των frames. H UART 1 χρησιμοποιείται για την επικοινωνία του Χbee με το desktop user interface. Μέσω της σειριακής θύρας (Χbee USB port) γίνεται η σύνδεση με το waspmote όπως παρουσιάζεται στα figures 6-3, 6-4. Οι τιμές ενέργειας και ισχύος μετατρέπονται σε δεκαδική βάση στη συνάρτηση RXData_Received και μεταφέρονται μέσω την εντολής printinteger(value,1); στην UART 1. 89

Figure 6-3 Figure6-4 Ο κώδικας του waspmote παρατίθεται στο Παράρτημα Α. 90

7 Desktop user interface 7.1 QT framework Στόχος της εφαρμογής είναι η παρακολούθηση και η καταγραφή των μετρήσεων που προσφέρουν οι μετρητικές συσκευές. Με τη συνεχόμενη και στιγμιαία καταγραφή της κατανάλωσης ισχύος και της ενέργειας στο χώρο του εργαστηρίου προσφέρεται η δυνατότητα μιας ολοκληρωμένης εικόνας της ενεργειακής του λειτουργίας καθώς και της αξιοποίησης των μετρητικών αποτελεσμάτων για το μετέπειτα έλεγχο της ροής ενέργειας. Δημιουργήθηκε ένα "desktop user interface", ένα περιβάλλον προκειμένου ο χρήστης να ενημερώνεται ανά πάσα στιγμή για την ενεργειακή κατανάλωση του εργαστηρίου. Για την υλοποίηση αυτού επιλέχθηκε το Qt framework. Το Qt framework είναι ένα open-source cross-platform εργαλείο που επιτρέπει την ανάπτυξη προηγμένων εφαρμογών και διεπαφών χρήστη. Τα σημαντικότερα πλεονεκτήματα που καθιστούν το Qt ως το καταλληλότερο εργαλείο για τη δημουργία διεπαφών χρήστη είναι τα εξής : Το πρόγραμμα που δημιουργείται δύναται να εγκατασταθεί και να λειτουργήσει στα κυριότερα λειτουργικά συστήματα Windows, Linux και MAC χωρίς τη συγγραφή νέου πηγαίου κώδικα. Η βιβλιοθήκη κλάσεων του Qt αναπτύσσεται διαρκώς και περιλαμβάνει έναν μεγάλο αριθμό κλάσεων σχεδιασμένων σε C++, που επιτρέπουν τη σχεδίαση πολύπλοκων και καινοτόμων εφαρμογών, προσφέροντας ποικίλες δυνατότητες, όπως διαχείρηση βάσεων, δεδομένων, υποστήριξη δικτύων, XML κ.α. Παρέχει πολύ καλό documentation το οποίο είναι ενσωματωμένο σε αυτό και είναι εύκολο στη χρήση και την εκμάθηση. Σε γλώσσα προγραμματισμού C++ έγινε η δημιουργία μιας διεπαφής χρήστη τόσο για την αποθήκευση και την καταγραφή των μετρήσεων όσο και για την απεικόνιση αυτών σε γραφικές παραστάσεις με στόχο την καλύτερη κατανόηση των αποτελεσμάτων. 91

7.2 Σειριακή λήψη δεδομένων H ασύγχρονη σειριακή λήψη των μετρήσεων στο περιβάλλον του Qt από το waspmote έγινε με τη βοήθεια της σειριακής θύρας όπως παρουσιάζεται στο κεφάλαιο 6. Στο πρόγραμμα του waspmote επιλέχθηκε να περνάνε στη UART 1 μόνο οι τελικές τιμές των μετρήσεων σε δεκαδική μορφή. Έτσι το Qt δέχεται έναν αριθμόαναγνωριστικό, που υποδεικνύει τη συσκευή από την οποία προέρχεται η μέτρηση, ακολουθούμενο από τη συνολική ενέργεια και τη στιγμιαία κατανάλωση ισχύος κάθε μετρητικής συσκευής. 7.3 SQLite Οι λαμβανόμενες μετρήσεις στο περιβάλλον του Qt αποθηκεύονται απευθείας σε μια βάση δεδομένων προκειμένου να ανακτηθούν όποτε αυτές ζητηθούν από το χρήστη. Η ανάπτυξη του user interface επιδιώκει τόσο τη "real-time" απεικόνιση των αποτελεσμάτων (σε πραγματικό χρόνο) όσο και την απεικόνιση του ιστορικού των μετρήσεων με σκοπό τόσο την παρακολούθηση όσο και τη σύγκριση των αποτελεσμάτων. Με τον όρο βάση δεδομένων αναφερόμαστε σε μια οργανωμένη, διακριτή συλλογή σχετιζόμενων δεδομένων ηλεκτρονικά αποθηκευμένων και χάρις σε αυτήν επιτυγχάνεται η αποθήκευση μεγάλου φόρτου πληροφοριών. Έγινε η επιλογή μιας SQLite βάσης η οποία κρατάει τις πληροφορίες σχετικά με τις μετρήσεις, τη συσκευή από την οποία προέρχονται καθώς και το χρόνο στο οποίο καταγράφονται. Το Qt είναι ειδικά σχεδιασμένο για να "επικοινωνεί" με μια βάση δεδομένων, να στέλνει και να δέχεται δεδομένα από αυτή ανάλογα των απαιτήσεων της εφαρμογής ή της επιθυμίας του χρήστη. Με τη χρήση λοιπόν της βιβλιοθήκης QtSql έγινε η σύνδεση με τη βάση δεδομένων και με τη χρήση της βιβλιοθήκης QΤime έγινε η καταγραφή της ακριβής ώρας (σε ώρες, λεπτά, δευτερόλεπτα). 7.4 Γραφικές παραστάσεις To QCustomPlot είναι ένα Qt widget για τη 2D σχεδίαση και οπτικοποίηση των δεδομένων, σύμφωνα με την άδεια GPL. Χρησιμοποιείται στην παρούσα διπλωματική εργασία με στόχο την απεικόνιση των μετρήσεων με τρόπο όσο το δυνατόν κατανοητό για το χρήστη. Ακολουθούν οι γραφικές παραστάσεις ισχύος και 92

ενέργεια της bizy plug η οποία είναι συνδεδεμένη σε μια ηλεκτρική σόμπα που μπορεί να λειτουργεί σε τρεις στάθμες ισχύος, 400,800 και 1200 Watts. Figure7-1 Στο figure 7-1 παρουσίαζεται η στιγμιαία ισχύς της bizyplug όταν η σόμπα σημειώνει διαφορετική στάθμη ισχύος ανά περίπου ένα λεπτό. Το figure 7-2 παρουσιάζει την αύξηση ενέργειας που σημειώθηκε κατά τη διάρκεια αυτών των λεπτών, κατά προσέγγιση 11 με 12 λεπτά. Με αρχική τιμή ενέργειας ~6800 W/h και τελική τιμή ενέργειας ~6950 W/h η συνολική κατανάλωση ενέργειας που σημειώθηκε κατά τη λειτουργία της ηλεκτρικής σόμπας κυμαίνεται στα ~150 W/h. 93

Figure7-2 Στα figures 7-3, 7-4 παρουσιάζονται η στιγμιαία κατανάλωση ισχύος και η συνολική αλλαγή ενέργειας που σημείωσαν οι μετρητές για το χρονικό διάστημα ενός εικοσιτετραώρου στο χώρο του εργαστηρίου. Οι μετρήσεις άρχισαν να λαμβάνονται το απόγευμα στις 16:30 και το πείραμα ολοκληρώθηκε στον ακριβές διάστημα 24 ωρών. Στα διαγράμματα είναι εμφανείς οι γραφικές παραστάσεις κάθε μετρητή ξεχωριστά. Το dinrail 3, στο διάγραμμα παρουσιάζεται με μαύρο χρώμα, καταναλώνει περίπου την ίδια ισχύ στο διάστημα 24 ωρών καθώς αυτός ο μετρητής είναι συνδεδεμένος στον ηλεκτρολογικό πίνακα που τροφοδοτεί τα ups στο server room. Η αλλαγή κατανάλωσης ισχύος είναι ιδιαίτερα αισθητή στο dinrail 1, στο διάγραμμα παρουσιάζεται με κόκκινο χρώμα, το οποίο είναι συνδεδεμένο σε ηλεκτρολογικό πίνακα ο οποίος τροφοδοτεί γραμμές με φώτα και πρίζες. Τις βραδινές ώρες όπου δεν γίνεται χρήση του εργαστηρίου είναι αρκετά χαμηλή η κατανάλωση ισχύος. Στο διάγραμμα ενέργειας πρέπει να τονιστεί ότι οι μετρητές μετράνε την ενέργεια από τη στιγμή της εγκατάστασής τους στους ηλεκτρολογικούς πίνακες. 94

Είναι δύσκολα εμφανής η αύξηση της ενέργειας στη διάρκεια ενός 24ώρου καθώς οι μετρητές έχουν ήδη σημειώσει συνολική ενέργεια σε επίπεδα 10 6 και 10 7. Figure 7-3 95