Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Τεχνολογικών Εφαρμογών Τμήμα Εφαρμοσμένης Πληροφορικής & Πολυμέσων Πτυχιακή εργασία Τίτλος: Αυτόνομο
Κεφάλαιο 2 - Χρήσιμες πληροφορίες για τα ενσωματωμένα συστήματα2.1 Γενικά για τα ενσωματωμένα συστήματαΕνσωματωμένο (embedded) λέγετε ένα σύστημα βασι
ζήτησε από την intel μια σειρά από διαφορετικά ολοκληρωμένα για τις νέες αριθμομηχανές της. Ηintel αποφάσισε, αντί να κατασκευάσει διαφορετικού τύπου
2.5 Ενσωματωμένα λειτουργικά συστήματαΚαθώς τα ενσωματωμένα συστήματα είναι ουσιαστικά ηλεκτρονικοί υπολογιστές, χρειάζονται καικάποιο λειτουργικό σύσ
διανομής. Αυτές οι διανομές αυτές είναι προσαρμοσμένες γενικά στις ανάγκες των λειτουργικώνσυστημάτων και δεν περιορίζονται σε ένα μόνο σύστημα. Ο χρή
συνεχώς ανοδική πορεία. Η άδεια GNU GPL έχει φτάσει στην έκδοση 3 (Το Linux kernel παρέμεινεστη δεύτερη έκδοση, λόγο διαφωνίας του Torvalds με κάποιες
Κεφάλαιο 3 – Διαδικασία ΕκπόνησηςΠαραλαμβάνοντας την πλακέτα, έλαβα δυστυχώς μόνο κινέζικο εγχειρίδιο. Η έντυπη βιβλιογραφίαστο χώρο είναι περιο
δημιουργήσει προβλήματα, χωρίς να δίνει κάποιο σημαντικό πλεονέκτημα.Το I2C είναι ένα πρωτόκολλο δημιουργημένο από τη Phillips, που συχνά αναφέρετε ως
openembedded, οπότε η εγκατάστασή του ίσως αποδεικνύονταν δύσκολη.Ο Cherokee που αποτελεί και την τελική επιλογή, είναι ένας ελαφρύς web server. Έχει
Camera: 20 pin (2.0 mm) Camera interface (Η κάμερα έρχεται χωριστά)LCD Interface: 41 pin (1.0 mm) connector for FriendlyARM Displays and VGA Board (με
3.3.2 ΑισθητήραςΟ αισθητήριας θερμότητας και υγρασίας που χρησιμοποιήθηκε είναι ο DC-SS500 της SureElectronics . Ενσωματώνει το
Ευχαριστίες Θα ήθελα να ευχαριστήσω για τη συνεισφορά τους στην παρούσα εργασία:Τον bill του station51.net (Bill Sargent) για τα πολύ καλά how to που
Κεφάλαιο - 4 Λειτουργικό και λογισμικόΚατά το ξεκίνημα της εργασίας, έγινε γρήγορα αντιληπτό, ότι η πρόσβαση σε ακριβείςπληροφ
τις χάσω. Τη φιλοξενώ ως συμπιεσμένο αρχείο στη θέση:https://dl.dropbox.com/u/6983593/emeb_kernel.zip προκειμένου να εξυπηρετήσω και ά
κατεβάσουμε την τελευταία έκδοση από το “http://kernel.org”, έτσι όμως δε θα είχαμε όλους τουςοδηγούς και τις παραμετροποιήσεις για να δου
static void mini2440_spi0_cs(struct s3c2410_spi_info *spi, int cs,int pol) { s3c2410_gpio_setpin(S3C2410_GPG(2), pol); } static struct s3c2410_spi
Προκειμένου να κάνουμε οποιαδήποτε αλλαγή στις ρυθμίσεις του supervivi:• Ανοίγουμε ένα τερματικό και εκτελούμε την εντολή (picocom -b 115200 /dev/ttyS
λειτουργικό σύστημα εγκατεστημένο στη μνήμη flush, και επομένως είναι απαραίτητη η χρήση SDκάρτας ή δικτύου. Από την άλλη αυτό δεν είναι κατ' ανά
Σε αυτό το σημείο, αν δεν παρουσιαστούν προβλήματα, μπορούμε να γυρίσουμε το διακόπτη στημνήμη NAND (αφού απενεργοποιήσουμε την πλακέτα)
• Κάνουμε αυτούς τους φακέλους προσβάσιμους μέσω NFS.• Έπειτα περνάμε στην κάρτα τα παρακάτω ορίσματα, με τον τρόπο που αναφέρετε στη μέθοδο τηςκάρτας
TMPDIR = <διαδρομή στο>build (πρέπει να προσέξουμε να μην έχει / στο τέλος)ASSUME_PROVIDED είναι τα προγράμματα που θεωρούμε δεδομένο ότι υπάρχο
4.7 Web ServerΗ παρουσία διακομιστή ιστοσελίδων κρίθηκε απαραίτητη, ώστε να κατασκευαστεί μια διεπαφήελέγχου και παρακολούθησης. Οι διεπαφές
ΠερίληψηΤίτλος: Αυτόνομο σύστημα παρακολούθησης και ελέγχου περιβαλλοντικών συνθηκών βασισμένοστην πλατφόρμα ARM mini2440. Σκοπός της συγκεκριμένης ερ
περίπτωση το πρόγραμμά μας έχει απευθείας πρόσβαση στο υλικό μέσο του πυρήνα.Ο πιο εύκολος τρόπος όμως (όταν πρόκειται τουλάχιστο για καινούρια συστήμ
in root@mini2440:/sys/devices/virtual/gpio/gpio38# cat value 1 Αρχικά ο ακροδέκτης είναι δηλωμένος σαν είσοδος. Στη φωτογραφία LED01 βλέπουμε όλα ταLE
Αν θέλουμε να καταργήσουμε το φάκελο η εντολή που θα πληκτρολογήσουμε είναι “echo 38 >/sys/class/gpio/unexport”. Πρέπει να έχουμε υπόψιν μας ότι με
libsqlite3.so.0.8.6) και κάνουμε τις συντομεύσεις “libsqlite3.so.0” και “libsqlite3.so” να δείχνουν σεαυτό. Στον κώδικα του προγράμματος πρέπει να προ
• Αν το πιο σημαντικό ή το λιγότερο σημαντικό bit θα προηγείται.• Αν η συσκευή θα δουλεύει σε λειτουργία loop• Αν ο σκλάβος ενεργοποιείται στο υψηλό ή
4.12 SPI στην περίπτωση μαςΓια να χειριστούμε τον τον αισθητήρα θερμότητας και υγρασίας DC-SS500 (3.3.2 Αισθητήρας)μέσο SPI, χρειάζεται απλά να στείλο
Κεφάλαιο - 5 ΥλοποίησηΜετά από όσα αναλύονται στο κεφάλαιο 4, έχουμε στα χέρια μας, μια πλακέτα με εγκατεστημένολειτουργικό σύστημα και εφαρμογές. Έχο
5.2 Σχεδιασμός αναλυτικάΕδώ θα εξετάσουμε τη λειτουργία του κάθε προγράμματος αναλυτικά.5.2.1 Βοηθητικά προγράμματαΤο prinht είναι ένα εκτελέσιμο που
heat integerhumidity integerΓια να λειτουργήσει το σύστημα, πρέπει η βάση δεδομένων και ο πίνακας να δημιουργηθούνχειροκίνητα.5.2.2 envstoredΌπως είπα
Η σελίδα metrisis εμφανίζει τις μετρήσεις που έχουν αποθηκευτεί στη βάση δεδομένων. Στο πάνωμέρος υπάρχουν τα εξής: η φόρμα αναζήτησης με κριτήρια και
AbstractTitle: Automated system for the surveillance and control of environmental variables based on ARMmini2440 platform.The objective of this projec
Στη σελίδα Actions μπορούμε να δούμε την κατάσταση των LED και να την επηρεάσουμε. Στοπάνω μέρος υπάρχουν δύο εικόνες που γράφουν “ON” ή “OFF”, ανάλογ
Σε κάποιες σελίδες υπάρχει ένα εικονίδιο βοήθειας. Αν το πατήσουμε εμφανίζει ένα πλαίσιο μεοδηγίες όπως φαίνεται στην εικόνα (Εικόνα 13: διεπαφή βοήθε
5.3 Κώδικας και αλγόριθμοιΣε αυτό το υπό-κεφάλαιο θα αναλύσουμε τα πιο σημαντικά κομμάτια κώδικα πουχρησιμοποιήθηκαν. Όπως έχει
μετρήσεων, τόσο από το envstored, όσο και από το envread. Επίσης η συνάρτηση λήψης ορισμάτωνπου χρησιμοποιείται στο envstored, με μόνη αλλαγή τα ορίσμ
την ανάγνωση των δεδομένων προστίθεται στο tx ο αριθμός 16. Έτσι στέλνονται διαδοχικά 0xA0,0xB0 και 0xC0. Κατά τη δεύτερη εκτέλεση διαβάζουμε την υγρα
το LED 2. Ο τρόπος αυτός, απαιτεί το πρόγραμμα να τρέχει σε Linux, είναι όμως απλός και άμεσος .Βέβαια αν και είναι κατάλληλος για πολύ μικρά αρχεία,
πρόγραμμα spidev_test.c που χρησιμοποιήθηκε σαν βάση για το envstored. Απλώςαλλάχθηκαν τα ορίσματα και οι ενέργειές τους. Τα επιτρεπτ
5.6ΔιεπαφήΚάποια πράγματα όπως η λειτουργία του prinht έχουν ήδη εξηγηθεί, οπότε θα αναφερθούν πολύσυνοπτικά.Σελίδα 40
5.6.1 Home “index.cgi”• τύπωση αρχής σελίδας. Εκτελείται το αρχείο prinht (5.2.1 Βοηθητικά προγράμματα) καιτυπώνεται η έξοδος του. Πριν από αυτό έ
5.6.2 Μετρήσεις metrisis.cgi• τύπωση αρχής σελίδας.• Τύπωση φορμών. Τυπώνονται οι δύο φόρμες που καθορίζουν τα κριτήρια αναζήτησης. Η μίαδεν παίρνει ο
ΠεριεχόμεναΚεφάλαιο 1 - Εισαγωγή...11.1 Εισ
• Τύπωση αποτελεσμάτων. Με τα βήματα που ακολουθούν, γίνεται η ανάλυση των ορισμάτωνκαι η τύπωση των κατάλληλων αποτελεσμάτων.• Αναγνώριση ορισμάτων.
Σελίδα 44
5.6.3 Actions antions.cgiΟι, δεύτερης βαθμίδας, κουκκίδες είναι οι ενέργειες των cgi που καλούνται για να εκτελέσουνκάποιες ενέργειες. Σε αντίθεση με
Σελίδα 46
Κεφάλαιο 6 – Αποτέλεσμα6.1 ΑποτελέσματαΣτα τέλος της εργασίας έχουμε ένα σύστημα μέτρησης θερμοκρασίας και υγρασίας, που κρατάειιστορικό μετρήσεων.
συνδεθούν επίσης για να καλύψουν διαφορετικές ανάγκες ελέγχου.Σημαντική βελτίωση θα αποτελούσε η προσθήκη οθόνης αφής και λειτουργικ
Βιβλιογραφία(1) MicroArm Systems , “MINI2440 User’s Manual ” 2009-03-03 (MINI2440_USER_MANUAL.pdf) (http://www.friendlyarm.net/downloads) (2) (LinuxMC
http://www.sqlite.org/ (15) Installing sqlite headers on ubuntu http://databasically.com/2010/03/05/installing-sqlite-headers-on-ubuntu-sqlite3-h-not-
ΚώδικεςΑνάγνωση ορισμάτων get:Παράγει ζεύγη τύπου πεδίο – τιμή, των δεδομένων που ελήφθησαν με get./** Convert a two-char hex string into the char it
/* so avoid strdup()'ing a NULL pointer here. */ char *qs ; qs= getenv("QUERY_STRING") ; cgiinput= strdup(qs ? qs : "")
5.3.2 Επικοινωνία με τον αισθητήρα...365.3.3 Προγραμματισμός CGI.
if (!(paircount%256)) pairlist= (char **) realloc(pairlist,(paircount+256)*sizeof(char **)) ; nvpair= strtok(NULL, "&;") ; } pairlist[pa
/* If we got a good PID, then we can exit the parent process. */ if (pid > 0) { exit(EXIT_SUCCESS); } /* At this point we are executing as the chil
deamonic=0; break; case 'h': puts("envstored help!\n" " Kalampoukas Xristos A.M.1024\n" " -s --scrn print output
tx[0]=tx[0]+16; }while(c<3); /*Tupwsi hmerominias kai metrisis an den trexei sto paraskinio*/ if (deamonic == 0){ time(&now); printf("%s
system("echo 1 > /sys/class/gpio/gpio38/value"); } else if (strcmp(act, "LED2_OFF") == 0){ system("echo 1 > /sys/class/
return ret; }Φόρτωση μεταβλητών από conf.txt:/*Load conf vatiables*/ file = fopen (filename, "r"); if ( file != NULL ){ while ( fgets ( line
static void store (int ther, int hyd) { sqlite3 *conn; //database connection pionter int error = 0; char *zsql; //Querry char *errmsg; //sqlite_ex
strncat(strtmp2,tdate,4); strtmp2[4] = '\0'; sprintf(dfrom,"%s-%s",strtmp2,strtmp1); } /*Hfrom*/ if (strcmp(hfrom, "null&quo
strcpy(hfrom,cgivars[i+1]); krit = 1; } } if (strcmp(cgivars[i], "hto") == 0){ if (strcmp(cgivars[i+1], "hh:mm:ss") != 0){ strcpy(
} else{ sprintf(tempstring," and time <= datetime('%s')",to); strcat(sqlqtmp,tempstring); } } if (maxt != -256){ if(strcmp(sqlq
Πίνακας πινάκωνΠίνακας 1: SPI mods 2bit...27Πίνα
if(ola==1){ /*Proetoimasia query ola*/ sprintf(sqlq,"select time, heat, humidity from envstore order by time desc limit %d,20",sel*20); erro
} else{ /*Proetoimasia query 10 teleutaia*/ error = sqlite3_prepare_v2(conn,"select time, heat, humidity from envstore order by rowid desc limit
strncpy(theat,sqlite3_column_text(res, 1),3); strncpy(thum,sqlite3_column_text(res, 2),3); printf("<tr><td>%s </td><td> %
ΠαρουσίασηΣελίδα 66
Σελίδα 67
Περίληψη (εκτενής)Σελίδα 68
Αυτόνομο σύστημα παρακολούθησης και ελέγχου περιβαλλοντικών συνθηκών βασισμένο στην πλατφόρμα ARM mini2440 Καλαμπούκας Χρήστος (Author)Τμήμα Εφαρμοσμέ
III. ΛΟΓΙΣΜΙΚΟA. Ελεύθερο λογισμικόΌπως προαναφέρθηκε, για τους σκοπούς της εργασίας έγινεχρίση εξολοκλήρου ελεύθερου λογισμικού, τόσο επάνω στην πλακ
A. ΠαρασκήνιοΤο πρόγραμμα που τρέχει στο παρασκήνιο ονομάζεται envstored. Κατά την εκτέλεση του από το τερματικό μπορούμε, με τα κατάλληλα ορίσματα, ε
και κάποια βοηθητικά αρχεία που καλούνται από το βασικά για να εκτελέσουν κάποιες λειτουργίες. Το αρχείο prinht εκτελείται στην αρχή κάθε βασικού αρχε
Κεφάλαιο 1 - Εισαγωγή1.1 ΕισαγωγήΗ παρούσα πτυχιακή ασχολείται με τον προγραμματισμό ενσωματωμένων συστημάτων, σεπεριβάλλον Linux, τ
Η επιλογή λειτουργίας καθορίζετε με τις λειτουργίες SPI (SPI modes). Συνήθως λέγοντας SPI modes αναφερόμαστε στους τέσσερις συνδυασμούς που καθορίζουν
θέρμανση και εξαερισμός για τη βελτίωση των συνθηκών του χώρου. Τα αποτελέσματα τωνμετρήσεων θα γίνονται προσβάσιμα μέ
Kommentare zu diesen Handbüchern