This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Ανάλυση και Σύνθεση Ανάλυση και Σύνθεση Τηλεπικοινωνιακών Διατάξεων Τηλεπικοινωνιακών Διατάξεων
Κόμβοι δικτύου gateway κόμβος εφαρμογή λήψης και παρουσίασης σε ένα host PC.
• O gateway κόμβος δέχεται όλες τις μετρήσεις από όλους τους υπόλοιπους κόμβους. Είναι ένα development kit του 8051 που συνδέεται μέσω του serial port (UART) στο PC και μεταφέρει έτσι τις μετρήσεις στο Sensor Network Host Application(εφαρμογή σε c++) για παρουσίαση.
Μη πρακτική λύση η μόνιμη παρουσία PC στο χωράφι για να πάρουμε τις μετρήσεις. Η απομακρυσμένη αποστολή των μετρήσεων στο σημείο που θέλουμε εμείς παραμένει πρόβλημα
αφού σταθερή πρόσβαση στο Ιnternet (π.χ. adsl) είναι δύσκολο να υπάρξει στον αγρό.
Υπάρχει κάτι που να λύνει ταυτόχρονα και τα δύο προβλήματα;
To δίκτυο κινητής τηλεφωνίας (GSM)
4/15
Σύνδεση του gateway με τον με το GSM modem H επιλογή του serial port ως διασύνδεση μεταξύ
modem και microcontroller (gateway κόμβος) ήταν ένα από τα βασικά κριτήρια αγοράς.
Γιατί serial port; Γιατί είναι πιο απλό στο προγραμματισμό του σε σχέση με το USB και το USB στη δική μας περίπτωση δεν θα προσέφερε κάτι παραπάνω. Εν τέλει το ήδη απλό Serial Port αποδείχτηκε πολύπλοκο στην ανάπτυξη.
Προβλήματα: Διαφορετικό βύσμα σειριακής σε κάθε συσκευή. Τα
καλώδια σύνδεσης του modem με τον gateway αλλά και με το PC σχεδιάστηκαν εξ αρχής και κολλήθηκαν από εμάς.
5/15
Προγραμματισμός GSM modem από τον gateway Ο gateway(microcontroller) στέλνει εντολές(AT
commands) στο modem μέσω του σειριακού καλωδίου.
AT commands: μικρές εντολές που χρησιμοποιούνται για ενέργειες όπως αποστολή SMS, δημιουργία κλήσης κλπ. (πχ AT+CPIN=xxxx για εισαγωγή κωδικού PIN).
Ενδεικτικό παράδειγμα κώδικα gateway:#define connectToTCPServerWIP "AT+WIPCREATE=2,1,\"147.27.38.124\",\"51325\"\n" sendCommandToModem(connectToTCPServerWIP);do{//this while loop will detect the answer from the modem
if(((modemReceiveBuffer[19]=='2')&&(modemReceiveBuffer[20]==',')&&(modemReceiveBuffer[21]=='1'))) {… break;}}while(1);//waiting ANSWER do while
6/15
Προγραμματισμός GSM modem από τον gateway Προβλήματα :
Η ζωή του μηχανικού με τα manuals. Διαφορετική εταιρία σχεδίασε το modem και
διαφορετική το πουλάει πλέον, με αποτέλεσμα όλα τα manuals και το documentation να είναι διάσπαρτα στο internet.
Τον έλεγχο της σωστής ροής των εντολών ο gateway τον υλοποιεί με χειρισμό του κατάλληλου buffer για την επικοινωνία μέσω σειριακής. Εκτελώντας σε αυτόν “παράλληλα” εισαγωγή, αναζήτηση και διαγραφή, δυσκολεύει πολύ ο συγχρονισμός αλλά απαιτείται και αρκετή μνήμη.
7/15
Αποστολή δεδομένων μέσω του GSM Modem (SMS vs GPRS) SMS: Τις μετρήσεις του δικτύου αισθητήρων τις
αποστέλλουμε περιλαμβάνοντας τες σε απλά SMS. Ο δέκτης της πληροφορίας είτε θα έχει
αδικαιολόγητη πολυπλοκότητα (π.χ. κινητό συνδεδεμένο μέσω USB σε υπολογιστή να προωθεί για επεξεργασία τα SMS που δέχεται) είτε αυξάνει αδικαιολόγητα το κόστος (i. virtual numbers, ii. αγορά για δέκτη δεύτερου GSM Modem)
Tα SMS έχουν σχετικά υψηλό αριθμό απωλειών και δεν υπάρχει τρόπος για ανάκτηση.
Κόστος ανά byte πολύ υψηλότερο σε σχέση με το GPRS. Μόλις 160 bytes/SMS. Σ’ ένα κλιμακωμένο δίκτυο σε συνδυασμό με τις απώλειες
καθιστούν το SMS δύσκολο στο χειρισμό και ασύμφορο
8/15
Αποστολή δεδομένων μέσω του GSM Modem (SMS vs GPRS) GPRS: Προσθέτει κάποια πολυπλοκότητα στον
αποστολέα αλλά εξαλείφει όλα τα άλλα μειονεκτήματα του SMS. από τα GSM Modems υποστηρίζεται TCP/IP over
GPRS που είναι με διαφορά η πιο Generic λύση που θα μπορούσαμε να έχουμε με δυνατότητες κλιμάκωσης και με τα πλεονεκτήματα του TCP.
Τελική επιλογή: GPRS καθώς είναι πολύ πιο ευέλικτο.
Προβλήματα : Η ζωή του μηχανικού με τα manuals. Η εταιρία που σχεδίασε το GSM modem είχε υλοποιήσει δυο εντελώς
διαφορετικά APIs για την υποστήριξη TCP/IP over GPRS. Για να βρεθεί ποια έκδοση είχε το modem έπρεπε να γνωρίζουμε το firmware του. Όμως λόγω του διάσπαρτου documentation ούτε αυτό ήταν εύκολο.
9/15
FSM του gateway κόμβου
Initialization Gateway
(MCU) Initialization GSM
Initialization GPRS
Initialization TCP/IP
Wait data from sensor
networkCheck if GPRS is OK
Reconnect GPRS
TCP/IP connect
Send data over GPRS
with TCP/IP
Close connection
Yes
No
10/15
Λήψη, επεξεργασία και αποθήκευση της πληροφορίας στον Web Server Web Server: Ένα PC που είναι συνδεδεμένο στο
διαδίκτυο και δέχεται δεδομένα πάνω από TCP/IP socket.
To GSM Μodem φροντίζει ώστε να ενθυλακώνονται τα TCP/IP πακέτα στο GPRS και τελικά να μεταφέρονται στο PC μας.
O Web Server τρέχει σε ένα Linux PC. Είναι γραμμένος σε C για λόγους ταχύτητας.
Προβλήματα : Συμβατότητα χαρακτήρων από τον gateway(microcontroller) στον server.
11/15
Λήψη, επεξεργασία και αποθήκευση της πληροφορίας στον Web Server Ο Web Server θα γράφει τα δεδομένα σε μία
βάση δεδομένων (Κομμάτι της λειτουργικότητας έχει υλοποιηθεί αλλά δεν έχει ολοκληρωθεί ακόμη)
Επιλέχθηκε το σύστημα βάσεων δεδομένων mySQL: Free, Open Source και σε συνδυασμό με υψηλές
επιδόσεις
Η χρήση βάσης δεδομένων επιτρέπει την αποθήκευση μετρήσεων από ένα κλιμακωμένο δίκτυο αισθητήρων
12/15
Άμεσα επόμενα βήματα
Τελειοποίηση της υλοποίησης του παραπάνω συστήματος
Σύνδεση με τον περσινό κώδικα του gateway
Αποκωδικοποίηση των δεδομένων και αποθήκευση τους στην βάση δεδομένων
Ανάπτυξη Web περιβάλλοντος για την παρουσίαση της πληροφορίας. Έτσι θα υπάρχει πρόσβαση στις μετρήσεις από οποιοδήποτε laptop ή κινητό στον κόσμο, το οποίο έχει πρόσβαση στον internet
13/15
Μελλοντικά βήματα
Αξιοποίηση του embedded περιβάλλοντος που προσφέρει το modem. Με χρήση του openAT προγραμματιστικού περιβάλλοντος που προσφέρεται (παρόμοιο με το eclipse). Αυτό θα βοηθήσει σε προβλήματα μνήμης που αντιμετωπίζουμε με τον microcontroller.
Αυτόματη ειδοποίηση, με email ή SMS εάν κάποιος κόμβος διψάσει.
Ολοκληρωμένο πληροφοριακό σύστημα διαχείρισης μέσω Web και ενσωμάτωση χάρτη όπου θα φαίνονται οι κόμβοι και οι μετρήσεις