Στόχος: Η άσκηση έχει στόχο την εισαγωγή εννοιών και μηχανισμών που υποστηρίζουν την επικοινωνία του cyber με το φυσικό σύστημα.
Χρησιμοποιεί για processing, storage και communication infrastructure ένα Raspberry Pi (RPi).
To RPi υποστηρίζει την επικοινωνία με τον φυσικό κόσμο με ένα σύνολο από γενικού σκοπού εισόδους/εξόδους GPIOs (general-purpose input/output). A 40-pin GPIO header is found on all current Raspberry Pi boards.
Για την επικοινωνία με τον φυσικό κόσμο από το RPi χρησιμοποιώντας Java έχετε δύο επιλογές
Α) Pi4J Project, και
Προσθέστε αισθητήρες στο Raspberry σας σε μια προσπάθεια να ενσωματώσετε επικοινωνία με τον φυσικό κόσμο στο Blood Pressure Monitoring σύστημα σας.
Εκτελέστε πρώτα το παράδειγμα χρήσης και στη συνέχεια γράψτε μια εφαρμογή που θα διαβάζει έναν αισθητήρα και θα χρησιμοποιεί την πληροφορία με κάποιο τρόπο, π.χ. να ανάβει ένα led ή να δείχνει στον χρήστη την θερμοκρασία αν υπερβαίνει κάποιο όριο.
Μπορείτε να δουλέψετε με ένα PCB με Temperature sensor (TempSensorPCB) το οποίο κατασκευάστηκε για την άσκηση αυτή από τον φοιτητή του Τμήματος ΗΜ&ΤΥ Φοράδη Θοδωρή.
Για την σύνδεση του RPi με το PCB χρησιμοποιήστε την παρακάτω αντιστοίχιση
RPi TempSensor PCBP1-19 MOSIP1-21 MISOP1-23 CLKP1-24 CSΓια να κατανοήσετε την σημασία της παραπάνω συνδεσμολογίας θα πρέπει να ανατρέξετε στο data sheet του MCP3002. http://ww1.microchip.com/downloads/en/DeviceDoc/21294E.pdf
Για την πρόσβαση στο Temperature sensor σε πρώτη φάση μπορείτε να χρησιμοποιήσετε την κλάση TempSensor, που αναπτύχθηκε από τον φοιτητή Σωκράτη Ζούρα.
Η πρόσβαση στα led και του διακόπτες είναι πιο απλή. Αν θέλετε να αποφύγετε την άμεση χρήση του pi4j project μπορείτε να αξιοποιήσετε την κλάση GPIO που αναπτύχθηκε από τον φοιτητή Σωκράτη Ζούρα. Σας δίνεται με την μορφή αρχείου jar (gpio.jar).
Δημιουργήστε μια Java εφαρμογή που θα έχει πρόσβαση στο temperature Sensor PCB αξιοποιώντας τους sensors and actuators.
Επεκτείνατε την εφαρμογή σας ώστε να σας επιτρέψει να έχετε απομακρυσμένη πρόσβαση στο temperature Sensor PCB αξιοποιώντας το internet (TCP/IP).
Στόχος: Integrate TempSensorPCB with the Blood Pressure Monitoring Assignment.
Αξιοποιήστε τα παραπάνω Activities για να επεκτείνετε το BPMS σας ενσωματώνοντας τον TemperaturePCB στον BPMSimulator.
Δώστε την πρόταση σας για αντικατάσταση της γραφικής διεπαφής του BPMSimulator από το TemperaturePCB. Για παράδειγμα μπορείτε να χρησιμοποιήστε τα BTN1 και ΒΤΝ2 για να ξεκινήσετε την διαδικασία της μέτρησης για τους χρήστες 1 και 2 υποθέτοντας πως το BPM υποστηρίζει 2 χρήστες (user1 and user2). Μπορείτε να αναβοσβήνετε το LED1 κατά την διάρκεια της λήψης της μέτρησης και να χρησιμοποιήσετε τα LED2-LED4 για να δείξετε ότι έχετε μέτρηση εκτός φυσιολογικών ορίων για systolicBP, diastolicBP και heartRate. Με τον τρόπο αυτό έχετε έναν BPM Simulator πιο κοντά στο πραγματικό BPM device. Μπορείτε να περιλάβετε στην μέτρηση σας και την θερμοκρασία αλλά αυτό απαιτεί αλλαγή των πεδίων της βάσης σας.
Εναλλακτικά, αντί για τον tomcat και με βάση άλλη φιλοσοφία (δες ένθετο παρακάτω), μπορείτε να χρησιμοποιήσετε τον jetty o οποίος είναι ένας http server και servlet container που μπορεί να ενσωματωθεί στην εφαρμογή σας.
Action 1
Τρέξτε τον jetty ως standalone server.
Action 2
Αναπτύξτε μια Java εφαρμογή που θα δέχεται ένα GET request από έναν browser και θα απαντά «Hello world». Αξιοποιήστε τον Jetty.
Προσθέστε τις υπηρεσίες daytime, echo και reverse και επιδείξτε την χρήση τους.
Στην pdf μορφή της άσκησης Blood Pressure Monitoring σας δίνονται οδηγίες για την εκτέλεση των ασκήσεων. Ανατρέξτε σε αυτές μόνο μετά από την δική σας προσπάθεια επίλυσης.
Jetty - Servlet Engine and Http Server
Eclipse Jetty provides a Web server and javax.servlet container, plus support for HTTP/2, WebSocket, OSGi, JMX, JNDI, JAAS and many other integrations. These components are open source and available for commercial use and distribution. Source: https://www.eclipse.org/jetty/Επεκτείνατε την εφαρμογή σας της άσκησης jetty με στόχο να σας επιτρέπει να έχετε πρόσβαση από έναν browser στο Temperature Sensor PCB Emulator.
Ενναλακτικά μπορείτε να επεκτείνατε την εφαρμογή της άσκησης TemperaturePCB-2 ώστε να σας επιτρέψει να έχετε απομακρυσμένη πρόσβαση στο temperature PCB Emulator αξιοποιώντας το www και πιο συγκεκριμένα τον Jetty server. Μια επιλογή είναι να χρησιμοποιήσετε τον Jetty σε συνδυασμό με τις ασκήσεις Jetty-1, Jetty-2, Jetty-3 της 8ης Δράσης
Αξιοποιήστε τις υπηρεσίες που προσφέρει ο server σας για να αναπτύξετε μια εφαρμογή που θα αξιοποιεί τις υπηρεσίες του temperature Sensor PCB.
Http based TemperatureSensorPCB using Jetty and the physical Temperature Sensor PCB
Αναβαθμίστε την προηγούμενη άσκηση αντικαθιστώντας τον emulator με το φυσικό Temperature Sensor PCB.
Http based TemperatureSensorPCB application
Περιγράψτε μια εφαρμογή που θα αξιοποιεί τις υπηρεσίες του φυσικού αντικειμένου. Αναπτύξτε την εφαρμογή.