» Ηλεκτρονικά » Arduino »Ρολόι Arduino με αισθητήρα θερμοκρασίας και χωρίς RTS

Ρολόι Arduino με αισθητήρα θερμοκρασίας και χωρίς RTS

Ρολόι Arduino με αισθητήρα θερμοκρασίας και χωρίς RTS

Καλησπέρα, σήμερα θα μοιραστώ οδηγίες για το πώς να φτιάξω ένα ρολόι με ένα θερμόμετρο δωματίου. Το ρολόι τρέχει Arduino UNO, WG12864B γραφική οθόνη χρησιμοποιείται για την εμφάνιση του χρόνου και της θερμοκρασίας. Ως αισθητήρας θερμοκρασίας - ds18b20. Σε αντίθεση με τα περισσότερα άλλα ρολόγια, δεν θα χρησιμοποιήσω το ρολόι πραγματικού χρόνου (RTS), αλλά προσπαθήστε να το κάνετε χωρίς αυτήν την πρόσθετη ενότητα.

Για αυτό σπιτικό Απαιτούνται τα ακόλουθα στοιχεία:
- Arduino UNO (ή οποιοδήποτε άλλο συμβούλιο συμβατό με Arduino)
- Γραφική οθόνη WG12864B
- αισθητήρας θερμοκρασίας ds18b20
- Αντίσταση 4.7 Kom 0,25 W
- Αντίσταση 100 ohm 0,25 W
- Θήκη μπαταριών για 4 μπαταρίες "δακτύλου"
- Κατάλληλο κιβώτιο
- Μικρό αρχείο
- Βερνίκι νυχιών (μαύρο ή χρώμα σώματος)
- Ένα μικρό λεπτό πλαστικό ή χαρτόνι
- ηλεκτρική ταινία
- σύνδεση καλωδίων
- πλακέτα κυκλώματος
- Κουμπιά
- συγκολλητικό σίδερο
- Κόλλα, κολοφώνιο
- Ταινία διπλής όψης

Βήμα 1 Προετοιμασία του περιβλήματος.
Έτσι, τα ρολόγια μας πρέπει να βρίσκονται κάπου. Πρέπει να βρείτε ένα κατάλληλο κουτί. Το κύριο πράγμα είναι ότι η οθόνη WG12864B, το Arduino και ένα μικρό κύκλωμα για κουμπιά ταιριάζουν σε αυτό. Το ελάχιστο μέγεθος του κουτιού είναι 7 x 7 x 10 cm. Εάν χρησιμοποιείτε ένα μικρό board Arduino, μπορείτε να το τοποθετήσετε σε κουτί και μικρότερο, αλλά θα περιγράψω τη διαδικασία χρησιμοποιώντας το Arduino UNO ως παράδειγμα. Το υλικό από το οποίο κατασκευάζεται το κιβώτιο είναι κατά προτίμηση πλαστικό, αν, όπως και το δικό μου, είναι σίδερο, αξίζει να ληφθεί μέριμνα για τη μόνωση, ώστε να μην υπάρχει τίποτα να «πάει γύρω» μέσα. Το πλαστικό προτιμάται επειδή είναι ευκολότερο να κοπεί. Με ένα κουτί, είναι η περίπτωση των ρολογιών μας, αποφάσισε. Τώρα είναι απαραίτητο να κοπεί ένα παράθυρο κάτω από την οθόνη μέτρησης 6.5x4 cm. Εάν το κουτί είναι σίδερο, είναι εξαιρετικά δύσκολο να το κάνουμε προσεκτικά. Ανεξαρτήτως του τρόπου με τον οποίο θα προσπαθήσετε, θα υπάρξει ψιλοκομμένο χρώμα και τραχύτητα κοντά στην περικοπή. Επομένως, πρώτα το κόψουμε, γι 'αυτό μπορείτε να χρησιμοποιήσετε τον "μύλο", ένα τρυπάνι με ακροφύσιο για κόψιμο ή φρεζάρισμα, γενικά, της επιλογής σας, με αυτό που υπάρχει. Μετά από αυτό, καθαρίζουμε τις άκρες με ένα αρχείο. Χρωματίζουμε όλα τα πελεκημένα χρώματα με βερνίκι νυχιών, κατάλληλο χρώμα. Το αποτέλεσμα θα πρέπει να είναι το ακόλουθο:


Βήμα 2 Προετοιμάστε την οθόνη γραφικών.
Με τη σύνδεση της οθόνης, με την πρώτη ματιά, προκύπτουν πολλά προβλήματα και δυσκολίες. Αλλά αν ασχοληθείτε πρώτα με τους τύπους τους, θα γίνει πολύ πιο εύκολο και πιο κατανοητό. Υπάρχουν πολλές παραλλαγές και τύποι οθονών στον ελεγκτή ks0107 / ks0108.Όλες οι οθόνες χωρίζονται συνήθως σε 4 τύπους:
Επιλογή A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Επιλογή B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, Απεικόνιση AZ AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG1286464J-1, QY1286464JF, 2 QY
Επιλογή C: Shenzhen Jinghua Εμφανίζει Co Ltd Jm12864
Επιλογή D: Wintek-Cascades WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202

Η λίστα δεν είναι πλήρης, υπάρχουν πολλά από αυτά. Το πιο κοινό και, κατά τη γνώμη μου, βολικό WG12864B3 V2.0. Η οθόνη μπορεί να συνδεθεί στο Arduino μέσω σειριακής ή παράλληλης θύρας. Όταν χρησιμοποιείται με το Arduino UNO, είναι καλύτερο να επιλέξουμε μια σύνδεση σειριακής θύρας - τότε χρειάζονται μόνο 3 εξόδους του μικροελεγκτή αντί για τουλάχιστον 13 γραμμές όταν συνδέονται μέσω μιας παράλληλης θύρας. Όλα συνδέονται απλά. Υπάρχει ακόμα μία απόχρωση, δύο τύποι οθονών μπορούν να βρεθούν προς πώληση, με ενσωματωμένο ποτενσιόμετρο (για ρύθμιση της αντίθεσης) και χωρίς αυτό. Έχω επιλέξει και σας συμβουλεύω να κάνετε το ίδιο και με το ενσωματωμένο.


Αυτό μειώνει τον αριθμό των εξαρτημάτων και το χρόνο συγκόλλησης. Αξίζει επίσης να τεθεί μια αντίσταση περιορισμού ρεύματος 100 Ohms για τον οπίσθιο φωτισμό. Συνδέοντας απευθείας 5 βολτ, υπάρχει κίνδυνος καύσης του φωτισμού.
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5V
4 (RS) -10
5 (R / W) - 11
6 (Ε) - 13
15 (PSB) - GND
19 (BLA) - μέσω της αντίστασης - + 5V
20 (BLK) - GND

Το πιο βολικό είναι να συλλέγετε τα πάντα πίσω από την οθόνη και να εξάγετε 5 καλώδια από αυτό για να συνδεθείτε με το Arduino UNO. Το αποτέλεσμα θα πρέπει να είναι κάτι τέτοιο:


Για όσους εξακολουθούν να επιλέγουν μια παράλληλη σύνδεση, θα δώσω ένα πίνακα σύνδεσης.


Και η διάταξη για τις οθόνες της επιλογής Β:


Βήμα 3 Συνδέστε τον αισθητήρα θερμοκρασίας.
Όπως είπα, θα χρησιμοποιήσουμε τον ενσωματωμένο αισθητήρα DS18B20 για τη μέτρηση της θερμοκρασίας. Το διάλεξα για την υψηλή ακρίβεια μέτρησης, το σφάλμα δεν είναι περισσότερο από 0.5 ° C. Ο αισθητήρας βαθμονομείται κατά τη στιγμή της κατασκευής · δεν απαιτούνται πρόσθετες ρυθμίσεις. Εύρος μέτρησης θερμοκρασίας -55 ... + 125 ° C. Υπάρχουν δύο τρόποι λειτουργίας: με εξωτερική πηγή τροφοδοσίας και "ψευδής ισχύς". Κατά τη λειτουργία σε λειτουργία εξωτερικής τροφοδοσίας, η σύνδεση είναι ως εξής:


Όταν χρησιμοποιείται "ψευδής ισχύς" ο αισθητήρας λαμβάνει ενέργεια από τη γραμμή επικοινωνίας. Σε αυτή τη λειτουργία, δύο καλώδια είναι αρκετά για να συνδέσετε το ds18b20 στον μικροελεγκτή. Ο εσωτερικός πυκνωτής του αισθητήρα φορτίζεται λόγω της ενέργειας στη γραμμή επικοινωνίας σε χαμηλό επίπεδο στον δίαυλο. Η λειτουργία "παρασιτικής διατροφής" έχει πολλά χαρακτηριστικά και επομένως δεν συνιστώ να τη χρησιμοποιήσετε. Αλλά αν αποφασίσετε να το χρησιμοποιήσετε, εδώ είναι το διάγραμμα:


Ή μπορείτε να χρησιμοποιήσετε ένα βελτιωμένο διάγραμμα συνδεσμολογίας όταν χρησιμοποιείτε "ψευδή ισχύ":


Διάφοροι αισθητήρες μπορούν να συμπεριληφθούν σε μία γραμμή επικοινωνίας. Για τα ρολόγια μας αρκεί. Συνδέουμε το καλώδιο από τον ακροδέκτη ds18b20 "DQ" στο "pin 5" Arduino UNO.

Βήμα 4 Προετοιμασία πίνακα με κουμπιά.
Για να ρυθμίσετε την ώρα και την ημερομηνία στο ρολόι, θα χρησιμοποιήσουμε τρία κουμπιά. Για ευκολία, κολλήστε τα τρία κουμπιά στην πλακέτα κυκλώματος και βγάλτε το καλώδιο.


Συνδέουμε ως εξής: το σύρμα κοινό και στα τρία κουμπιά συνδέεται με το "GND" Arduino. Το πρώτο κουμπί, το οποίο χρησιμεύει για να εισέλθει στη λειτουργία ρύθμισης του χρόνου και να αλλάξει την ώρα και την ημερομηνία, συνδέεται με το "Pin 2". Το δεύτερο, το κουμπί για την αύξηση της τιμής, πηγαίνει στο "Pin 3", και το τρίτο, το κουμπί για τη μείωση της τιμής, πηγαίνει στο "Pin 4".

Βήμα 5 Όλα μαζί.
Για να αποφύγετε βραχυκύκλωμα, μονώστε την οθόνη. Σε έναν κύκλο τυλίγουμε με ταινία, και στην πλάτη στερεώνουμε σε ταινία διπλής όψης, κομμένη σε μέγεθος, μια λωρίδα μονωτικού υλικού. Πυκνό χαρτόνι ή λεπτό πλαστικό είναι κατάλληλο. Χρησιμοποίησα πλαστικό από χαρτί. Αποδείχθηκε τα εξής:


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


Συνδέουμε την οθόνη με το Arduino:


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


Βήμα 6 Προετοιμάστε και συμπληρώστε το σκίτσο.
Ένας αισθητήρας θερμοκρασίας χρειάζεται τη βιβλιοθήκη OneWire.
onewire.rar [16,75 Kb] (λήψεις: 154)


Η έξοδος στην οθόνη γίνεται μέσω της βιβλιοθήκης U8glib:
u8glib.rar [906.95 Kb] (λήψεις: 156)


Για να επεξεργαστείτε και να συμπληρώσετε το σκίτσο, εγκαταστήστε αυτές τις δύο βιβλιοθήκες. Υπάρχουν δύο τρόποι να το κάνετε αυτό. Απλά αποσυνδέστε αυτά τα αρχεία και τοποθετήστε τα αρχεία απεγκαταχώρησης στον φάκελο "βιβλιοθήκες" που βρίσκεται στο φάκελο με το εγκατεστημένο Αρduino IDE.Ή η δεύτερη επιλογή είναι να εγκαταστήσετε τη βιβλιοθήκη απευθείας στο περιβάλλον προγραμματισμού. Χωρίς αποσυσκευασία των ληφθέντων αρχείων, στο Arduino IDE, επιλέξτε το μενού Sketch - Connect Library. Στο επάνω μέρος της αναπτυσσόμενης λίστας, επιλέξτε το στοιχείο "Προσθήκη βιβλιοθήκης .zip". Στο παράθυρο διαλόγου που εμφανίζεται, επιλέξτε τη βιβλιοθήκη που θέλετε να προσθέσετε. Ανοίξτε ξανά το μενού "Σκίτσο - Σύνδεση Βιβλιοθήκης". Στο κάτω μέρος της αναπτυσσόμενης λίστας θα πρέπει να δείτε μια νέα βιβλιοθήκη. Τώρα η βιβλιοθήκη μπορεί να χρησιμοποιηθεί σε προγράμματα. Μην ξεχάσετε να επανεκκινήσετε το IDE Arduino μετά από όλα αυτά.

Ο αισθητήρας θερμοκρασίας λειτουργεί σύμφωνα με το πρωτόκολλο One Wire και έχει μια μοναδική διεύθυνση για κάθε συσκευή - έναν κωδικό 64-bit. Κάθε φορά, η αναζήτηση αυτού του κώδικα είναι ανέφικτη. Επομένως, πρέπει πρώτα να συνδέσετε τον αισθητήρα με το Arduino, συμπληρώστε το σκίτσο που βρίσκεται στο μενού Αρχείο - Παραδείγματα - Θερμοκρασία Dallas - OneWireSearch. Στη συνέχεια, εκτελέστε Εργαλεία - Παρακολούθηση Port. Το Arduino πρέπει να βρει τον αισθητήρα μας, να γράψει τη διεύθυνσή του και τις τρέχουσες ενδείξεις θερμοκρασίας. Αντιγράφεται ή απλά γράψτε τη διεύθυνση του αισθητήρα μας. Ανοίξτε το σκίτσο Arduino_WG12864B_Term, αναζητήστε τη γραμμή:

byte addr [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}, // διεύθυνση του αισθητήρα μου 


Γράφουμε κάτω τη διεύθυνση του αισθητήρα σας μεταξύ των τιράντες, αντικαθιστώντας τη διεύθυνση του αισθητήρα μου.

Απόθεμα:

//u8g.setPrintPos (44,64). u8g.print (δευτ.); // Εκτυπώστε δευτερόλεπτα για να ελέγξετε την ορθότητα του μαθήματος


Εμφανίζει δευτερόλεπτα δίπλα στο στοιχείο "Δεδομένα". Αυτό είναι απαραίτητο για να ρυθμίσετε με ακρίβεια την πορεία του χρόνου.
Εάν το ρολόι βρίσκεται σε βιασύνη ή υστερεί, θα πρέπει να αλλάξετε την τιμή στη γραμμή:

εάν (micros () - prevmicros> 494000) {// αλλαγή σε άλλη για προσαρμογή ήταν 500000


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

Συμπληρώστε το σκίτσο.
arduino_wg12864b_term.rar [3.64 Kb] (λήψεις: 314)

7
9
5.3

Προσθέστε ένα σχόλιο

    • χαμόγελοχαμογελάειxaxaΕντάξειdontknowyahoonea
      αφεντικόξυστάανόητοςναιναι-ναιεπιθετικήμυστικό
      Συγγνώμηχορόςdance2dance3συγχώρησηβοήθειαποτά
      σταματήστεφίλουςκαλόgoodgoodσφυρίχτρασυρρέουνγλώσσα
      καπνόςπαλαμάκιαcrayδηλώστεαπογοητευτικήdon-t_mentionκατεβάστε
      θερμότηταςirefulγέλιο1mdaσυνάντησηmoskingαρνητική
      not_iποπ κορντιμωρίαδιαβάστετρομάξτεφοβίζειαναζήτηση
      χλευάζωthank_youαυτόto_clueumnikοξείασυμφωνώ
      κακόbeeeblack_eyeblum3ρουζκαυχηθείτεπλήξη
      λογοκρισίαευχαρίστησηsecret2απειλήσουννίκηyusun_bespectacled
      shokrespektlolπροβλέπουνκαλωσορίστεkrutoyya_za
      ya_dobryiβοηθόςne_huliganne_othodifludαπαγόρευσηκοντά

Σας συμβουλεύουμε να διαβάσετε:

Κάντε το για το smartphone ...