Πίνακας περιεχομένων:
- Βήμα 1: Επιλογή εξαρτήματος
- Βήμα 2: Κατασκευή
- Βήμα 3: Κωδικός - Βιβλιοθήκη αισθητήρα χαμηλής ισχύος, διεπαφή χρήστη και σκίτσο Arduino
- Βήμα 4: Μέτρηση του ρεύματος παροχής
- Βήμα 5: Συνολικό ρεύμα τροφοδοσίας και διάρκεια ζωής της μπαταρίας
- Βήμα 6: Εναλλακτικές προμήθειες - Ηλιακή βοήθεια, Μόνο μπαταρία, Μόνο ηλιακή
- Βήμα 7: Συμπέρασμα
Βίντεο: Εύκολη πολύ χαμηλής ισχύος BLE στο Arduino Μέρος 2 - Παρακολούθηση θερμοκρασίας/υγρασίας - Αναθ. 3: 7 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:31
Ενημέρωση: 23 Νοεμβρίου 2020 - Πρώτη αντικατάσταση 2 μπαταριών AAA από τις 15 Ιανουαρίου 2019, δηλαδή 22 μήνες για 2xAAA Alkaline Ενημέρωση: 7 Απριλίου 2019 - Αναθ. 3 του lp_BLE_TempHumidity, προσθέτει γραφήματα ημερομηνίας/ώρας, χρησιμοποιώντας το pfodApp V3.0.362+, και αυτόματη ενεργοποίηση κατά την αποστολή δεδομένα
Ενημέρωση: 24 Μαρτίου 2019 - Αναθ. 2 του lp_BLE_TempHumidity, προσθέτει περισσότερες επιλογές σχεδίου και i2c_ClearBus
Αυτό το διδακτικό, A Very Low Power Temperature Humidity Monitor, είναι μέρος 2 από 3.
Μέρος 1 - Δημιουργία συσκευών BLE πολύ χαμηλής ισχύος που διευκολύνεται με τα καλύμματα Arduino που ρυθμίζουν το Arduino σε κωδικούς nRF52 συσκευών χαμηλής ισχύος, την ενότητα προγραμματισμού και τη μέτρηση του ρεύματος τροφοδοσίας. Καλύπτει επίσης εξειδικευμένους χρονομετρητές χαμηλής ισχύος και συγκριτές και καταργημένες εισόδους και χρησιμοποιώντας το pfodApp για σύνδεση και έλεγχο της συσκευής nRF52.
Μέρος 2 - Μια οθόνη παρακολούθησης υγρασίας θερμοκρασίας πολύ χαμηλής ισχύος, αυτή, καλύπτει χρησιμοποιώντας μια μονάδα Redbear Nano V2 και έναν αισθητήρα θερμοκρασίας / υγρασίας Si7021 για την κατασκευή μπαταρίας / ηλιακής οθόνης χαμηλής ισχύος. Καλύπτει επίσης την τροποποίηση της βιβλιοθήκης Si7021 σε χαμηλή ισχύ, τη ρύθμιση της συσκευής BLE για μείωση της τρέχουσας κατανάλωσης <25uA και τον σχεδιασμό μιας προσαρμοσμένης οθόνης θερμοκρασίας/υγρασίας για το κινητό σας.
Μέρος 3 - Μια αντικατάσταση Redbear Nano V2 καλύπτει τη χρήση άλλων μονάδων που βασίζονται σε nRF52 αντί του Nano V2. Καλύπτει την επιλογή εξαρτημάτων τροφοδοσίας, την κατασκευή, την αφαίρεση της προστασίας προγραμματισμού τσιπ nRF52, τη χρήση καρφιτσών NFC ως κανονικού GPIO και τον καθορισμό μιας νέας πλακέτας nRF52 στο Arduino.
Αυτό το διδάξιμο είναι μια πρακτική εφαρμογή του Μέρους 1 Δημιουργία συσκευών BLE πολύ χαμηλής ισχύος που διευκολύνονται με το Arduino κατασκευάζοντας μια οθόνη χαμηλής ισχύος BLE θερμοκρασίας και υγρασίας. Η οθόνη θα λειτουργεί για χρόνια με Coin Cell ή 2 x μπαταρίες AAA, ακόμη περισσότερο με ηλιακή υποβοήθηση. Αυτό το σεμινάριο καλύπτει τον συντονισμό των παραμέτρων BLE για χαμηλή κατανάλωση ενέργειας και πώς να τροφοδοτείτε τη συσκευή σας από μπαταρία ή μπαταρία + ηλιακό ή ηλιακό μόνο.
Εκτός από την εμφάνιση της τρέχουσας θερμοκρασίας και υγρασίας, η οθόνη αποθηκεύει τις τελευταίες 36 ώρες των 10 λεπτών αναγνώσεις και τις τελευταίες 10 ημέρες ωριαίων ενδείξεων. Αυτά μπορούν να γραφτούν στο κινητό σας Android και οι τιμές να αποθηκευτούν σε ένα αρχείο καταγραφής. Δεν απαιτείται προγραμματισμός Android, το pfodApp χειρίζεται όλα αυτά. Η οθόνη και η γραφική παράσταση Android ελέγχονται πλήρως από το σκίτσο του Arduino, ώστε να μπορείτε να το προσαρμόσετε όπως απαιτείται.
Ένας πίνακας Redbear Nano V2 χρησιμοποιείται για το στοιχείο nRF52832 BLE και ένας πίνακας διαρροής Sparkfun Si7021 χρησιμοποιείται για τον αισθητήρα θερμοκρασίας / υγρασίας. Μια τροποποιημένη βιβλιοθήκη χαμηλής ισχύος χρησιμοποιείται με το Si7021. Ένα μικρό PCB σχεδιάστηκε για να συγκρατεί το NanoV2 και να παρέχει στοιχεία. Ωστόσο, επειδή δεν χρησιμοποιούνται εξαρτήματα τοποθετημένα στην επιφάνεια, μπορείτε να το κατασκευάσετε εξίσου εύκολα σε πίνακα vero. Καλύπτονται τρεις εκδόσεις τροφοδοσίας. i) Μπαταρία συν Ηλιακή βοήθεια, ii) Μόνο Μπαταρία, iii) Μόνο Ηλιακή. Η επιλογή Solar Only δεν διαθέτει αποθήκευση μπαταρίας και έτσι θα λειτουργεί μόνο όταν υπάρχει λίγο φως. Ένας φωτεινός φωτισμός δωματίου ή ένας λαμπτήρας γραφείου είναι αρκετός.
Περίγραμμα
Αυτό το έργο έχει 4 σχετικά ανεξάρτητα μέρη:-
- Επιλογή και κατασκευή εξαρτημάτων
- Κωδικός - Βιβλιοθήκη αισθητήρα χαμηλής ισχύος, διεπαφή χρήστη και σκίτσο Arduino
- Μέτρηση ρεύματος τροφοδοσίας και διάρκειας ζωής της μπαταρίας
- Εναλλακτικές λύσεις - Solar Assist, Battery Only, Solar Only
Βήμα 1: Επιλογή εξαρτήματος
Επιλογή εξαρτήματος
Όπως αναφέρθηκε στο Μέρος 1-Το κόλπο για να αποκτήσετε μια πραγματικά χαμηλή λύση ισχύος είναι να μην κάνετε τίποτα τις περισσότερες φορές, να ελαχιστοποιήσετε το ρεύμα μέσω εξωτερικών αντιστάσεων έλξης/έλξης στις εισόδους και να μην έχετε επιπλέον εξαρτήματα. Αυτό το έργο θα χρησιμοποιήσει καθένα από αυτά τα κόλπα για να πάρει μια λύση χαμηλής ισχύος.
Το συστατικό nRF52832
Το τσιπ nRF52832 μπορεί να λειτουργήσει με τροφοδοσία μεταξύ 1,7V και 3,6V (απόλυτη μέγιστη τάση 3,9V). Αυτό σημαίνει ότι μπορείτε να τροφοδοτήσετε το τσιπ απευθείας από μια κυψέλη νομισμάτων ή 2 x μπαταρίες AAA. Ωστόσο, είναι συνετό να προσθέσετε έναν ρυθμιστή τάσης για την προστασία του τσιπ από υπερβολικά βολτ. Αυτό το επιπλέον εξάρτημα συνοδεύεται από κόστος ισχύος, αλλά στην περίπτωση της πλακέτας NanoV2, ο ρυθμιστής επί του σκάφους, TLV704, καταναλώνει λιγότερο από 5,5uA max, συνήθως μόνο 3,4uA. Για αυτή τη μικρή επιπλέον χρήση ισχύος, έχετε προστασία για είσοδοι παροχής έως 24V.
Το εξάρτημα Si7021
Ο ίδιος ο αισθητήρας Si7021 αντλεί συνήθως <1uA όταν δεν λαμβάνει μια μέτρηση, δηλαδή σε κατάσταση αναμονής, και έως 4mA όταν μεταδίδει τα δεδομένα μέσω I2C. Δεδομένου ότι δεν λαμβάνουμε συνεχώς μετρήσεις, τα 4mA δεν αποτελούν σημαντικό μέρος του μέσου ρεύματος παροχής. Η μέτρηση για πολύ 30 δευτερόλεπτα προσθέτει λιγότερο από 1uA στο μέσο ρεύμα παροχής, δείτε τις μετρήσεις του ρεύματος τροφοδοσίας παρακάτω.
Υπάρχουν δύο άμεσα διαθέσιμες σανίδες διάσπασης Si7021. Ένα από το Adafruit και ένα από το Sparkfun. Μια γρήγορη ματιά στους δύο πίνακες θα σας πει ότι ο πίνακας Adafruit έχει πολλά περισσότερα εξαρτήματα από τον πίνακα Sparkfun, οπότε θα προτιμούσατε να επιλέξετε τον πίνακα Sparkfun. Κοιτάζοντας τα διαγράμματα για κάθε πίνακα, φαίνεται ότι ο πίνακας Sparkfun είναι απλώς ο γυμνός αισθητήρας και δύο αντισταθμιστές έλξης 4k7, ενώ ο πίνακας Adafruit διαθέτει ενσωματωμένο ρυθμιστή MIC5225, ο οποίος συνήθως τραβάει 29uA όλη την ώρα. Αυτό είναι σημαντικό όταν το συνολικό ρεύμα για το υπόλοιπο του κυκλώματος είναι <30uA. Δεδομένου ότι έχουμε ήδη ρυθμιστή για το τσιπ nRF52832, αυτό το επιπλέον στοιχείο δεν χρειάζεται και το Si7021 μπορεί να τροφοδοτηθεί από αυτήν την τροφοδοσία 3.3V. Έτσι, αυτό το έργο θα χρησιμοποιήσει το Si7021 breakout board από το Sparkfun.
ελαχιστοποιήστε το ρεύμα μέσω εξωτερικών αντιστάσεων έλξης/έλξης στις εισόδους
Οι αντιστάσεις έλξης 4K7 I2C δεν έχουν ιδιαίτερα υψηλή τιμή και αντλούν χαμηλά 0,7mA. Αυτό θα ήταν πρόβλημα εάν βρίσκονται σε μια είσοδο διακόπτη που ήταν γειωμένη για μεγάλα χρονικά διαστήματα. Ωστόσο, σε αυτό το έργο το ρεύμα μέσω αυτών των αντιστάσεων ελαχιστοποιείται χρησιμοποιώντας μόνο τη διεπαφή I2C σπάνια και μόνο για μικρό χρονικό διάστημα. Τις περισσότερες φορές οι γραμμές I2C δεν χρησιμοποιούνται και είναι υψηλές / τρι-κατάστασης, οπότε δεν ρέει ρεύμα μέσω αυτών των αντιστάσεων.
Βήμα 2: Κατασκευή
Το έργο είναι κατασκευασμένο σε ένα μικρό PCB, αλλά επειδή δεν υπάρχουν εξαρτήματα SMD, μπορεί να κατασκευαστεί εξίσου εύκολα χρησιμοποιώντας vero board. Το PCB κατασκευάστηκε από την pcbcart.com από αυτά τα αρχεία Gerber, TempHumiditySensor_R1.zip Το PCB είναι αρκετά γενικής χρήσης για να χρησιμοποιηθεί για άλλα έργα BLE.
Το σχήμα φαίνεται παραπάνω. Εδώ είναι μια έκδοση pdf.
Λίστα μερών
Κατά προσέγγιση κόστος ανά μονάδα τον Δεκέμβριο του 2018, ~ 62 $, εξαιρουμένων των μεταφορικών και του προγραμματιστή από το Μέρος 1
- Redbear NanoV2 ~ 17 US $
- Sparkfun Si7021 breakout board 8 ~ US $
- 2 x 53mm x 30mm 0.15W 5V ηλιακά κύτταρα π.χ. Overfly 1. 1,10 US $
- 1 x PCB TempHumiditySensor_R1.zip 25 US $ 25 για 5 έκπτωση www.pcbcart.com V Πίνακας Vero (λωρίδα χαλκού) π.χ. Jaycar HP9540 ~ 5 AUD $
- 2 x 1N5819 διόδους schottky π.χ. Digikey 1N5819FSCT-ND ~ 1 US $
- 1 x 470R 0,4W 1% αντίσταση π.χ. Digikey BC3274CT-ND 0. 0,25 US $
- 6 x 6 καρφίτσες αρσενικές καρφίτσες κεφαλίδας π.χ. Sparkfun PRT-00116 ~ 1,5 US $
- άλτης από γυναίκα σε γυναίκα π.χ. Αναγνωριστικό Adafruit: 1950 2 2 $
- Βίδες από νάιλον 3mm x 12mm, π.χ. Jaycar HP0140 ~ 3 AUD $
- 3mm x 12mm νάιλον περικόχλια, π.χ. Jaycar HP0146 ~ 3 AUD $
- Scotch Permanent Mounting Tape Cat 4010 π.χ. από την Amazon 6. 6,6 US $
- Θήκη μπαταρίας AAA x 2, π.χ. Sparkfun PRT-14219 ~ 1,5 US $
- 2 αλκαλικές μπαταρίες AAA 750mA, π.χ. Sparkfun PRT-09274 1.0 1.0 $ US Αυτές οι μπαταρίες πρέπει να διαρκέσουν> 2 χρόνια. Οι αλκαλικές μπαταρίες Energizer έχουν μεγαλύτερη χωρητικότητα
- Πλαστικό κουτί (ABS) 83mm x 54mm x 31mm, π.χ. Jaycar HB6005 ~ 3 AUD $
- pfodApp ~ 10 US $
- 1 x 22uF 63V Χαμηλός πυκνωτής ESR (προαιρετικό) π.χ. Jaycar RE-6342 0.5 0,5 AUD ή Digikey P5190-ND 0. 0,25 US $
Η κατασκευή είναι ευθεία. Η θήκη της μπαταρίας και οι ηλιακές κυψέλες στερεώνονται στο πλαστικό κουτί με ταινία διπλής όψης βαρέως τύπου.
Σημειώστε το καλώδιο σύνδεσης Gnd από το CLK στο GND στο τελικό τμήμα. Αυτό είναι εγκατεστημένο ΜΕΤΑ τον προγραμματισμό για να αποτρέψει τον θόρυβο στην είσοδο CLK από το να ενεργοποιήσει το τσιπ nRF52 σε κατάσταση υψηλής έντασης εντοπισμού σφαλμάτων
Βήμα 3: Κωδικός - Βιβλιοθήκη αισθητήρα χαμηλής ισχύος, διεπαφή χρήστη και σκίτσο Arduino
Κατεβάστε τον ταχυδρομικό κώδικα, lp_BLE_TempHumidity_R3.zip και αποσυμπιέστε τον στον κατάλογο σκίτσων Arduino. Πρέπει επίσης να εγκαταστήσετε τη βιβλιοθήκη lp_So7021 από αυτό το αρχείο zip και επίσης να εγκαταστήσετε τη βιβλιοθήκη pfodParser.
Βιβλιοθήκη αισθητήρων χαμηλής ισχύος, lp_Si7021
Τόσο το Adafruit όσο και το Sparkfun παρέχουν βιβλιοθήκες υποστήριξης για πρόσβαση στον αισθητήρα Si7021, ωστόσο και οι δύο αυτές βιβλιοθήκες δεν είναι κατάλληλες για χρήση σε πολύ χαμηλή ισχύ. Και οι δύο χρησιμοποιούν καθυστέρηση (25) στον κώδικα για να καθυστερήσουν την ανάγνωση του αισθητήρα ενώ λαμβάνει τη μέτρηση. Όπως σημειώνεται στο Μέρος 1 Οι καθυστερήσεις είναι κακές. Η καθυστέρηση Arduino () απλώς διατηρεί τον μικροεπεξεργαστή σε λειτουργία χρησιμοποιώντας ενέργεια ενώ περιμένει να καθυστερήσει η καθυστέρηση. Αυτό παραβιάζει τον πρώτο κανόνα της χαμηλής ισχύος BLE, μην κάνετε τίποτα τις περισσότερες φορές. Η αντικαταστατική βιβλιοθήκη lp_Si7021, αντικαθιστά όλες τις καθυστερήσεις με lp_timers που θέτουν τον μικροεπεξεργαστή σε κατάσταση αναμονής περιμένοντας τον αισθητήρα να ολοκληρώσει τη μέτρηση.
Πόση διαφορά κάνει η βιβλιοθήκη lp_Si7021; Η χρήση της αρχικής βιβλιοθήκης υποστήριξης SparkFun Si7021 και η ανάγνωση ανά δευτερόλεπτο χωρίς σειριακές εκτυπώσεις, αντλεί μέσο όρο ~ 1,2mA. Η αντικατάσταση της βιβλιοθήκης Sparkfun με τη βιβλιοθήκη lp_Si7021 μειώνει το μέσο ρεύμα σε u 10uA, δηλαδή 100 φορές λιγότερο. Σε αυτό το έργο ο γρηγορότερος ρυθμός μέτρησης είναι μία φορά κάθε 30 δευτερόλεπτα όταν το κινητό είναι συνδεδεμένο, το οποίο έχει ως αποτέλεσμα ένα μέσο ρεύμα αισθητήρα μικρότερο από 1uA. Όταν δεν υπάρχει σύνδεση BLE, ο ρυθμός μέτρησης είναι μία φορά κάθε 10 λεπτά και το μέσο ρεύμα παροχής αισθητήρα είναι αμελητέο.
Διεπαφή χρήστη
Πάνω είναι η κύρια οθόνη και μια μεγεθυμένη προβολή του ωριαίου ιστορικού 10 ημερών. Τα οικόπεδα μπορούν να μεγεθυνθούν και να εμφανιστούν και προς τις δύο κατευθύνσεις, χρησιμοποιώντας δύο δάχτυλα.
Η διεπαφή χρήστη κωδικοποιείται στο σκίτσο του Arduino και στη συνέχεια αποστέλλεται στο pfodApp στην πρώτη σύνδεση, όπου αποθηκεύεται για επαναλαμβανόμενη χρήση και ενημερώσεις. Η γραφική οθόνη είναι φτιαγμένη από σχέδια αρχέγονων. Δείτε το Custom Arduino Controls για Android για ένα σεμινάριο σχετικά με τον τρόπο δημιουργίας των δικών σας στοιχείων ελέγχου. Τα αρχεία Thermometer, RHGauge και Button περιέχουν τις εντολές σχεδίασης για αυτά τα στοιχεία.
Σημείωση: Καμία αν αυτή η οθόνη είναι ενσωματωμένη στο pfodApp. Ολόκληρη η οθόνη ελέγχεται πλήρως από τον κώδικα στο σκίτσο του Arduino
Η μέθοδος sendDrawing_z () στο σκίτσο lp_BLE_TempHumidity_R3.ino καθορίζει τη διεπαφή χρήστη.
void sendDrawing_z () {dwgs.start (50, 60, dwgs. WHITE); // το προεπιλεγμένο υπόβαθρο στο ΛΕΥΚΟ εάν παραλειφθεί, δηλ. έναρξη (50, 60). parser.sendRefreshAndVersion (30000); // ζητήστε ξανά dwg κάθε 30 δευτερόλεπτα. Αυτό αγνοείται εάν δεν έχει οριστεί έκδοση ανάλυσης // αγγίξτε τα πάνω κουμπιά για να αναγκάσετε τις ενημερώσεις στην οθόνη dwgs.touchZone (). cmd ('u'). μέγεθος (50, 39). αποστολή (); dwgs.pushZero (35, 22, 1.5); // μετακινήστε το μηδέν στο κέντρο του dwg σε 35, 22 και κλίμακα κατά 1,5 φορές rhGauge.draw (); // σχεδιάστε το στοιχείο ελέγχου dwgs.popZero (); dwgs.pushZero (18, 33); // μετακινήστε το μηδέν στο κέντρο του dwg έως το 18, η κλίμακα 33 είναι 1 (προεπιλογή) θερμόμετρο.draw (); // σχεδιάστε το στοιχείο ελέγχου dwgs.popZero ();
dwgs.pushZero (12,5, 43, 0,7); // μετακινήστε το μηδέν στο κέντρο του dwg σε 12,5, 43 και κλίμακα κατά 0,7
hrs8PlotButton.draw (); // σχεδιάστε το στοιχείο ελέγχου dwgs.popZero (); dwgs.pushZero (37,5, 43, 0,7); // μετακινήστε το μηδέν στο κέντρο του dwg σε 37,5, 43 και κλίμακα κατά 0,7 ημέρες1PlotButton.draw (); // σχεδιάστε το στοιχείο ελέγχου dwgs.popZero ();
dwgs.pushZero (12,5, 54, 0,7); // μετακινήστε το μηδέν στο κέντρο του dwg σε 12,5, 54 και κλίμακα κατά 0,7
days3PlotButton.draw (); // σχεδιάστε το στοιχείο ελέγχου dwgs.popZero (); dwgs.pushZero (37,5, 54, 0,7); // μετακινήστε το μηδέν στο κέντρο του dwg σε 37,5, 54 και κλίμακα κατά 0,7 ημέρες10PlotButton.draw (); // σχεδιάστε το στοιχείο ελέγχου dwgs.popZero (); dwgs.end (); }
Οι εντολές pushZero αλλάζουν την προέλευση και την κλιμάκωση για το σχέδιο του επόμενου στοιχείου. Αυτό σας επιτρέπει να αλλάξετε εύκολα το μέγεθος και τη θέση των κουμπιών και των μετρητών.
Στην πρώτη σύνδεση η αρχική οθόνη διαρκεί 5 ή 6 δευτερόλεπτα για να φορτώσει προς τα κάτω τα by 800 byte που ορίζουν την οθόνη. Το pfodApp αποθηκεύει προσωρινά την οθόνη, επομένως οι μελλοντικές ενημερώσεις πρέπει να στείλουν μόνο τις αλλαγές, τις θέσεις μέτρησης και τις ενδείξεις. Αυτές οι ενημερώσεις χρειάζονται μόνο μερικά δευτερόλεπτα για να στείλετε τα 128 byte που χρειάζονται για να ενημερώσετε την οθόνη.
Υπάρχουν πέντε (5) ενεργές ζώνες αφής που ορίζονται στην οθόνη. Κάθε κουμπί έχει ένα καθορισμένο στη μέθοδο σχεδίασης (), ώστε να μπορείτε να κάνετε κλικ σε αυτό για να ανοίξετε το αντίστοιχο διάγραμμα και το πάνω μισό της οθόνης διαμορφώνεται ως η τρίτη ζώνη αφής
dwgs.touchZone (). cmd ('u'). μέγεθος (50, 39). αποστολή ();
Όταν κάνετε κλικ στην οθόνη πάνω από τα κουμπιά, η εντολή 'u' dwg αποστέλλεται στο σκίτσο σας για να επιβάλει μια νέα μέτρηση και ενημέρωση οθόνης. Κανονικά όταν είναι συνδεδεμένο, οι ενημερώσεις γίνονται μόνο κάθε 30 δευτερόλεπτα. Κάθε κλικ ή ανανέωση του σχεδίου επιβάλλει μια νέα μέτρηση. Η απάντηση από το σκίτσο του Arduino στο pfodApp καθυστερεί έως ότου ολοκληρωθεί η νέα μέτρηση (~ 25mS), ώστε να αποσταλεί η τελευταία τιμή στην ενημέρωση.
Σκίτσο Arduino
Το Arduino Sketch, lp_BLE_TempHumidity_R3.ino, είναι μια βελτιωμένη έκδοση του παραδείγματος σκίτσου που χρησιμοποιείται στο Μέρος 1. Το σκίτσο lp_BLE_TempHumidity_R3.ino αντικαθιστά το μενού με το σχέδιο που φαίνεται παραπάνω. Προσθέτει επίσης την υποστήριξη αισθητήρα lp_Si7021 και συστοιχίες δεδομένων για την αποθήκευση των ιστορικών μετρήσεων 10 λεπτών και ωρών.
Η κύρια επιπλοκή στο σκίτσο lp_BLE_TempHumidity_R3.ino είναι η διαχείριση της αποστολής των δεδομένων του γραφήματος. Καθώς οι μετρήσεις γίνονται readRHResults () χειρίζεται τη συλλογή των αποτελεσμάτων και την αποθήκευσή τους στους ιστορικούς πίνακες. Οι πίνακες έχουν μήκος 120 αλλά όταν αποστέλλονται τα δεδομένα, τα πρώτα 30 σημεία δεδομένων προορίζονται για ένα λεπτότερο χρονικό διάστημα.
Υπάρχουν μερικά σημεία που πρέπει να προσέξετε κατά την αποστολή των 200 περιττών σημείων γραφικών για προβολή:-
- Κάθε σημείο δεδομένων έχει μήκος by 25 byte, σε μορφή κειμένου CSV. Έτσι, 150 πόντοι είναι 3750 byte δεδομένων. Η κλάση lp_BLESerial έχει ένα buffer 1536 byte, 1024 από τα οποία είναι αρκετά μεγάλο για το μεγαλύτερο μήνυμα pfod. Τα άλλα 512 byte προορίζονται για την αποστολή των δεδομένων. Μόλις τα ιστορικά δεδομένα συμπληρώσουν τα 512 byte, η αποστολή περαιτέρω δεδομένων καθυστερεί μέχρι να υπάρξει χώρος στο buffer.
- Για να αποφευχθεί η επιβράδυνση των δεδομένων γραφήματος των ενημερώσεων της κύριας οθόνης, τα δεδομένα γραφήματος αποστέλλονται μόνο ενώ εμφανίζεται η οθόνη του γραφήματος. Μόλις ο χρήστης επιστρέψει στην κύρια οθόνη, η αποστολή των δεδομένων του γραφήματος διακόπτεται. Η αποστολή των δεδομένων του γραφήματος συνεχίζεται όταν ο χρήστης κάνει κλικ στο κουμπί γραφήματος για να εμφανιστεί ξανά το γράφημα.
- Οι ιστορικές πλοκές ξεκινούν από το 0 (τώρα) και πηγαίνουν πίσω στο χρόνο. Εάν δεν υπήρξε νέα μέτρηση από την εμφάνιση του τελευταίου γραφήματος, τα προηγούμενα δεδομένα που είχαν ήδη ληφθεί εμφανίζονται ξανά αμέσως αμέσως. Εάν υπάρχει νέα μέτρηση, τότε προστίθεται στα προηγούμενα δεδομένα γραφήματος.
- Όταν η οθόνη ενεργοποιείται για πρώτη φορά, δεν υπάρχουν ιστορικές αναγνώσεις και το 0 αποθηκεύεται στους πίνακες ως μη έγκυρη ανάγνωση. Όταν εμφανίζεται η γραφική παράσταση, απλώς παραλείπονται μη έγκυρες ενδείξεις, με αποτέλεσμα μικρότερο διάγραμμα.
Κελσίου και Φαρενάιτ
Το σκίτσο lp_BLE_TempHumidity_R3.ino εμφανίζει και σχεδιάζει τα δεδομένα σε Κελσίου. Για να μετατρέψετε τα αποτελέσματα σε Φαρενάιτ αντικαταστήστε όλες τις εμφανίσεις του
parser.print (sensor. Temp_RawToFloat (..
με
parser.print (sensor. CtoF (sensor. Temp_RawToFloat (…
Και αντικαταστήστε το σύμβολο degic unicode στο Octal / 342 / 204 / 203 με το σύμβολο degF / 342 / 204 / 211
Το pfodApp θα εμφανίσει οποιοδήποτε Unicode μπορείτε να εμφανίσετε στο κινητό σας.
Ανατρέξτε στην ενότητα Χρήση χαρακτήρων μη ASCII στο Arduino για περισσότερες λεπτομέρειες. Αλλάξτε επίσης τις ρυθμίσεις MIN_C, MAX_C στο Thermometer.h. Τέλος ρυθμίστε τα όρια της πλοκής όπως θέλετε π.χ. αλλαγή | Temp C ~ 32 ~ 8 ~ deg C |
να πω
| Θερμοκρασία F ~ 90 ~ 14 ~ βαθμού F |
Βήμα 4: Μέτρηση του ρεύματος παροχής
Χρησιμοποιώντας τη βιβλιοθήκη lp_Si7021, ακόμη και η μέτρηση θερμοκρασίας/υγρασίας κάθε 10 δευτερόλεπτα συμβάλλει μόνο u 1uA στο μέσο ρεύμα παροχής, οπότε ο κύριος παράγοντας στο ρεύμα τροφοδοσίας και επομένως η διάρκεια ζωής της μπαταρίας είναι το ρεύμα που χρησιμοποιείται από τη διαφήμιση και τη σύνδεση και τη μετάδοση δεδομένων BLE. Το
Συνδέστε την πλακέτα θερμοκρασίας/υγρασίας στον προγραμματιστή που περιγράφεται στο μέρος 1, όπως φαίνεται παραπάνω.
Με τις ηλιακές κυψέλες και τις μπαταρίες αποσυνδεδεμένες, το Vin και το Gnd συνδέονται με τα Vdd και Gnd του προγραμματιστή (τα καλώδια του κίτρινου και του πράσινου) και τα SWCLK και SWDIO συνδέονται με το Clk και το SIO της πλακέτας κεφαλίδας του προγραμματιστή (τα μπλε και ροζ καλώδια)
Τώρα μπορείτε να προγραμματίσετε το NanoV2 και να μετρήσετε το ρεύμα τροφοδοσίας όπως περιγράφεται στο Μέρος 1.
Εγκαταστήστε τη βιβλιοθήκη Si7021 χαμηλής ισχύος από αυτό το αρχείο zip, lp_Si7021.zip και εγκαταστήστε τη βιβλιοθήκη pfodParser και αποσυμπιέστε το
Όπως αναφέρθηκε παραπάνω, η συμβολή του αισθητήρα είναι <1uA, κατά μέσο όρο, στο υψηλότερο ποσοστό μέτρησης που χρησιμοποιήθηκε σε αυτό το έργο, έτσι οι παράμετροι διαφήμισης και σύνδεσης BLE είναι ο καθοριστικός παράγοντας για τη διάρκεια ζωής της μπαταρίας.
Οι παράμετροι διαφήμισης και σύνδεσης BLE που επηρεάζουν την τρέχουσα κατανάλωση είναι: -Tx Power, Advertising Interval, Max and Mini Intervals Connection και Slave Latency.
Σημείωση: Χρησιμοποιώντας τις παραπάνω συνδέσεις υπάρχουν δύο (2) ρυθμιστές στην παροχή, μία στην πλακέτα NanoV2 μέσω Vin και την MAX8881 στην τροφοδοσία του προγραμματιστή. Αυτό σημαίνει ότι τα μετρημένα ρεύματα παροχής θα είναι ~ 5uA υψηλότερα από τα πραγματικά, λόγω του δεύτερου ρυθμιστή. Οι τιμές που αναφέρονται παρακάτω είναι τα μετρημένα ρεύματα μείον αυτό το επιπλέον 5uA.
Tx Power
Tx εφέ ισχύος τροφοδοτούν ρεύμα τόσο όταν είναι συνδεδεμένο όσο και κατά τη διαφήμιση (δεν είναι συνδεδεμένο). Αυτό το έργο χρησιμοποιεί τη ρύθμιση μέγιστης ισχύος (+4) και παρέχει το καλύτερο εύρος και μεγαλύτερη θόρυβο για τις πιο αξιόπιστες συνδέσεις. Μπορείτε να χρησιμοποιήσετε τη μέθοδο lp_BLESerial setTxPower () για να αλλάξετε τη ρύθμιση ισχύος. Οι έγκυρες τιμές είναι, σε αυξανόμενη ισχύ, -40, -30, -20, -16, -12, -8, -4, 0 +4. Πρέπει να καλέσετε τη μέθοδο lp_BLESerial begin () ΠΡΙΝ καλέσετε το setTxPower (). Δείτε το σκίτσο lp_BLE_TempHumidity_R3.ino.
Μπορείτε να πειραματιστείτε με τη μείωση της ισχύος Tx, αλλά ο συμβιβασμός είναι μικρότερης εμβέλειας και περισσότερες διακοπές σύνδεσης λόγω παρεμβολών. Σε αυτό το έργο το Tx Power παραμένει στην προεπιλογή του, +4. Όπως θα δείτε παρακάτω, ακόμη και με αυτήν τη ρύθμιση, πολύ χαμηλό ρεύμα παροχής είναι ακόμα δυνατό.
Διαστήματα διαφήμισης
Για μια δεδομένη ισχύ Tx, όταν δεν υπάρχει σύνδεση, το Διάστημα Διαφήμισης ορίζει τη μέση τρέχουσα κατανάλωση. Το συνιστώμενο εύρος είναι 500 έως 1000mS. Εδώ χρησιμοποιήθηκε 2000mS. Ο συμβιβασμός είναι ότι τα μεγαλύτερα διαστήματα διαφήμισης σημαίνουν ότι το κινητό σας είναι πιο αργό να βρει τη συσκευή και να δημιουργήσει μια σύνδεση. Εσωτερικά, τα διαστήματα διαφήμισης ορίζονται πολλαπλάσια των 0,625mS στην περιοχή 20mS έως 10,24sec. Η μέθοδος lp_BLESerial setAdvertisingInterval () λαμβάνει το mS ως επιχείρημα, για ευκολία. Για διαστήματα διαφήμισης +4 TxPower και 2000mS, η τρέχουσα κατανάλωση ήταν u 18uA. Για διαφημιστικό διάστημα 1000mS, ήταν 29uA. Το Rev 2 χρησιμοποίησε διαφημιστικό διάστημα 2000mS, αλλά αυτό οδήγησε σε αργές συνδέσεις. Το Rev 3 άλλαξε σε διάστημα διαφήμισης 1000mS για να γίνουν ταχύτερες συνδέσεις.
Μεγάλα και ελάχιστα διαστήματα σύνδεσης
Μόλις δημιουργηθεί μια σύνδεση, το διάστημα σύνδεσης καθορίζει πόσο συχνά το κινητό επικοινωνεί με τη συσκευή. Το lp_BLESerial setConnectionInterval () σάς επιτρέπει να ορίσετε το προτεινόμενο μέγιστο και ελάχιστο, ωστόσο το κινητό ελέγχει ποιο είναι πραγματικά το διάστημα σύνδεσης. Για ευκολία, τα ορίσματα για να ορίσετε τοConnectionInterval () είναι σε mS, αλλά εσωτερικά τα διαστήματα σύνδεσης είναι πολλαπλάσια του 1,25mS, στο εύρος 7,5mS έως 4sec.
Η προεπιλεγμένη ρύθμιση έχει οριστείConnectionInterval (100, 150), δηλαδή min 100mS έως max 150mS. Η αύξηση αυτών των τιμών μειώνει το ρεύμα παροχής ενώ είναι συνδεδεμένο, αλλά ο συμβιβασμός είναι η πιο αργή μετάδοση δεδομένων. Κάθε ενημέρωση της οθόνης λαμβάνει περίπου 7 μηνύματα BLE, ενώ οι πλήρεις μετρήσεις 36 ωρών των 10 λεπτών χρειάζονται περίπου 170 μηνύματα BLE. Έτσι, η αύξηση των διαστημάτων σύνδεσης επιβραδύνει τις ενημερώσεις της οθόνης και εμφανίζεται η γραφική παράσταση.
Η κλάση lp_BLESerial έχει ένα buffer αποστολής 1536 byte και στέλνει μόνο ένα μπλοκ 20 byte από αυτό το buffer, κάθε μέγιστο διάστημα σύνδεσης για να αποφευχθεί η πλημμύρα του συνδέσμου BLE με δεδομένα. Επίσης, κατά την αποστολή δεδομένων γραφήματος, το σκίτσο στέλνει δεδομένα μόνο έως ότου περιμένουν να σταλούν 512 byte και στη συνέχεια καθυστερεί την αποστολή περισσότερων δεδομένων έως ότου αποσταλούν ορισμένα δεδομένα. Με αυτόν τον τρόπο αποφεύγεται το buffer αποστολής πλημμύρας. Αυτή η πτώση των αποστολών καθιστά τη μετάδοση δεδομένων στο κινητό αξιόπιστη, αλλά δεν είναι βελτιστοποιημένη για μέγιστο μέσω put.
Σε αυτό το έργο τα διαστήματα σύνδεσης αφέθηκαν ως προεπιλεγμένες τιμές.
Slave Latency
Όταν δεν υπάρχουν δεδομένα για αποστολή στο κινητό, η συσκευή μπορεί προαιρετικά να αγνοήσει ορισμένα από τα μηνύματα σύνδεσης από το κινητό. Αυτό εξοικονομεί Tx Power και ρεύμα τροφοδοσίας. Η ρύθμιση Slave Latency είναι ο αριθμός των μηνυμάτων σύνδεσης που πρέπει να αγνοήσετε. Η προεπιλογή είναι 0. Η μέθοδος lp_BLESerial setSlaveLatency () μπορεί να χρησιμοποιηθεί για την αλλαγή αυτής της ρύθμισης.
Το προεπιλεγμένο Slave Latency του 0 έδωσε ρεύμα τροφοδοσίας u 50uA, αγνοώντας τις ενημερώσεις οθόνης κάθε 30 δευτερόλεπτα, αλλά συμπεριλαμβανομένων των μηνυμάτων keepAlive πολύ 5 δευτερόλεπτα. Η ρύθμιση του Slave Latency σε 2 έδωσε ένα μέσο συνδεδεμένο ρεύμα παροχής ~ 25uA. Μια ρύθμιση Slave Latency 4 έδωσε u 20uA. Οι υψηλότερες ρυθμίσεις δεν φαίνεται να μειώνουν το ρεύμα τροφοδοσίας, οπότε χρησιμοποιήθηκε μια ρύθμιση Slave Latency 4.
Όταν είναι συνδεδεμένο, κάθε 30 δευτερόλεπτα το pfodApp ζητά μια ενημέρωση οθόνης. Αυτό αναγκάζει μια μέτρηση αισθητήρα και στέλνει πίσω δεδομένα για ενημέρωση της γραφικής οθόνης. Αυτή η ενημέρωση οδηγεί σε επιπλέον u 66uA για 2 δευτερόλεπτα κάθε 30 δευτερόλεπτα. Αυτό είναι κατά μέσο όρο 4,4uA στα 30 δευτερόλεπτα. Προσθέτοντας αυτό στα 20uA, δίνει ένα μέσο ρεύμα παροχής σύνδεσης ~ 25uA
Βήμα 5: Συνολικό ρεύμα τροφοδοσίας και διάρκεια ζωής της μπαταρίας
Χρησιμοποιώντας τις παραπάνω ρυθμίσεις, όπως ορίζονται στο lp_BLE_TempHumidity_R3.ino, το συνολικό ρεύμα παροχής όταν είναι συνδεδεμένο και ενημερώνετε την οθόνη κάθε 30 δευτερόλεπτα, περίπου 25uA. Όταν δεν είναι συνδεδεμένο, είναι περίπου 29uA.
Για τον υπολογισμό της διάρκειας ζωής της μπαταρίας, υποτίθεται ότι υπάρχει συνεχές ρεύμα draw 29uA.
Διάφορες μπαταρίες έχουν διαφορετική χωρητικότητα και χαρακτηριστικά τάσης. Οι μπαταρίες που εξετάζονται εδώ είναι κυψέλες νομισμάτων CR2032, κυψέλες νομισμάτων CR2450 (N), 2 x AAA Alkaline, 2 x AAA Lithium και LiPo.
Περίληψη μπαταρίας
Εάν χρησιμοποιείτε Solar Assist, προσθέστε 50% σε αυτούς τους αριθμούς διάρκειας ζωής της μπαταρίας (υποθέτοντας 8 ώρες φως την ημέρα)
Σημείωση: Ο πυκνωτής 22uF LowESR (C1), εκτός από τον ενσωματωμένο πυκνωτή NanoV2 22uF, αποθηκεύει το ρεύμα του ηλιακού κυττάρου και στη συνέχεια το παρέχει για τους παλμούς ρεύματος TX. Κατά τα άλλα, η μπαταρία παρέχει μέρος του ρεύματος TX. Αυτό το πρόσθετο χαμηλό 22UF LowESR προσθέτει περίπου 10% στο ρεύμα της μπαταρίας όταν η ηλιακή κυψέλη δεν είναι η τροφοδοσία, αλλά επίσης παρατείνει τη διάρκεια ζωής της μπαταρίας αντισταθμίζοντας την αυξανόμενη εσωτερική αντίσταση της μπαταρίας καθώς η μπαταρία φτάνει στο τέλος της ζωής της. Οι παρακάτω μετρήσεις έγιναν ΧΩΡΙΣ τον επιπλέον πυκνωτή 22uF.
CR2032 - 235mAHr - διάρκεια ζωής μπαταρίας 10 μήνες CR2450 (Β) - 650mAHr (540mAHr) - διάρκεια ζωής μπαταρίας 2,3 έτη (2 έτη) 2 x AAA Alkaline - 1250mAHr - διάρκεια ζωής μπαταρίας 3,8. Έτη 2 x AAA Λιθίου - 1200mAHr - διάρκεια ζωής μπαταρίας 4,7 χρόνια - συνιστάται επαναφόρτιση λόγω υψηλής αυτοεκφόρτωσης.
CR2032
Αυτό το κελί νομίσματος έχει χωρητικότητα τυπικά 235mAHr (μπαταρία Energizer), ονομαστική τάση 3V και καθορισμένη τάση εκφόρτισης 2V. Αυτό συνεπάγεται διάρκεια ζωής μπαταρίας 8100 ωρών ή 9 0,9 ετών. Ωστόσο, η εσωτερική αντίσταση των κυψελών αυξάνεται καθώς η μπαταρία φτάνει στο τέλος της ζωής της και έτσι μπορεί να μην είναι σε θέση να παρέχει τους κορυφαίους παλμούς ρεύματος Tx. Ένας μεγαλύτερος πυκνωτής τροφοδοσίας μπορεί να χρησιμοποιηθεί για τη μείωση αυτού του φαινομένου, αλλά ας πούμε 10 μήνες ζωής.
CR2450 (Β)
Αυτό το κελί νομίσματος έχει χωρητικότητα τυπικά 620mAHr (540mAHr για CR2450N), ονομαστική τάση 3V και καθορισμένη τάση εκφόρτισης 2V. Αυτό συνεπάγεται διάρκεια ζωής μπαταρίας 22, 400 ωρών ή yr 2 ετών 6 εκ. (18600 ώρες ~ 2 έτη 2 εκ. Για CR2450N). Ωστόσο, η εσωτερική αντίσταση των κυψελών αυξάνεται καθώς η μπαταρία φτάνει στο τέλος της ζωής της και έτσι μπορεί να μην είναι σε θέση να παρέχει τους κορυφαίους παλμούς ρεύματος Tx. Ένας μεγαλύτερος πυκνωτής τροφοδοσίας μπορεί να χρησιμοποιηθεί για τη μείωση αυτού του φαινομένου, αλλά ας πούμε 2 χρόνια 4 μέτρα (2 έτη Β).
Σημείωση: Η έκδοση CR2450N έχει πιο χοντρό χείλος που βοηθά στην αποφυγή λανθασμένης εγκατάστασης σε θήκη CR2450N. Μπορείτε να εισαγάγετε μια κυψέλη CR2450N και CR2450 σε μια θήκη CR2450 αλλά δεν μπορείτε να εισαγάγετε μια κυψέλη CR2450 σε μια θήκη CR2450N
2 x ΑΛΑ αλκαλικά κύτταρα
Αυτές οι μπαταρίες έχουν χωρητικότητα περίπου 1250mAHr (μπαταρία Energizer) για πολύ χαμηλά ρεύματα, ονομαστική τάση 2x1.5V = 3V και καθορισμένη τάση εκφόρτισης 2x0.8V = 1.6V. Αλλά αυτή η καθορισμένη τάση εκφόρτισης είναι μικρότερη από την τάση λειτουργίας του αισθητήρα Si7021 (1,9V), οπότε η μπαταρία μπορεί να χρησιμοποιηθεί μόνο έως ~ 1V το καθένα. Αυτό μειώνει τη χωρητικότητα κατά περίπου 10% έως 15%, δηλαδή ~ 1000mAHr.
Αυτό συνεπάγεται διάρκεια ζωής μπαταρίας 34, 500 ωρών ή ~ 4 ετών. Ωστόσο, η εσωτερική αντίσταση των κυψελών αυξάνεται καθώς η μπαταρία φτάνει στο τέλος της ζωής της και έτσι μπορεί να μην είναι σε θέση να παρέχει τους κορυφαίους παλμούς ρεύματος Tx. Ένας μεγαλύτερος πυκνωτής τροφοδοσίας μπορεί να χρησιμοποιηθεί για να μειώσει αυτό το φαινόμενο, αλλά ας πούμε 3 χρόνια 10 μέτρα ζωής. Σημείωση Οι αλκαλικές μπαταρίες έχουν αυτοεκφόρτιση 2% έως 3% ετησίως.
2 x κύτταρα λιθίου AAA
Αυτές οι μπαταρίες έχουν χωρητικότητα περίπου 1200mAHr (μπαταρία Energizer), ονομαστική τάση 2x1.7V = 3.4V, σε χαμηλά ρεύματα και τάση εκφόρτισης 2x1.4V = 2.4V. Αυτό συνεπάγεται διάρκεια ζωής μπαταρίας 41, 400 ωρών ή 4 ετών 8 μέτρων.
Επαναφορτιζόμενη μπαταρία LiPo
Αυτές οι μπαταρίες έρχονται σε διάφορες χωρητικότητες από 100mAHr έως 2000mAHr, σε επίπεδες μορφές, και έχουν φορτισμένη τάση 4,2V και τάση εκφόρτισης> 2,7V. Ωστόσο, έχουν υψηλή αυτοεκφόρτιση 2% -3%/μήνα (δηλαδή 24% έως 36% ετησίως) και επομένως δεν είναι τόσο κατάλληλα για αυτήν την εφαρμογή όσο οι άλλες μπαταρίες.
Βήμα 6: Εναλλακτικές προμήθειες - Ηλιακή βοήθεια, Μόνο μπαταρία, Μόνο ηλιακή
Μπαταρία συν Solar Assist
Η παραπάνω κατασκευή χρησιμοποιεί την παροχή Battery plus Solar Assist. Όταν τα ηλιακά πάνελ παράγουν περισσότερη τάση από την τάση της μπαταρίας, τα ηλιακά κύτταρα θα τροφοδοτήσουν την οθόνη, αυξάνοντας έτσι τη διάρκεια ζωής της μπαταρίας. Συνήθως η διάρκεια ζωής της μπαταρίας μπορεί να παραταθεί κατά άλλο 50%.
Τα ηλιακά πάνελ που χρησιμοποιούνται είναι μικρά, 50mm x 30mm, φθηνά, 50 0,50 $ και χαμηλής ισχύος. Είναι ονομαστικά πάνελ 5V, αλλά χρειάζονται πλήρες άμεσο φωτεινό ηλιακό φως για να παράγουν 5V. Σε αυτό το έργο δύο πάνελ συνδέονται σε σειρά, έτσι ώστε η τοποθέτηση της οθόνης σε σημείο κοντά στο παράθυρο, μακριά από τον άμεσο ήλιο, να είναι αρκετή για να αντικαταστήσει την ισχύ της μπαταρίας. Ακόμα και καλά φωτισμένο δωμάτιο, ή ένας λαμπτήρας γραφείου, είναι αρκετά για τα ηλιακά κύτταρα να παράγουν> 3,3V σε> 33uA και να αναλάβουν τη μπαταρία.
Κατασκευάστηκε ένας απλός πίνακας δοκιμών για να καθοριστεί πού θα μπορούσε να τοποθετηθεί η οθόνη θερμοκρασίας / υγρασίας, μακριά από τον ήλιο και να εξακολουθεί να λειτουργεί με ηλιακή ενέργεια. Όπως μπορείτε να δείτε από την παραπάνω φωτογραφία, τα δύο πάνελ που συνδέονται με μια αντίσταση 100K παράγουν 5,64V σε όλη την 100K, δηλαδή ρεύμα 56uA στα 5,64V. Αυτό είναι κάτι παραπάνω από επαρκής ανάληψη τροφοδοσίας της οθόνης από την μπαταρία. Οποιαδήποτε ένδειξη τάσης πάνω από την ονομαστική τάση της μπαταρίας των 3V σημαίνει ότι οι ηλιακές κυψέλες θα τροφοδοτούν την οθόνη αντί της μπαταρίας.
Οι δύο δίοδοι στο κύκλωμα Temperature Humidity Monitor απομονώνουν τις ηλιακές κυψέλες και τις μπαταρίες η μία από την άλλη και προστατεύονται από τη σύνδεση τους σε αντίστροφη πολικότητα. Η αντίσταση 10V 1W zener και σειράς 470R προστατεύει τον ενσωματωμένο ρυθμιστή του NanoV2 από υπερβολική τάση από δύο ηλιακά κύτταρα σε πλήρη ηλιοφάνεια, ιδιαίτερα εάν τυχαίνει να χρησιμοποιούνται 12V αντί για 5V. Σε κανονική λειτουργία σε <5V, το zener 10V αντλεί μόνο ~ 1uA.
Μόνο μπαταρία
Για παροχή μπαταρίας μόνο, παραλείψτε τα R1, D1 και D3 και τα ηλιακά κύτταρα. Μπορείτε επίσης να αντικαταστήσετε το D1 με ένα κομμάτι σύρμα εάν δεν θέλετε προστασία αντίστροφης πολικότητας.
Μόνο ηλιακός
Η τροφοδοσία της οθόνης μόνο από ηλιακά κελιά, χωρίς μπαταρία, απαιτεί διαφορετικό κύκλωμα τροφοδοσίας. Το πρόβλημα είναι ότι ενώ η οθόνη θα λειτουργεί με 29uA, με την ενεργοποίηση, το nRF52 αντλεί m 5mA για 0,32 sec. Το παραπάνω κύκλωμα (έκδοση pdf) κρατά τον ρυθμιστή MAX8881 απενεργοποιημένο έως ότου οι πυκνωτές εισόδου, 2 x 1000uF, φορτίσουν έως 4,04V. Στη συνέχεια, το MAX6457 απελευθερώνει την είσοδο MAX8881 SHDN για ενεργοποίηση του nRF52 (NanoV2). Οι πυκνωτές 2 x 1000uF παρέχουν το απαραίτητο ρεύμα εκκίνησης.
Αυτό επιτρέπει στην οθόνη να ενεργοποιείται μόλις υπάρχει αρκετή ηλιακή ενέργεια και να τη διατηρήσει σε λειτουργία στα 29uA.
Βήμα 7: Συμπέρασμα
Αυτό το σεμινάριο έχει παρουσιάσει μια μπαταρία/ηλιακό Temperature Humidity Monitor ως παράδειγμα πολύ χαμηλής ισχύος BLE project στο Arduino για το τσιπ nRF52832. Τροφοδοτήστε ρεύματα ~ 29uA όπου επιτυγχάνεται με τον συντονισμό των παραμέτρων σύνδεσης. Αυτό είχε ως αποτέλεσμα η διάρκεια ζωής της μπαταρίας νομισμάτων CR2032 να υπερβαίνει τους 10 μήνες. Μεγαλύτερο για κυψέλες νομισμάτων και μπαταρίες υψηλότερης χωρητικότητας. Η προσθήκη δύο φθηνών ηλιακών κυττάρων επέκτεινε εύκολα τη διάρκεια ζωής της μπαταρίας κατά 50% ή περισσότερο. Ένα φωτεινό φως δωματίου ή ένας λαμπτήρας γραφείου είναι αρκετό για να τροφοδοτήσει την οθόνη από τα ηλιακά κύτταρα.
Παρουσιάστηκε ένα ειδικό κύκλωμα ισχύος για να επιτρέψει στην οθόνη να λειτουργεί καθαρά από ηλιακά κύτταρα χαμηλής χωρητικότητας.
Το δωρεάν pfodDesigner σάς επιτρέπει να σχεδιάζετε μενού/υπομενού, να σχεδιάζετε με βάση ημερομηνία/ώρα και να καταγράφετε δεδομένα και στη συνέχεια να δημιουργείτε το σκίτσο Arduino χαμηλής ισχύος για εσάς. Εδώ μια προσαρμοσμένη διεπαφή κωδικοποιήθηκε χρησιμοποιώντας πρωτόγονα σχεδίασης pfodApp. Η σύνδεση με το pfodApp εμφανίζει τη διεπαφή χρήστη και ενημερώνει τις ενδείξεις ενώ η οθόνη χρησιμοποιεί u 29uA
Δεν απαιτείται προγραμματισμός Android. Το pfodApp χειρίζεται όλα αυτά.
Συνιστάται:
Αποστολή δεδομένων ασύρματου αισθητήρα θερμοκρασίας και υγρασίας στο Excel: 34 βήματα
Αποστολή δεδομένων ασύρματου αισθητήρα θερμοκρασίας και υγρασίας στο Excel: Χρησιμοποιούμε εδώ τον αισθητήρα θερμοκρασίας και υγρασίας του NCD, αλλά τα βήματα παραμένουν ίσα για οποιοδήποτε από τα προϊόντα ncd, οπότε αν έχετε άλλους ασύρματους αισθητήρες ncd, μπορείτε να παρατηρήσετε ελεύθερα παράλληλα. Με τη διακοπή αυτού του κειμένου, πρέπει να
DHT12 (i2c φθηνός αισθητήρας υγρασίας και θερμοκρασίας), γρήγορη εύκολη χρήση: 14 βήματα
DHT12 (i2c Φτηνός αισθητήρας υγρασίας και θερμοκρασίας), γρήγορη εύκολη χρήση: Μπορείτε να βρείτε ενημερώσεις και άλλα στον ιστότοπό μου https://www.mischianti.org/2019/01/01/dht12-library-el/ Μου αρέσει ο αισθητήρας που μπορεί να χρησιμοποιηθεί με 2 καλώδια (πρωτόκολλο i2c), αλλά μου αρέσει το φθηνό. Αυτή είναι μια βιβλιοθήκη Arduino και esp8266 για τη σειρά DHT12 o
Εύκολο πολύ χαμηλής ισχύος BLE στο Arduino Μέρος 3 - Αντικατάσταση Nano V2 - Rev 3: 7 βήματα (με εικόνες)
Εύκολη πολύ χαμηλής ισχύος BLE στο Arduino Μέρος 3 - Αντικατάσταση Nano V2 - Αναθ. 3: Ενημέρωση: 7 Απριλίου 2019 - Αναθ. 3 του lp_BLE_TempHumidity, προσθέτει γραφήματα ημερομηνίας/ώρας, χρησιμοποιώντας το pfodApp V3.0.362+και αυτόματη ενεργοποίηση κατά την αποστολή δεδομένων Ενημέρωση: 24 Μαρτίου 2019 - Rev 2 του lp_BLE_TempHumidity, προσθέτει περισσότερες επιλογές σχεδίου και i2c_ClearBus, προσθέτει GT832E
ESP32 NTP Θερμόμετρο μαγειρέματος θερμοκρασίας ανιχνευτή θερμοκρασίας με διόρθωση και συναγερμό θερμοκρασίας Steinhart-Hart .: 7 βήματα (με εικόνες)
ESP32 NTP Θερμόμετρο Θερμόμετρο μαγειρέματος με διόρθωση και συναγερμό θερμοκρασίας Steinhart-Hart .: Ακόμα στο ταξίδι για να ολοκληρώσετε ένα «επερχόμενο έργο», ", ESP32 NTP Temperature Probe Cooking Thermometer With Steinhart-Hart Correction and Temperature Alarm " είναι ένας οδηγός που δείχνει πώς προσθέτω έναν αισθητήρα θερμοκρασίας NTP, piezo b
WiFi IoT Αισθητήρας θερμοκρασίας και υγρασίας. Μέρος: 8 IoT, Αυτοματισμός σπιτιού: 9 βήματα
WiFi IoT Αισθητήρας θερμοκρασίας και υγρασίας. Μέρος: 8 IoT, Αυτοματισμός σπιτιού: ΠροοίμιοΑυτό το άρθρο τεκμηριώνει την πρακτική ανθεκτική και συνεχή ανάπτυξη ενός παλαιότερου Instructable: «Pimping» της πρώτης σας συσκευής IoT WiFi. Μέρος 4: IoT, Home Automation που περιλαμβάνει όλη την απαραίτητη λειτουργικότητα λογισμικού για να ενεργοποιηθεί η επιτυχία