Η ομάδα μας ξεκίνησε να δουλεύει πάνω σε αυτή την ιδέα από τον Οκτώβριο του 2019. Όλοι γνωριζόμαστε μεταξύ μας από την συμμετοχή στον Όμιλο Μικροί Χάκερ του Πειραματικού Δημοτικού Σχολείου Φλώρινας τα τελευταία χρόνια. Το έναυσμα για να ξεκινήσουμε αυτό το έργο ήταν η συμμετοχή μας στον Πανελλήνιο Διαγωνισμό Ρομποτικής Ανοιχτών Τεχνολογιών καθώς και στον διαγωνισμό της Vodafone Generation Next.

Έρευνα θέματος

Το γενικό θέμα που μας απασχόλησε ήταν η κλιματική αλλαγή και οι συνέπειες της στην καθημερινή ζωή των ανθρώπων. Μέσα σε αυτό το πλαίσιο αναζητήσαμε τις δικές μας ανησυχίες και προτάσεις.

Κλιματική αλλαγή

Η κλιματική αλλαγή μας απασχόλησε από τις πρώτες μας συναντήσεις. Εδώ μπορείτε να δείτε τον εννοιολογικό χάρτη που κατασκευάσαμε και τις συζητήσεις μας. Η ανάγκη για δράσεις που θα μειώσουν τις εκπομπές αερίων του θερμοκηπίου και θα αναστρέψουν την πορεία για αύξηση της παγκόσμιας θερμοκρασίας είναι μεγάλη.

Η ορεινή περιοχή της Φλώρινας, όπου κατοικούμε, αποτελούσε πάντα το επίκεντρο της βιομηχανίας Α.Η.Σ. (Ατμοηλεκτρικών Σταθμών) και εξόρυξης λιγνίτη στην Ελλάδα. Επιπλέον, ο τόπος μας χαρακτηρίζεται από ψυχρούς και διαρκείς χειμώνες, που ευθύνονται για την ανάγκη συνεχούς θέρμανσης 8 μήνες το χρόνο (από Σεπτέμβριο έως Απρίλιο). Συνεπώς, η ατμόσφαιρα επιβαρύνεται αισθητά από αιωρούμενα μικροσωματίδια κατά τη διάρκεια της περιόδου αυτής, με πρωτεργάτες τα οικιακά τζάκια και την καύση ξύλου και pellet, καθώς και τους Α.Η.Σ. που τροφοδοτούνται με ορυκτά καύσιμα. Ως αποτέλεσμα της σημαντικής αυτής ρύπανσης, παρατηρείται συχνά ένα “πέπλο” αιθαλομίχλης να καλύπτει την κοιλάδα της Φλώρινας, ενώ ασθένειες όπως οξύς βήχας και άσθμα έχουν ενταχθεί στην καθημερινότητα των πολιτών και υποβαθμίζουν την ποιότητα ζωής τους. Θεωρούμε ιδιαίτερα σημαντική την ευαισθητοποίηση και την ενεργή συμμετοχή όλων των πολιτών σε θέματα που αφορούν την μόλυνση του περιβάλλοντος. Σκοπός μας είναι να δημιουργήσουμε μια εύχρηστη συσκευή η οποία θα δίνει τη δυνατότητα σε όλους να γίνουν “μικροί επιστήμονες” και να συνεισφέρουν γνώση και δεδομένα στην παγκόσμια κοινότητα με ευχάριστο και πρωτότυπο τρόπο.

Χρησιμοποιήσαμε το padlet για να συγκεντρώσουμε περισσότερες ιδέες και πράγματα τα οποία μας έκαναν εντύπωση.

Δημιουργήθηκε με το Padlet

Συμμετοχή και ευαισθητοποίηση

Θεωρούμε ιδιαίτερα σημαντική την ευαισθητοποίηση των ανθρώπων πάνω στο ζήτημα της κλιματικής αλλαγής και για αυτό θέλαμε να σχεδιάσουμε και να κατασκευάσουμε μια λύση που θα προάγει την συμμετοχή όσο το δυνατόν περισσότερων ανθρώπων.

Θέλουμε να δώσουμε την δυνατότητα σε όλους να εμπλακούν ενεργά με το ζήτημα της κλιματικής αλλαγής, να μάθουν περισσότερα και να γίνουν μέρος της λύσης.

Έτσι καταλήξαμε στην ιδέα να φτιάξουμε μια συσκευή που θα είναι απλή στην χρήση και θα μπορεί να συλλέγει δεδομένα περιβαλλοντικών συνθηκών τα οποία μέσω του κινητού τηλεφώνου να δημοσιεύονται σε έναν χάρτη – κοινωνικό δίκτυο.

Ξεκινήσαμε λοιπόν αναζητήσεις και συζητήσεις για το πως θα μπορούσε να είναι αυτή η συσκευή, πως θα γίνει εύχρηστη και διασκεδαστική, ποιες τιμές θα πρέπει να διαβάζει, ποια ηλεκτρονικά στοιχεία θα πρέπει να διαθέτει.

Δημιουργήθηκε με το Padlet

Περιβαλλοντικές συνθήκες

Για να αποφασίσουμε τις τιμές που θα παίρνει η συσκευή μας ζητήσαμε την βοήθεια του κ. Σαχινίδη Βασίλη, που είναι μηχανικός στον Δήμο Φλώρινας και το μεταπτυχιακό του είναι πάνω στον περιβαλλοντικό σχεδιασμό πόλεων. Οι προτάσεις του αφορούσαν διάφορες περιβαλλοντικές μεταβλητές που επηρεάζουν την ποιότητα ζωής σε μια πόλη όπως:

  • Η θερμοκρασία είναι βασική για τα επίπεδα άνεσης που νιώθουμε, ενώ όταν είναι πολύ μεγάλη ή αντίστοιχα πολύ μικρή μπορεί να αποτελεί κίνδυνο ακόμη και για την ζωή των ανθρώπων.
  • Η υγρασία σε συνδυασμό με την θερμοκρασία είναι ιδιαίτερα σημαντική. Τα υψηλά επίπεδα υγρασίας κάνουν την αίσθηση της ζέστης αλλά και του κρύου πολύ πιο έντονη στους ανθρώπους.
  • Τα μικροσωματίδια είναι ιδιαίτερα επικίνδυνα για την υγεία των ανθρώπων όταν βρίσκονται στην ατμόσφαιρα σε μεγάλες συγκεντρώσεις. Δημιουργούνται από την καύση ξύλου, pellet και άλλων καυσίμων, είτε από εργοστάσια (κυρίως ηλεκτρικής ενέργειας λιγνίτη) είτε από σπίτια.
  • Ο θόρυβος μέσα σε μια πόλη είναι πολύ σημαντικός για την ποιότητα ζωής. Αυτοκίνητα και κορναρίσματα, νυχτερινά μαγαζιά, οικοδομικές εργασίες και άλλες δραστηριότητες δημιουργούν θόρυβο ο οποίος μειώνει το επίπεδο άνεσης των ανθρώπων.
  • Η ταχύτητα του ανέμου επηρεάζει την αίσθηση του κρύου και της ζέστης. Το καλοκαίρι όταν έχουμε υψηλές θερμοκρασίες η ύπαρξη αέρα διευκολύνει την κατάσταση, ενώ αντίθετα τον χειμώνα όταν έχουμε χαμηλές θερμοκρασίες ο έντονος αέρας επιδεινώνει τα πράγματα.
  • Τα φώτα από τα σπίτια, τα καταστήματα, τους δρόμους κ.ο.κ τη νύχτα στις πόλεις δημιουργούν το φαινόμενο της φωτορύπανσης.
  • Το μονοξείδιο του άνθρακα είναι ένα τοξικό αέριο, αλλά επειδή είναι άχρωμο, άοσμο, άγευστο και αρχικά μη-ερεθιστικό, είναι πολύ δύσκολα ανιχνεύσιμο. Αν υπάρχει πολύωρη έκθεση του ανθρώπου έστω και σε μικρές συγκεντρώσεις μονοξειδίου του άνθρακα μπορεί να προκαλέσει δηλητηρίαση.
  • Το διοξείδιο του αζώτου, είναι ένα κοκκινωπό-καφετί τοξικό αέριο, έχει μια χαρακτηριστική οξεία, δηκτική οσμή και είναι ένας σημαντικός αέριος ρύπος
  • Το διοξείδιο του θείου απελευθερώνεται στην ατμόσφαιρα κατά τις εκρήξεις των ηφαιστείων και σε μικρότερες ποσότητες από διάφορες βιομηχανίες και την καύση ορυκτών καυσίμων.
  • Το όζον είναι παρόν σε χαμηλές συγκεντρώσεις σε όλην την ατμόσφαιρα της Γης. Στην τροπόσφαιρα (το χαμηλότερο μέρος της ατμόσφαιρας που κατοικούν άνθρωποι) το όζον θεωρείται ατμοσφαιρικός ρύπος και έχει οριστεί σειρά τιμών που αφορούν τη μετρούμενη συγκέντρωσή του.

Σχεδιασμός και υλοποίηση

Γενικό σχηματικό λειτουργίας του συστήματος μας

Σκοπός μας από την αρχή ήταν να κατασκευάσουμε μια συσκευή η οποία θα επιτρέπει σε όλους του πολίτες να λαμβάνουν εύκολα τιμές περιβαλλοντικών συνθηκών καθώς κάνουν βόλτα στην πόλη τους και να τις αποθηκεύουν σε έναν κεντρικό χάρτη που θα βρίσκεται διαθέσιμος στο διαδίκτυο. Για αυτό και καταλήξαμε στον συνδυασμό

  • μιας συσκευής που θα μπορεί να μπαίνει εύκολα πάνω στο ποδήλατο, θα λαμβάνει τις περιβαλλοντικές μετρήσεις που θέλουμε καθώς κάνουμε την βόλτα μας και θα συνεργάζεται
  • με το κινητό μας τηλέφωνο για να στέλνει τις τιμές αυτές μαζί με το γεωγραφικό μας στίγμα σε
  • έναn κοινωνικό δίκτυο – χάρτη που θα φτιάξουμε.

Συσκευή μετρήσεων

Το βασικότερο κομμάτι του συστήματος μας αποτελείται από την συσκευή μετρήσεων η οποία μπορεί να λαμβάνει περιβαλλοντικές τιμές με την χρήση αισθητήρων.

Κεντρική μονάδα

Στον αρχικό μας σχεδιασμό είχαμε προβλέψει να χρησιμοποιήσουμε ως κεντρική μονάδα για την συσκευή μας το ESP32, το οποίο ενσωματώνει δυνατότητες Bluetooth και wifi, ενώ έχει πολύ καλή απόδοση και χαμηλή κατανάλωση ενέργειας. Ενώ οι πρώτες δοκιμές επικοινωνίας του ESP32 με το κινητό τηλέφωνο ήταν πετυχημένες, στην πορεία αντιμετωπίσαμε αρκετά προβλήματα με την λήψη τιμών από τους αισθητήρες. Μέχρι να αντιμετωπίσουμε αυτά τα προβλήματα και να αποκτήσουμε περισσότερη γνώση για τον προγραμματισμό του ESP32, αποφασίσαμε να χρησιμοποιήσουμε το Arduino UNO το οποίο γνωρίζουμε πολύ καλά, καθώς το χρησιμοποιούμε τα τελευταία 3-4 χρόνια.

Μετά την επιτυχημένη λειτουργία με το Arduino UNO αποφασίσαμε να το αντικαταστήσουμε με το Arduino Nano για να μειώσουμε τον όγκο των ηλεκτρονικών ώστε να μειώσουμε και το μέγεθος της συσκευής που μπαίνει πάνω στο ποδήλατο.

Αισθητήρες

Η συσκευή μας προς το παρόν μπορεί να μετρήσει την θερμοκρασία, την υγρασία, την βαρομετρική πίεση και το υψόμετρο καθώς και τα μικροσωματίδια που αιωρούνται στην ατμόσφαιρα. Παράλληλα αυτό το διάστημα δοκιμάζουμε αισθητήρες και τεχνικές για να καταφέρουμε να μετρήσουμε αξιόπιστα τον θόρυβο του περιβάλλοντος καθώς και το μονοξείδιο του άνθρακα.

Σύμφωνα με την έρευνα μας είχαμε εντοπίσει αρκετούς περιβαλλοντικούς παράγοντες που επηρεάζουν την καθημερινότητα των ανθρώπων. Ξεκινήσαμε την αναζήτηση αισθητήρων που μπορούν να μας βοηθήσουν σε αυτές τις μετρήσεις.

  • Θερμοκρασία, υγρασία, βαρομετρική πίεση και υψόμετρο: Στην αρχική υλοποίηση χρησιμοποιήσαμε τον αισθητήρα DHT11 Digital Temperature and Humidity Sensor, ο οποίος είναι μια οικονομική και εύκολη λύση. Επιστρέφει τιμές θερμοκρασίας σε βαθμούς Κελσίου και υγρασίας σε ποσοστό %. Στην τελική υλοποίηση αποφασίσαμε να αλλάξουμε και να χρησιμοποιήσουμε τον αισθητήρα BME280 Environmental Sensor της WaveShare, ο οποίος μας δίνει πιο αξιόπιστες μετρήσεις, ενώ μπορεί να μετρήσει και την βαρομετρική πίεση και κατά συνέπεια να υπολογίσει και το υψόμετρο στο οποίο βρισκόμαστε. Ο συγκεκριμένος αισθητήρας μπορεί να συνδεθεί στο Arduino είτε μέσω I2C είτε μέσω SPI. Εμείς χρησιμοποιήσαμε την σύνδεση μέσω I2C η οποία απαιτεί δυο pin (A4 και Α5) από το Arduino Nano.
Αιαθητήρας bme280Arduino Nano
SDA (Δεδομένα)A4
SCL (Ρολόι)A5
VCC (Τροφοδοσία)5V
GND (Γείωση)GND
Η σύνδεση του αισθητήρα bme280 με το Arduino Nano μέσω I2C

Για να δοκιμάσουμε την λειτουργία του αισθητήρα, χρησιμοποιήσαμε το δοκιμαστικό πρόγραμμα που υπάρχει στην σελίδα της Waveshare το οποίο το τροποποιήσαμε και το έχουμε στο αποθετήριο μας στο github.

  • Μικροσωματίδια: Για την μέτρηση των μικροσωματιδίων που αιωρούνται στην ατμόσφαιρα χρησιμοποιήσαμε τον αισθητήρα Waveshare Sharp GP2Y1010AU0F Dust Sensor. Ο συγκεκριμένος επιστρέφει συγκεντρώσεις μικροσωματιδιών σε mg ανά κυβικό μέτρο χρησιμοποιώντας το δοκιμαστικό πρόγραμμα που υπάρχει στην σελίδα wiki. Για την σύνδεση με το Arduino χρειάζεται ένα αναλογικό pin για τα δεδομένα της μέτρησης, καθώς και ένα ψηφιακό pin το οποίο συνδέεται με το εσωτερικό led που διαθέτει ο αισθητήρας.
Αισθητήρας Sharp GP2Y1010AU0FArduino Nano
Aout (Δεδομένα)A2
Iled (Φως led)D10
VCC (Τροφοδοσία)5V
GND (Γείωση)GND
Σύνδεση του αισθητήρα μικροσωματιδίων με το Arduino Nano

Ο συγκεκριμένος αισθητήρας διαθέτει μια οπή από την οποία περνάει ο αέρας και τα μικροσωματίδια τα οποία μπορεί να υπάρχουν. Εσωτερικά διαθέτει ένα φως led και έναν αισθητήρα που μπορεί να μετρήσει την ποσότητα του φωτός καταφέρνει να περάσει χωρίς να εμποδιστεί από τα μικροσωματίδια. Με αυτόν τον τρόπο υπολογίζει την συγκέντρωση τους στον αέρα. Για να τον δοκιμάσουμε, χρησιμοποιήσαμε το δοκιμαστικό πρόγραμμα που υπάρχει στην σελίδα της Waveshare το οποίο με τροποποιήσεις το έχουμε αποθηκευμένο στο αποθετήριο μας στο Github.

  • Θόρυβος: Στην αρχική υλοποίηση χρησιμοποιήσαμε έναν απλό sound sensor για arduino. Όσες φορές δοκιμάζαμε την απόδοση του δεν μπορούσαμε να πάρουμε αξιόπιστες τιμές θορύβου περιβάλλοντος. Για αυτό το λόγο αποφασίσαμε να δοκιμάσουμε τον αισθητήρα MAX4466 της Ardafruit. Ακόμα δεν έχουμε καταφέρει να μετατρέψουμε σε Decibel τις τιμές που παίρνουμε από τον αισθητήρα και η λειτουργία του είναι προς το παρόν πειραματική.
Αισθητήρας ήχου MAX4466Arduino Nano
Out (Δεδομένα)A3
VCC (Τροφοδοσία)5V
GND (Γείωση)GND
Σύνδεση αισθητήρα ήχου
  • Μονοξείδιο του άνθρακα: Στην αρχική υλοποίηση χρησιμοποιήσαμε τον αισθητήρα MQ-7 Carbon Monoxide CO Gas Sensor For Arduino. Ο συγκεκριμένος αισθητήρας μπορεί να ανιχνεύσει μεγάλες συγκεντρώσεις του συγκεκριμένου αερίου και είναι κατάλληλος για συστήματα ασφαλείας σε μέρη όπου μπορεί να υπάρχει διαρροή του αερίου. Στις δικές μας δοκιμές δεν μας έδινε αξιόπιστες τιμές, οπότε προσωρινά τον έχουμε αφαιρέσει από το σύστημα.

Σύστημα Bluetooth

Για την σύνδεση της συσκευής μας με το κινητό τηλέφωνο χρησιμοποιούμε την μονάδα HC-05 και την βιβλιοθήκη Software Serial για να στέλνουμε τα δεδομένα των μετρήσεων στην εφαρμογή μας. Η μονάδα HC-05 χρειάζεται δυο pin από το Arduino τα οποία είναι το RX και TX για αποστολή και λήψη δεδομένων. Επειδή δεν θέλουμε να τα δεσμεύσουμε, αφού θα τα χρειαστούμε για την επικοινωνία του Arduino με τον υπολογιστή όσο φτιάχνουμε το πρόγραμμα μας, χρησιμοποιούμε την βιβλιοθήκη Software Serial η οποία μας δίνει τη δυνατότητα να χρησιμοποιήσουμε οποιαδήποτε ψηφιακά pin από το Arduino. Επίσης θα πρέπει να προσέξουμε κατά την σύνδεση του pin RX της μονάδας HC-05 να μειώσουμε την τάση στα 3.3V γιατί αλλιώς μπορεί η μονάδα να μην λειτουργεί καλά. Περισσότερες πληροφορίες για την μονάδα HC-05 μπορείτε να δείτε σε αυτό το άρθρο.

Μονάδα Bluetooth HC-05Arduino Nano
TX (Αποστολή δεδομένων)D8
RX (Λήψη δεδομένων)D9 με διαίρεση τάσης
VCC (Τροφοδοσία)5V
GND (Γείωση)GND
Χρειάζεται προσοχή όταν συνδέουμε το pin RX της μονάδας HC-05 να κατεβάζουμε την τάση στα 3.3V

Για να δοκιμάσουμε την μονάδα bluetooth χρησιμοποιήσαμε την βιβλιοθήκη software serial και τα παραδείγματα που έχει τα οποία τροποποιήσαμε για την δική μας περίπτωση. Το δοκιμαστικό πρόγραμμα υπάρχει στο αποθετήριο μας στο Github.

Μπαταρία και φόρτιση

Στην αρχική υλοποίηση δεν είχαμε δώσει μεγάλη έμφαση στον τρόπο με το οποίο θα τροφοδοτούσαμε την συσκευή μας με ρεύμα και χρησιμοποιήσουμε ένα απλό power bank το οποίο το συνδέσαμε μέσω usb με το Arduino. Αυτός ο τρόπος δεν ήταν λειτουργικός αφού το power bank είναι μεγάλο σε όγκο και αρκετά βαρύ, ενώ χρειάζεται να το συνδέουμε σε πηγή τροφοδοσίας με ρεύμα για να φορτίζει.

Για αυτό αποφασίσαμε να χρησιμοποιήσουμε μια μπαταρία λιθίου, η οποία θα φορτίζει από ένα μικρό ηλιακό πάνελ που θα βρίσκεται στο καπάκι της συσκευής. Για να πετύχουμε αυτόν τον σχεδιασμό χρησιμοποιήσαμε:

Σύνδεση μπαταρίας και ηλιακού πάνελ με το Arduino

Ο τρόπος σύνδεσης που ακολουθήσαμε είναι ο εξής:

  • Συνδέσαμε το ηλιακό πάνελ με την μονάδα CN3065 Solar Lithium Battery Charger και συγκεκριμένα με την υποδοχή Solar.
  • Συνδέσαμε την μπαταρία με την μονάδα CN3065 Solar Lithium Battery Charger και συγκεκριμένα με την υποδοχή Battery. Με αυτές τις δυο συνδέσεις εξασφαλίζουμε την φόρτιση της μπαταρίας από το ηλιακό πάνελ ανεξάρτητα με το αν είναι η συσκευή ανοιχτή ή όχι.
  • Συνδέσαμε το καλώδιο + από την υποδοχή System του CN3065 Solar Lithium Battery Charger με την μια υποδοχή από το πλήκτρο on/off. Έτσι όταν ο διακόπτης είναι κλειστός δεν μπορεί το ρεύμα να περάσει από την μπαταρία παρακάτω στο σύστημα.
  • Συνδέσαμε την άλλη υποδοχή του πλήκτρου on/off με την υποδοχή Vi (Vin) της μονάδας DC-DC Step up. Αυτή η υποδοχή παίρνει το ρεύμα χαμηλής τάσης της μπαταρίας (3,7V) για να το μετατρέψει σε τάση 5V.
  • Συνδέσαμε την υποδοχή Vo (Vout) της μονάδας DC-DC Step up στέλνει το ρεύμα στη νέα τάση (5V), με την υποδοχή 5V του Arduino Nano. Είναι σημαντικό να το συνδέσουμε στο pin 5V του Arduino και όχι στο Vin, αφού το Vin θέλει παραπάνω τάση.
  • Συνδέσαμε την υποδοχή γείωσης (δεν έχει ένδειξη) της μονάδας DC-DC Step up με την υποδοχή GND του Arduino Nano.
  • Συνδέσαμε το καλώδιο – από την υποδοχή System του CN3065 Solar Lithium Battery Charger με την γείωση του Arduino Nano.

Σχεδιασμός και κατασκευή κουτιού

Από την αρχή είχαμε ως στόχο να σχεδιάσουμε ένα κουτί που θα περιλαμβάνει όλα τα ηλεκτρονικά, θα μπορεί να τοποθετεί εύκολα πάνω σε ποδήλατα και φυσικά θα διαθέτει αρκετά ανοίγματα ώστε να μπορεί μέσα του να κυκλοφορεί ο αέρας για να παίρνουμε σωστές μετρήσεις. Αρχικά χρησιμοποιήσαμε ένα παλιό τσαντάκι ποδηλάτου, στο οποίο τοποθετήσαμε τα ηλεκτρονικά στοιχεία και στο οποίο ανοίξαμε τρύπες.

Το τσαντάκι της Άσπας γεμάτο τρύπες!

Μετά τις επιτυχημένες δοκιμές ξεκινήσαμε να σχεδιάζουμε το δικό μας κουτί. Τα πρώτα σχέδια έγιναν στο TinkerCAD και είχαμε ως σκοπό να χρησιμοποιήσουμε τον μοναδικό 3Δ εκτυπωτή του ομίλου που είχαμε στην διάθεση μας εκείνη την εποχή. Με το που ξεκινήσαμε τις πρώτες δοκιμαστικές εκτυπώσεις, ο εκτυπωτής παρουσίασε αρκετά προβλήματα (πολλά στοιχεία του που είναι και αυτά εκτυπωμένα σε PLA είχαν σπάσει ή ραγίσει) και δυστυχώς δεν ήταν αξιόπιστη λύση.

Για αυτόν τον λόγο αποφασίσαμε να χρησιμοποιήσουμε ένα μηχάνημα CNC Router το οποίο μας διέθεσε ιδιώτης. Για να υλοποιήσουμε τα σχέδια που απαιτούνται για το CNC Cutter χρησιμοποιήσαμε την πλατφόρμα Boxes.py η οποία παράγει διανυσματικά σχέδια έτοιμα για κοπή. Τα αρχεία αυτά μπορούμε να τα τροποποιήσουμε στο Inkscape για να προσθέσουμε διακόσμηση και επιπλέον στοιχεία.

Το πρώτο κουτί που κατασκευάσαμε είχε διαστάσεις 25cm μήκος, 10 cm πλάτος και 10 cm ύψος για να μπορεί να χωράει και ένα ογκώδες power bank!

Από την στιγμή που αποφασίσαμε να αντικαταστήσουμε το powerbank με μπαταρία λιθίου και ηλιακό πάνελ αλλάξαμε εντελώς και τον σχεδιασμό του κουτιού. Παράλληλα το εργαστήριο μας εξοπλίστηκε με άλλους δύο 3D εκτυπωτές που προήλθαν από χορηγίες και πλέον μπορούσαμε να εκτυπώσουμε με άνεση και ευκολία τα σχέδια μας. Όλα τα ηλεκτρονικά στοιχεία της κατασκευής μας βρίσκονται τοποθετημένα μέσα στο κουτί το οποίο στηρίζεται πάνω στο ποδήλατο. Για τον σχεδιασμό του κουτιού χρησιμοποιήσαμε την πλατφόρμα TinkerCAD και δημιουργήσαμε διάφορα σχέδια μέχρι να καταλήξουμε στην τελική μορφή. Το κουτί έχει διαστάσεις:

  • 12,6 εκατοστά μήκος
  • 6,6 εκατοστά πλάτος και
  • 7,6 εκατοστά ύψος

Το βασικό αντικείμενο που χρησιμοποιήσαμε ήταν το Project Box από την κατηγορία All shape generators, με το οποίο δημιουργήσαμε εύκολα το κουτί και το συρόμενο καπάκι του. Στη συνέχεια χρησιμοποιήσαμε απλά γεωμετρικά σχήματα για να δημιουργήσουμε διαμερίσματα για τους αισθητήρες και τα υπόλοιπα ηλεκτρονικά στοιχεία. Επίσης στο καπάκι του κουτιού δημιουργήσαμε μια εσοχή για να ταιριάζει το ηλιακό πάνελ, καθώς και ένα άνοιγμα για να περνάν τα καλώδια του και να μπορούν να συνδεθούν με την πλακέτα φόρτισης της μπαταρίας. Μπορείτε να δείτε παρακάτω το τρισδιάστατο αρχείο στο οποίο υπάρχει το κουτί μαζί με τα στοιχεία που περιλαμβάνει.

Παράλληλα δημιουργήσαμε και ένα σχέδιο για τα στηρίγματα του ποδηλάτου. Δυο στηρίγματα τοποθετούνται πάνω στο ποδήλατο χρησιμοποιώντας απλά πλαστικά δεματικά και το κουτί πλέον μπορεί να τοποθετηθεί πάνω τους.

Διάφορα σχέδια που κατασκευάσαμε μέχρι να καταλήξουμε

Εφαρμογή

Η συσκευή επικοινωνεί με το κινητό μας τηλέφωνο μέσα από την εφαρμογή που έχουν αναπτύξει. Χρησιμοποιήσαμε το AppInventor στο οποίο είχαμε εμπειρία για να σχεδιάσουμε και να αναπτύξουμε την εφαρμογή. Τα βασικά συστατικά που χρησιμοποιήσαμε ήταν:

  • Bluetooth client για την διαχείριση της σύνδεσης bluetooth με το κινητό
  • Location Sensor για να μπορούμε να πάρουμε γεωγραφικά δεδομένα από το GPS
  • Firebase component για την αποθήκευση των δεδομένων σε απομακρυσμένη βάση
  • Text to Speech και Speech recognizer για τις φωνητικές εντολές

Μπορείτε να κατεβάσετε και να δείτε το πρόγραμμα μας (χρειάζεται να έχετε λογαριασμό στο AppInventor).

Βάση δεδομένων

Για να μπορεί η εφαρμογή μας να είναι ένα πραγματικό κοινωνικό δίκτυο θα πρέπει όλες οι μετρήσεις που λαμβάνονται να αποθηκεύονται σε μια βάση δεδομένων η οποία βρίσκεται στο διαδίκτυο και είναι συνέχεια διαθέσιμη. Η βάση δεδομένων που επιλέξαμε είναι η Google Firebase και ο βασικός λόγος που την προτιμήσαμε είναι ότι συνεργάζεται με το AppInventor. Αφού παρακολουθήσαμε αρκετά βίντεο tutorial στο youtube που εξηγούσαν τον τρόπο σύνδεσης των δύο εφαρμογών, δημιουργήσαμε μια βάση και την συνδέσαμε στην εφαρμογή μας. Κάθε φορά που κάποιος χρήστης της εφαρμογής πατάει το πλήκτρο Send Data, οι μετρήσεις από τους αισθητήρες, μαζί με τις συντεταγμένες και το όνομα του αποθηκεύονται σαν μια νέα εγγραφή στην βάση μας,

Χάρτης αποτελεσμάτων

Για τη δημιουργία του χάρτη όπου θα εμφανίζονται τα αποτελέσματα επιλέξαμε την χρήση της υπηρεσίας Open Street Map μαζί με την βιβλιοθήκη Leaflet JS. Αν και οι γνώσεις μας στην γλώσσα προγραμματισμού Javascript δεν ήταν αναπτυγμένες βρήκαμε αρκετά σημαντική βοήθεια από το διαδίκτυο:

  • Το παράδειγμα Quick Start Guide στην σελίδα της βιβλιοθήκης μας βοήθησε για να στήσουμε τον χάρτη, να επιλέξουμε markers και να φτιάξουμε τα Pop up παράθυρα.
  • Το βίντεο Mapping Geolocation with Leaflet.js του coding train μας βοήθησε να καταλάβουμε τον τρόπο λειτουργίας της βιβλιοθήκης με απομακρυσμένα δεδομένα.
  • Το βίντεο realtime geolocation tracking with leaflets and firebase database μας βοήθησε για να συνδέσουμε την βάση δεδομένων μας με τον χάρτη και να πετύχουμε την μεταφορά των δεδομένων.
  • Τα tutorials για την διαχείριση κειμένου στην Javascript από το w3schools μας βοήθησαν για να μπορέσουμε να χωρίσουμε τα δεδομένα και να τα παρουσιάσουμε στον χάρτη.

Το τελικό κώδικα της σελίδας με τον χάρτη αποτελεσμάτων, μπορείτε να τον δείτε στο αποθετήριο μας στο Github.

Τι ακολουθεί

Συνεχίζουμε να βελτιώνουμε το έργο μας διαρκώς. Αυτή τη στιγμή μελετάμε:

  • την λήψη αξιόπιστων μετρήσεων από τον αισθητήρα ήχου καθώς και την χρήση των αισθητήρων μονοξειδίου του άνθρακα και μεθανίου.
  • Την βελτίωση της εφαρμογής μας με την χρήση φωνητικών εντολών.
  • Την βελτίωση του σχεδιασμού του κουτιού μας για να είναι πιο αεροδυναμικό.
  • Την ενίσχυση της ασφάλειας δεδομένων που αποθηκεύουμε στον χάρτη μας.
  • Εναλλακτικές μορφές παρουσίασης των δεδομένων στον χάρτη μας.