|
|
@ -472,22 +472,32 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b |
|
|
|
<h2 id="_smart_parking">1. Smart Parking</h2> |
|
|
|
<div class="sectionbody"> |
|
|
|
<div class="paragraph"> |
|
|
|
<p><strong>Η υλοποίηση χωρίζεται σε 3 βασικά μέρη:</strong></p> |
|
|
|
<p>Το "Smart Parking" Έξυπνο πάρκινγκ βασίζεται στη διαδικασία όπου η κατάσταση του πάρκινγκ κοινοποιείται |
|
|
|
μέσω ενός συνόλου hardware και software στο διαδίκτυο και έτσι πετυχαίνουμε η κατάσταση του να είναι διαθέσιμη |
|
|
|
"accesable" από το διαδίκτυο. Αυτό το χαρακτηριστικό κάνει αυτό το αντικειμένο μέρος του διαδικτύου και του κόσμου IoT.</p> |
|
|
|
</div> |
|
|
|
<div class="paragraph"> |
|
|
|
<p><strong>Η υλοποίηση του Smart Parking χωρίζεται σε 3 βασικά μέρη:</strong></p> |
|
|
|
</div> |
|
|
|
<div class="ulist"> |
|
|
|
<ul> |
|
|
|
<li> |
|
|
|
<p>Το 1ο μέρος αποτελείται από τα αντικείμενα του parking (sensors) τα οποία είναι |
|
|
|
ένας αισθητήρας μέτρησης απόστασης (distance measurement sensor) σε κάθε θέση του πάρκινγκ, έτσι ώστε να ανιχνεύει για |
|
|
|
μία συγκεκριμένη θέση έαν υπάρχει κάποιο όχημα, καθώς και μία συσκευή Arduino Uno.</p> |
|
|
|
<p>Το 1<sub>ο</sub> μέρος αποτελείται από ένα σύνολο αισθητήρων που εγκαθιστούντε σε κάθε θέση parking (sensor), τα οποία αποτελούνται |
|
|
|
από έναν αισθητήρα μέτρησης απόστασης (ultrasonic) και έναν μικροελεγκτή (Arduino Uno), έτσι ώστε να ανιχνεύει και να κωδικοποιεί |
|
|
|
για μία συγκεκριμένη θέση έαν υπάρχει κάποιο όχημα ή όχι.</p> |
|
|
|
</li> |
|
|
|
<li> |
|
|
|
<p>Το 2ο μέρος αποτελείται από την συσκευή gateway σε Raspberry Pi1 η οποία διαβάζει στη σειριακή |
|
|
|
της πληροφορία από το Arduino Uno, που κάνει sense την θέση, και στέλνει αυτή την πληροφορία |
|
|
|
<p>Το 2<sub>ο</sub> μέρος αποτελείται από την συσκευή gateway σε Raspberry Pi1, η οποία διαβάζει στη σειριακή του |
|
|
|
τη πληροφορία από το Arduino Uno, που κάνει sense μία θέση parking, και στέλνει αυτή την πληροφορία |
|
|
|
σε έναν web server με χρήση REST API.</p> |
|
|
|
</li> |
|
|
|
<li> |
|
|
|
<p>Το 3o μέρος αποτελείται από τον client ο οποίος μέσω μίας web σελίδας βλέπει την κατάσταση |
|
|
|
<p>To 3<sub>o</sub> μέρος αποτελείται από τον WEB Server ο οποίος αποτελείται από ένα process γραμμένο σε python που υλοποιεί |
|
|
|
ένα REST API έτσι ώστε να μπορεί να αποθηκεύει την κατάσταση κάθε θέσης parking σε μία δομή λίστας με χαρακτηριστικό |
|
|
|
κλειδί τον κωδικό κάθε θέσης parking.</p> |
|
|
|
</li> |
|
|
|
<li> |
|
|
|
<p>Το 4<sub>o</sub> μέρος αποτελείται από την διεπαφή (Interface), με την οποία μέσω web σελίδας βλέπει κανείς την κατάσταση |
|
|
|
του parking, δηλαδή πόσες και ποιές θέσεις μέσα στον χώρο είναι ελεύθερες.</p> |
|
|
|
</li> |
|
|
|
</ul> |
|
|
@ -545,7 +555,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b |
|
|
|
</div> |
|
|
|
<div class="paragraph"> |
|
|
|
<p>Ο κόμβος διαθέτει επιπλέον δύο leds ένα κόκκινο και ένα μπλε, σαν έξοδο της κατάστασης |
|
|
|
της θέσης του parking για το οποίο είναι υπεύθυνος. Με κόκκινο χαρακτηρίζεται η θέση που είναι |
|
|
|
της θέσης του parking για τον οποίο είναι υπεύθυνος. Με κόκκινο χαρακτηρίζεται η θέση που είναι |
|
|
|
δεσμευμένη από ένα όχημα και με μπλε η ελεύθερη θέση, όπως φαίνεται στις παραπάνω εικόνες.</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -555,7 +565,10 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b |
|
|
|
<p>Κάθε κόμβος στέλνει στην σειριακή του τον κωδικό της θέσης, με τον οποίο έχει προγραμματιστεί το Arduino, |
|
|
|
και την κατάσταση του parking, κωδικοποιημένα με τον διαχωριστή "#". Για την κατάσταση του parking ορίζουμε |
|
|
|
με "1" ότι η θέση είναι ελεύθεση και με "0" ότι η θέση είναι δεσμευμένη. Ο έλεγχος του sensor γίνεται κάθε |
|
|
|
500ms. Η έξοδος στη σειριακή γίνεται με την μορφή ενός string</p> |
|
|
|
500ms. Η έξοδος στη σειριακή γίνεται με την μορφή ενός string.</p> |
|
|
|
</div> |
|
|
|
<div class="paragraph"> |
|
|
|
<p><κωδικός θέσης>#<διαθεσιμότητα 0 ή 1></p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="sect3"> |
|
|
@ -563,7 +576,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b |
|
|
|
<div class="paragraph"> |
|
|
|
<p>Ο κόμβος αυτός συνδέεται με ένας "Gateway" κόμβο (βασισμένος σε Raspberry Pi) ο οποίος είναι υπεύθυνος για την |
|
|
|
μετάδοση της πληροφορίας που αφορά την διαθεσιμότητα της θέσης του parking στο διαδίκτυο. Η πληροφορία αυτή |
|
|
|
λαμβάνεται και αποθηκεύεται στον "Gateway" κόμβο.</p> |
|
|
|
λαμβάνεται στον "Gateway" κόμβο οποίος στη συνέχεια την αποκωδικοποιεί και την αποστέλει στον WEB server μέσω του διαδικτύου.</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -594,10 +607,10 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b |
|
|
|
<div class="sect3"> |
|
|
|
<h4 id="_υλοποίηση_και_προγραμματισμός">1.2.2. Υλοποίηση και Προγραμματισμός</h4> |
|
|
|
<div class="paragraph"> |
|
|
|
<p>Η υλοποίηση αποτελείται από την εγκατάσταση του Raspbian OS στο Raspberry και δημιουργία ενός proccess |
|
|
|
σε γλώσσα python το οποίο διαβάζει από την σειριακή θύρα του την πληροφορία που στέλνει το Arduino με |
|
|
|
την μορφή μίας συμβολοσειράς. Ύστερα αποκωδικοποιεί αυτή την πληροφορία η οποία περιγράφει τον κωδικό της θέσης |
|
|
|
και την διαθεσιμότητα της και την αποστέλει μέσω ενός API με την μέθοδο POST σε έναν WEB Server.</p> |
|
|
|
<p>Η υλοποίηση αποτελείται από την εγκατάσταση του Raspbian OS στο Raspberry και τη δημιουργία ενός proccess |
|
|
|
σε γλώσσα python το οποίο διαβάζει από την σειριακή θύρα του την πληροφορία που λαμβάνει από το Arduino με |
|
|
|
την μορφή <κωδικός θέσης>#<διαθεσιμότητα 0 ή 1>. Ύστερα αποκωδικοποιεί αυτή την πληροφορία η οποία περιγράφει τον κωδικό της θέσης |
|
|
|
και την διαθεσιμότητα της και την αποστέλει μέσω ενός REST API με την μέθοδο POST σε έναν WEB Server.</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="sect3"> |
|
|
@ -620,16 +633,16 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b |
|
|
|
υπάρχει μία τουλάχιστων διαθέσιμη θέση στον χώρο στάθμευσης.</p> |
|
|
|
</div> |
|
|
|
<div class="paragraph"> |
|
|
|
<p><strong>Η υλοποίηση χωρίζεται σε δύο βασικά μέρη.</strong></p> |
|
|
|
<p><strong>Η υλοποίηση του αυτόνομου parking χωρίζεται σε δύο βασικά μέρη.</strong></p> |
|
|
|
</div> |
|
|
|
<div class="ulist"> |
|
|
|
<ul> |
|
|
|
<li> |
|
|
|
<p>Το 1ο μέρος αποτελείται από τον μικροελεγκτή για τον έλεγχο των αισθητήρων και των κινητήρων του οχήματος και |
|
|
|
<p>Το 1<sub>ο</sub> μέρος αποτελείται από τον μικροελεγκτή για τον έλεγχο των αισθητήρων και των κινητήρων του οχήματος και |
|
|
|
εκτελώντας τα απαραίτητα βήματα, να μπορέσει να παρκάρει το όχημα.</p> |
|
|
|
</li> |
|
|
|
<li> |
|
|
|
<p>Το 2ο μέρος αποτείται από τον κόμβο ο οποίος θα έχει πρόσβαση στο διαδίκτυο, ο οποίος αφού ελέγξει αν υπάρχει |
|
|
|
<p>Το 2<sub>ο</sub> μέρος αποτείται από τον κόμβο ο οποίος θα έχει πρόσβαση στο διαδίκτυο, όπου αφού ελέγξει αν υπάρχει |
|
|
|
διαθέσιμη θέση και γνωρίζει ποια είναι η πρώτη ελεύθερη θέση, να δώσει εντολή στον μικροελεγκτή να παρκάρει σε αυτή.</p> |
|
|
|
</li> |
|
|
|
</ul> |
|
|
@ -710,7 +723,7 @@ SLOW SUCCESS BUILDS CHARACTER, FAST SUCCESS BUILDS EGO. |
|
|
|
</div> |
|
|
|
<div id="footer"> |
|
|
|
<div id="footer-text"> |
|
|
|
Last updated 2019-12-23 17:48:44 +0200 |
|
|
|
Last updated 2020-01-03 12:17:20 +0200 |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</body> |
|
|
|