Arduino Open Window Detector - για το Χειμώνα: 6 Βήματα
Arduino Open Window Detector - για το Χειμώνα: 6 Βήματα
Anonim
Arduino Open Window Detector - για το Χειμώνα
Arduino Open Window Detector - για το Χειμώνα

Έξω κάνει κρύο, αλλά μερικές φορές χρειάζομαι καθαρό αέρα στα δωμάτιά μου. Έτσι, ανοίγω το παράθυρο, φεύγω από το δωμάτιο, κλείνω την πόρτα και θέλω να επιστρέψω σε 5 έως 10 λεπτά. Και μετά από μερικές ώρες θυμάμαι ότι το παράθυρο είναι ανοιχτό … Maybeσως το γνωρίζετε αυτό ή έχετε παιδιά, τα οποία σας προσφέρουν αυτήν την εμπειρία.

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

Βήμα 1: Λίστα μερών

Λίστα μερών
Λίστα μερών
Λίστα μερών
Λίστα μερών
Λίστα μερών
Λίστα μερών
Λίστα μερών
Λίστα μερών
  1. Πίνακας Digispark από το eBay.
  2. Παλιά ακουστικά.
  3. Μικρό κουμπί για επαναφορά.
  4. Συνδέσεις για ηχείο - διαφορετικά δεν είναι δυνατός ο επαναπρογραμματισμός του πίνακα.
  5. Σύρμα.
  6. Για τροφοδοσία χρειάζεστε:

Θήκη μπαταρίας AAA με διακόπτη on/off. Μπορείτε ακόμη να χρησιμοποιήσετε φθαρμένες μπαταρίες, καθώς η μονάδα θα λειτουργεί έως 2,4Volt

Ή

Παλιά μπαταρία λιπό (ακόμη και το 30% της χωρητικότητας είναι αρκετό για το σκοπό αυτό) και αν δεν έχετε ήδη, φορτιστή για μπαταρίες lipo από το eBay.

Ή

Κάτοχος για κελί νομίσματος CR2032

ΚΑΙ

1Α δίοδος 1N4001 ή ισοδύναμη -ή οτιδήποτε έχετε σε αυτό το μέγεθος- για προστασία αντίστροφης πολικότητας

Βήμα 2: Προγραμματισμός του Digispark Board

Προγραμματισμός του Digispark Board
Προγραμματισμός του Digispark Board
Προγραμματισμός του Digispark Board
Προγραμματισμός του Digispark Board

Εγκατάσταση προγράμματος οδήγησης

Πρέπει να εγκαταστήσετε το πρόγραμμα οδήγησης Digispark προτού μπορέσετε να προγραμματίσετε τον πίνακα. Κατεβάστε το εδώ, ανοίξτε το και εκτελέστε το "InstallDrivers.exe".

Εγκατάσταση του Arduino IDE

Εγκαταστήστε τον πίνακα Digispark για το Arduino IDE όπως περιγράφεται στη διεύθυνση

Σας συνιστώ να χρησιμοποιήσετε ως διεύθυνση URL του σκάφους Digispark στο Αρχείο/Προτιμήσεις Arduino το νέο https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json αντί για https://digistump.com/package_digistump_index.json και εγκαταστήστε το Digistump AVR Boards έκδοση 1.6.8.

Δεδομένου ότι θέλουμε να εξοικονομήσουμε ενέργεια, το ρολόι της πλακέτας αλλάζει σε 1 MHz στη ρύθμισή μας () μπορείτε να επιλέξετε Digispark (1mhz - Χωρίς USB) ως πλακέτα στο μενού Εργαλεία.

Συγκεντρώστε και ανεβάστε το πρόγραμμα στον πίνακα

Στο Arduino IDE δημιουργήστε ένα νέο σκίτσο με File/New και ονομάστε το π.χ. "OpenWindowAlarm". Αντιγράψτε τον κώδικα από το OpenWindowAlarm.ino

Ή

Κατεβάστε και εξαγάγετε το αποθετήριο. Ανοίξτε το σκίτσο με Αρχείο -> Άνοιγμα… και επιλέξτε το φάκελο "OpenWindowAlarm".

Μεταγλωττίστε και ανεβάστε το. Λάβετε υπόψη ότι η μεταφόρτωση δεν θα λειτουργήσει εάν το ηχείο είναι συνδεδεμένο. Εάν όλα λειτουργούν καλά, η ενσωματωμένη λυχνία LED του Digispark θα αναβοσβήνει 5 φορές (για καθυστέρηση συναγερμού 5 λεπτών) και στη συνέχεια θα αρχίσει να αναβοσβήνει μετά από 8 δευτερόλεπτα με ένα διάστημα 24 δευτερολέπτων για να σηματοδοτήσει κάθε ένδειξη θερμοκρασίας.

Βήμα 3: Μείωση ισχύος

Μείωση ισχύος
Μείωση ισχύος
Μείωση ισχύος
Μείωση ισχύος

Η πλακέτα Digispark μας χρησιμοποιεί 5mA στα 3, 0 volt. Με 2 μπαταρίες AAA (1000mAh) θα λειτουργεί για 8 ημέρες. Είναι όμως δυνατό να μειωθεί η κατανάλωση ενέργειας έως και 26 μA σε 3 βήματα.

  1. Η απενεργοποίηση του LED ισχύος σπάζοντας το χάλκινο σύρμα που συνδέει το LED τροφοδοσίας με τη δίοδο με ένα μαχαίρι ή αφαιρώντας / απενεργοποιώντας την αντίσταση 102 εξοικονομείτε 1,3 mA.
  2. Η αφαίρεση του ρυθμιστή τάσης VIN εξοικονομεί 1,2 mA.
  3. Η αποσύνδεση της αντίστασης USB Pullup (με σήμανση 152) από 5 Volt (VCC) εξοικονομεί τα υπόλοιπα 2,5 mA. Αποσυνδέστε το σπάζοντας το χάλκινο σύρμα στην πλευρά της αντίστασης που δείχνει προς το ATTiny. Αυτό απενεργοποιεί τη διεπαφή USB και με τη σειρά της τη δυνατότητα προγραμματισμού της πλακέτας Digispark μέσω USB. Για να το ενεργοποιήσετε ξανά, αλλά και πάλι να εξοικονομήσετε ενέργεια, συνδέστε την αντίσταση (με σήμανση 152) απευθείας στο USB 5 volt που είναι εύκολα διαθέσιμο στην εξωτερική πλευρά της διόδου.

    Η σωστή πλευρά της διόδου μπορεί να βρεθεί χρησιμοποιώντας έναν ελεγκτή συνέχειας. Η μία πλευρά αυτής της διόδου συνδέεται με τον πείρο 8 του ATtiny (VCC). Η άλλη πλευρά είναι συνδεδεμένη με USB 5 volt.

Τώρα η αντίσταση τράβηγμα USB ενεργοποιείται μόνο εάν η πλακέτα Digispark είναι συνδεδεμένη σε USB π.χ. κατά τη διάρκεια του προγραμματισμού και ο πίνακας καταναλώνει 26 μA κατά τη διάρκεια του ύπνου.

Εάν επαναπρογραμματίσετε τις ασφάλειες, μπορείτε να λάβετε κατανάλωση ισχύος 6 μΑ.

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

Βήμα 4: Κουμπί επαναφοράς

Κουμπί επαναφοράς
Κουμπί επαναφοράς
Κουμπί επαναφοράς
Κουμπί επαναφοράς
Κουμπί επαναφοράς
Κουμπί επαναφοράς
Κουμπί επαναφοράς
Κουμπί επαναφοράς

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

Εάν θέλετε να απαλλαγείτε από την αναμονή 5 δευτερολέπτων για σύνδεση USB μετά την επαναφορά, μπορείτε να αλλάξετε τον πυρήνα μικροπυρήνων στο ATtiny85. Εκτελέστε το σενάριο "0_Burn_upgrade-t85_recommended.cmd" και, στη συνέχεια, φορτώστε ξανά την εφαρμογή OpenWindowAlarm με το Arduino IDE.

Βήμα 5: Ηχείο

Ομιλητής
Ομιλητής
Ομιλητής
Ομιλητής
Ομιλητής
Ομιλητής

Αποσυναρμολόγησα ένα παλιό ακουστικό και σύνδεσα το αρσενικό βύσμα στο καλώδιο.

Βήμα 6: Λειτουργία

Λειτουργικός
Λειτουργικός
Λειτουργικός
Λειτουργικός
Λειτουργικός
Λειτουργικός

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

Στη συνέχεια θα ανησυχήσετε εάν αφήσετε το παράθυρο ανοιχτό για περισσότερο από πέντε λεπτά.

Εσωτερική Λειτουργία

  • Ένα ανοιχτό παράθυρο ανιχνεύεται μετά από TEMPERATURE_COMPARE_AMOUNT * TEMPERATURE_SAMPLE_SECONDS (48) δευτερόλεπτα ανάγνωσης θερμοκρασίας με τιμή TEMPERATURE_DELTA_THRESHOLD_DEGREE (2) χαμηλότερη από τη θερμοκρασία TEMPERATURE_COMPARE_PEME
  • Η καθυστέρηση εφαρμόζεται με τον ύπνο 3 φορές στο `SLEEP_MODE_PWR_DOWN` για περίοδο 8 δευτερολέπτων για να μειωθεί η κατανάλωση ενέργειας.
  • Η ανίχνευση ενός ανοιχτού παραθύρου υποδεικνύεται με ένα μεγαλύτερο αναβοσβήσιμο 20ms και ένα σύντομο κλικ κάθε 24 δευτερόλεπτα. Επομένως, ο εσωτερικός αισθητήρας έχει χρόνο 3 λεπτών για να προσαρμοστεί στην εξωτερική θερμοκρασία για να καταγράψει ακόμη και μικρές αλλαγές θερμοκρασίας. Όσο μεγαλύτερη είναι η αλλαγή θερμοκρασίας τόσο νωρίτερα θα αλλάξει η τιμή του αισθητήρα και θα ανιχνεύσει ένα ανοιχτό παράθυρο.
  • `OPEN_WINDOW_ALARM_DELAY_MINUTES` (5) λεπτά μετά την ανίχνευση ανοιχτού παραθύρου ενεργοποιείται ο συναγερμός.

    Ο συναγερμός δεν θα ξεκινήσει ή ένας ενεργοποιημένος συναγερμός θα σταματήσει εάν η τρέχουσα θερμοκρασία είναι μεγαλύτερη από την ελάχιστη μετρημένη θερμοκρασία (+ 1), δηλαδή το παράθυρο έχει ήδη κλείσει.

  • Ο αρχικός συναγερμός διαρκεί 10 λεπτά. Μετά από αυτό ενεργοποιείται για περίοδο 10 δευτερολέπτων με αυξανόμενο διάλειμμα από 24 δευτερόλεπτα έως 5 λεπτά.
  • Κάθε VCC_MONITORING_DELAY_MIN (60) λεπτά μετριέται η τάση της μπαταρίας. Ανάλογα με τον τύπο μπαταρίας που εντοπίστηκε κατά την ενεργοποίηση (βλ. VCC_VOLTAGE_LIPO_DETECTION (3,6 volt)), τάση μπαταρίας κάτω από VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_LIPO (3550) ή VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_STANDARD Μόνο το μπιπ (όχι το φλας) είναι σημαντικά μεγαλύτερο από το μπιπ για ανίχνευση ανοιχτού παραθύρου.
  • Μετά την ενεργοποίηση, ο ανενεργός χρόνος καθίζησης είναι 5 λεπτά. Εάν ο πίνακας γίνεται πιο κρύος κατά τη διάρκεια του χρόνου καθίζησης, προστίθενται 4:15 (ή 8:30) λεπτά για να αποφευχθούν ψευδείς συναγερμοί μετά την ενεργοποίηση.