Το until christmas είναι ένα μικρό project που θα παρουσιαστεί στο Χριστουγεννίατικο Event του IEEE Student Branch του Πανεπιστημίου Ιωαννίνων. Με την χρήση του Arduino UNO και μερικών Max7219 7-segment displays, οι οποίες έχουν τον ρόλο στολιδιών στο δέντρο, μετράει αντίστροφα τις μέρες μέχρι τα Χριστούγεννα.

Για να αποφύγουμε την χρήση ενός  RTC (Real time clock) module προκειμένου να μετρήσουμε πραγματικό χρόνο αξιοποιήσαμε την βιβλιοθήκη Time του Arduino που δίνει αυτή την δυνατότητα.

Το project ίσως φανεί χρήσιμο σε όποιον θέλει να πειραματιστεί με το arduino, να χρησιμοποιήσει τις max7219 ή χρειάζεται την εναλλακτική λύση της βιβλιοθήκης time. Εάν δεν είστε εξοικειωμένοι με το Arduino, μπορείτε να ακολουθήσετε τον οδηγό μας εδώ.

Υλοποίηση

Ξεκινήσαμε με το datasheet των max7219 που μας προμηθεύει με όλες τις απαραίτητες πληροφορίες για την χρήση τους.

Οι συναρτήσεις initialize και output απλοποιούν την αρχικοποίηση και την τύπωση αριθμών στην οθόνη. Στόχος είναι η τύπωση του  xxx – days όμως λόγω περιορισμών του υλικού αυτό έγινε κάπως ανάποδα.

Στο αρχείο time υπάρχουν συναρτήσεις που κάνουν χρήση της βιβλιοθήκης που εισάγαμε. Αντί για την διάταξη hh:mm DD/MM/YYYY χρησιμοποιείται 10-ψήφιο timestamp είναι ένας τρόπος για να παρακολουθήσετε το χρόνο ως συνολικό τρέξιμο των δευτερολέπτων. Αυτό συγκρίνεται με μία σταθερή ημερομηνία και το αποτέλεσμα είναι ο υπολογισμός του πραγματικού χρόνου κάθε δευτερόλεπτο.

Στο αρχείο xmas βρίσκεται η λογική που συγκρίνει την τρέχουσα ώρα με την ημερομηνία που αναμένουμε, στην δική μας περίπτωση 25/12/2017, και τυπώνει τα αποτελέσματα στην οθόνη.

Τέλος στο loop() για να αρχίσει η αντίστροφη μέτρηση περιμένουμε από το serial input να δώσει ο χρήστης τον χαρακτήρα “Τ” και στην συνέχεια το 10-ψήφιο timestamp.

Την μέρα των χριστουγέννων η οθόνη θα μας ειδοποιήσει με το μήνυμα HOHOHO!

Βελτιώσεις

Το στολίδι μπορεί να γίνει πλήρως αυτόνομο, χωρίς να χρειάζεται την είσοδο από τον χρήστη, αν κάποια άλλη συσκευή (esp8266), δίνει στην σειριακή είσοδο το timestamp από κάποιο api.

Καλά Χριστούγεννα!