diff --git a/project.html b/project.html
index f8462d3..8c2c84a 100644
--- a/project.html
+++ b/project.html
@@ -472,8 +472,8 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
-
Το "Smart Parking" Έξυπνο πάρκινγκ βασίζεται στη διαδικασία όπου η κατάσταση του πάρκινγκ κοινοποιείται
-μέσω ενός συνόλου hardware και software στο διαδίκτυο έτσι ώστε να πετυχουμε η κατάσταση του να είναι διαθέσιμη
+
Το "Smart Parking" Έξυπνο πάρκινγκ βασίζεται στη ιδέα όπου η κατάσταση του πάρκινγκ κοινοποιείται
+μέσω ενός συνόλου hardware και software στο διαδίκτυο έτσι ώστε να πετύχουμε η κατάσταση του να είναι διαθέσιμη
"accesable" από το διαδίκτυο. Αυτό το χαρακτηριστικό κάνει αυτό το αντικειμένο μέρος του διαδικτύου και του κόσμου του IoT.
@@ -486,22 +486,94 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
έναν μικροελεγκτή (Arduino Uno), έτσι ώστε να ανιχνεύει και να κωδικοποιεί για μία συγκεκριμένη θέση έαν υπάρχει
κάποιο όχημα ή όχι.
+
+
+
+
+
+
+
+ |
+
+ Φάκελος Κώδικα
+
+ |
+
+
+
+
+
-
Το 2ο μέρος αποτελείται από τον συσκευή gateway σε Raspberry Pi1, η οποία διαβάζει στη σειριακή του
τη πληροφορία από το Arduino Uno, που κάνει "sense" μία θέση parking, και στέλνει αυτή την πληροφορία
σε έναν web server με χρήση REST API.
+
+
+
+
+
+
+
+ |
+
+ Φάκελος Κώδικα
+
+ |
+
+
+
+
+
-
-
To 3o μέρος αποτελείται από τον WEB Server ο οποίος αποτελείται από ένα process γραμμένο σε python. Το proccess αυτό υλοποιεί
-έναν REST API WEB Server έτσι ώστε να μπορεί να αποθηκεύει την κατάσταση κάθε θέσης parking σε μία δομή λίστας με χαρακτηριστικό
-κλειδί τον κωδικό κάθε θέσης parking.
+To 3o μέρος αποτελείται από τον WEB Server ο οποίος αποτελείται από ένα process υλοποιημένο σε γλώσσα προγραμματιμού python.
+Το proccess αυτό υλοποιεί έναν REST API WEB Server έτσι ώστε να μπορεί να αποθηκεύει την κατάσταση κάθε θέσης parking σε μία βάση
+δεδομένων δύο δομή λίστας με χαρακτηριστικό κλειδί τον κωδικό κάθε θέσης parking.
+
+
+
+
+
+
+
+ |
+
+ Φάκελος Κώδικα
+
+ |
+
+
+
+
+
+
+
+
+
+ |
+
+ Φάκελος Κώδικα
+
+ |
+
+
+
1.1. Parking Sensor Node (1ο μέρος)
@@ -530,9 +602,10 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
1.1.2. Υλοποίηση του Parking Sensor
Σε κάθε θέση parking υπάρχει ένας κόμβος που αποτελείται από ένα Arduino Uno και έναν αισθητήρα
-απόστασης (ultrasonic) εγκατεστημένος πάνω σε μικροελεγκτή Arduino Uno. Η λειτουργία αυτού βασίζεται στη
-μέτρηση της απόστασης από τον κόμβο μέχρι κάποιο αντικείμενο (πιθανό αυτοκίνητο) που εμποδίζει τη θέση του parking,
-καθώς και την εξαγωγή της κατάσταασης αντίστοιχης θέσης στη σειριακή θύρα του Arduino.
+απόστασης (ultrasonic) εγκατεστημένο πάνω σε μικροελεγκτή Arduino Uno. Η λειτουργία αυτού βασίζεται στην
+ανίχνευση ύπαρξης οχήματος στην αντίστοιχη θέση μέσω μέτρησης της απόστασης από τον αισθητήρα μέχρι
+κάποιο αντικείμενο (πιθανό αυτοκίνητο) που εμποδίσει τη θέση του parking, καθώς και την εξαγωγή της
+κατάσταασης αντίστοιχης θέσης στη σειριακή θύρα του Arduino.
@@ -562,7 +635,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
Κάθε κόμβος στέλνει στην σειριακή του τον κωδικό της θέσης, με τον οποίο έχει προγραμματιστεί το Arduino,
και την κατάσταση του parking, κωδικοποιημένα με τον διαχωριστή "#". Για την κατάσταση του parking ορίζουμε
με "1" ότι η θέση είναι ελεύθεση και με "0" ότι η θέση είναι δεσμευμένη. Ο έλεγχος του sensor γίνεται κάθε
-500ms. Η έξοδος στη σειριακή γίνεται με την μορφή ενός string.
+500ms. Η έξοδος στη σειριακή γίνεται με την μορφή μίας συμβολοσειράς "string".
<κωδικός θέσης>#<διαθεσιμότητα 0 ή 1>
@@ -572,8 +645,8 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
1.1.4. Διασύνδεση Κόμβου
Ο κόμβος αυτός συνδέεται με ένας "Gateway" κόμβο (βασισμένος σε Raspberry Pi) ο οποίος είναι υπεύθυνος για την
-μετάδοση της πληροφορίας που αφορά την διαθεσιμότητα της θέσης του parking στο διαδίκτυο. Η πληροφορία αυτή
-λαμβάνεται στον "Gateway" κόμβο ο οποίος στη συνέχεια την αποκωδικοποιεί και την αποστέλει στον WEB server μέσω του διαδικτύου.
+μετάδοση της πληροφορίας στο διαδίκτυο. Η πληροφορία αυτή λαμβάνεται στον "Gateway" κόμβο ο οποίος στη συνέχεια
+την αποκωδικοποιεί με βάση το πρότυπο <κωδικός θέσης>#<διαθεσιμότητα> και την αποστέλει σε έναν WEB server μέσω του διαδικτύου.
@@ -596,7 +669,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
1 x micro SD (Loaded with Raspbian OS)
-1 x Ethernet Link (Connects to nearest Network)
+1 x Ethernet Link (Connects to nearest Network) or WiFi adapter
@@ -604,18 +677,36 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
1.2.2. Υλοποίηση και Προγραμματισμός
-
Η υλοποίηση αποτελείται από την εγκατάσταση του Raspbian OS στο Raspberry και τη δημιουργία ενός proccess
-σε γλώσσα Python. Το process αυτό διαβάζει από την σειριακή θύρα του την πληροφορία που λαμβάνει από το αντίστοιχο Arduino Uno με
-την μορφή <κωδικός θέσης>#<διαθεσιμότητα 0 ή 1>. Ύστερα αποκωδικοποιεί αυτή την πληροφορία η οποία περιγράφει τον κωδικό της θέσης
-και την διαθεσιμότητα της και την αποστέλει μέσω ενός REST API με την μέθοδο POST σε έναν WEB Server. Τα δεδομέμα μας σε αυτήν
-την επικοινωνία παίρνουν μία μορφή JSON (JavaScript Object Notation).
+
Η υλοποίηση αποτελείται από την εγκατάσταση του Raspbian OS (light version) στο Raspberry και τη δημιουργία ενός proccess
+σε γλώσσα Python (v3). Το process αυτό διαβάζει από την σειριακή θύρα του την πληροφορία που λαμβάνει από ένα Arduino Uno με
+την μορφή <κωδικός θέσης>#<διαθεσιμότητα 0 ή 1>. Ύστερα αποκωδικοποιεί την πληροφορία η οποία περιγράφει τον κωδικό της θέσης
+και την διαθεσιμότητα της, και την αποστέλει μέσω ενός REST API με την μέθοδο POST σε έναν WEB Server. Για να αποσταλεί η πληροφορία
+στον WEB Server πρέπει να πάρει την μορφή JSON (JavaScript Object Notation).
+
+
+
Η μέθοδος του POST γίνεται στην περίπτωσή που η κατάσταση του Parking μεταβληθεί. Σε αντίθετη περίπτωση ο Server δεν ενημερώνεται.
+
+
+
Στον ίδιο φάκελο του κώδικα βρίσκεται ένα configuration αρχείο το οποίο περιέχει ένα JSON με την μορφή:
+
+
+
+
{
+ "ip": "iot-smart-parking.herokuapp.com",
+ "port": "443"
+}
+
+
+
+
Το αρχείο αυτό περιέχει ρυθμίσεις που αφορά τη σύνδεσή του με τον WEB Server την διευθυνδή του δηλαδή και την πόρτα
+που ακούει.
1.2.3. Διασύνδεηση στο Διαδίκτυο
Ο κόμβος Gateway έχει διασύνδεση με το διαδίκτυο μέσω ενός καλωδίου Ethernet (UTP) έτσι ώστε να μπορέσει
-να στείλει την πληροφορία στο διαδίκτυο.
+να στείλει την πληροφορία στο διαδίκτυο, δηλαδή στον WEB Server.
@@ -625,12 +716,12 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
2. Server Node (3ο μέρος - Κεντρικός Server όπου κρατά την κατάσταση της κάθε θέσης του Parking)
-
Ο κόμβος αυτός υλοποιεί ένα process γραμμένο σε γλώσσα προγραμματισμού Python 3. Αυτό το process εκτελεί ένα
-REST API έτσι ώστε να μπορούν να επικοινωνούν εύκολα πολλοί Gateway κόμβοι. Στην είσοδό του και στην έξοδό του
-τα δεδομένα μας έχουν την μορφή JSON.
+
Ο κόμβος αυτός υλοποιεί ένα process γραμμένο σε γλώσσα προγραμματισμού Python (v3). Αυτό το process υλοποιεί ένα
+REST API έτσι ώστε να μπορούν να επικοινωνούν εύκολα οι Gateway κόμβοι μας με αυτόν. Στην είσοδό του και στην έξοδό του
+η πληροφορία έχει την μορφή JSON.
-
Ο server αποθηκεύει όλα τα απαραίτητα δεδομένα σε μία Βάση δεδομένων MySQL, η οποία διαθέτει ένα πίνακα.
+
Ο server αποθηκεύει όλα τα απαραίτητα δεδομένα σε μία σχεσιακή βάση δεδομένων MySQL, η οποία διαθέτει έναν πίνακα.
Ο πίνακας κρατά όλα τα απαραίτητα πεδία που είναι:
@@ -646,10 +737,14 @@ REST API έτσι ώστε να μπορούν να επικοινωνούν ε
2.1. Εκτέλεση του Process στο Cloud
-
Για την εκτέλεση του process χρησιμοποιούμε μία πλατφόρμα IAAS (Infrastructure as a Service) ονόματι
+
Για την εκτέλεση του process χρησιμοποιούμε μία πλατφόρμα IAAS (Infrastructure as a Service) -
Heroku, για την οποιά μπορούμε να βρούμε περεταίρω πληροφορίες στον σύνδεσμο
παραπάνω.
+
+
Στην δωρεάν έκδοσή του δεν έχουμε περιορισμούς στο τμήμα του HTTP service που εκτελούμε, ενώ στη βάση δεδομένων
+υπάρχουν περιοριμοί στις συνδέδεις που μπορούν να γίνουν ανα κάποιο χρονικό διάστημα (περίπου 10 συνδέσει ανα 1 ώρα).
+
@@ -822,7 +917,7 @@ SLOW SUCCESS BUILDS CHARACTER, FAST SUCCESS BUILDS EGO.