» Ηλεκτρονικά » Arduino »Μετεωρολογικός σταθμός σε Arduino

Παρακολουθήστε μετεωρολογικό σταθμό στο Arduino

Παρακολουθήστε μετεωρολογικό σταθμό στο Arduino

Καλησπέρα, συνεχίζω να κάνω Arduino στον ελεύθερο χρόνο του, και αυτή τη φορά έγραψε οδηγίες για την κατασκευή ενός μικρού μετεωρολογικού σταθμού. Θα λειτουργεί ως ρολόι με ημερομηνία και δείχνει θερμοκρασίες μέσα και έξω από το δωμάτιο. Ως κύριος ελεγκτής, θα χρησιμοποιήσουμε το Arduino UNO, αλλά ένα άλλο συμβούλιο με το Atmega328p στο σκάφος θα το κάνει. Για προβολή χρησιμοποιούμε την οθόνη γραφικών WG12864B. Συνδέουμε επίσης δύο αισθητήρες θερμοκρασίας ds18b20. Ένας εσωτερικός χώρος, βγάζουμε το δεύτερο έξω. Ας ξεκινήσουμε.

Στη διαδικασία κατασκευής σπιτικό θα χρειαστεί:

- Arduino UNO (ή οποιοδήποτε άλλο συμβούλιο συμβατό με Arduino)
- γραφική οθόνη WG12864B
- αισθητήρας θερμοκρασίας ds18b20, 2 τεμ
- Τροφοδοσία ρεύματος 6 - 12 V
- Αντιστάσεις 4.7 Kom 0,25 W, 2 τεμ.
- αντιστάσεις 100 ohms 0,25 W
- Θήκη μπαταριών για 4 μπαταρίες AAA "pinky"
- Κουτί από την κασέτα της κονσόλας SEGA
- ηλεκτρική ταινία
- σύνδεση καλωδίων
- πλακέτα κυκλώματος
- Κουμπιά
- μαχαίρι χαρτικής
- συγκολλητικό σίδερο
- Κόλλα, κολοφώνιο
- Ταινία διπλής όψης

Βήμα 1 Προετοιμασία του WG12864B3.
Εκείνοι που δεν έχουν εργαστεί με οθόνες πριν μπορεί να φοβούνται από ένα μεγάλο αριθμό τροποποιήσεων, οι οποίες φαίνεται να είναι οι ίδιες, των οθονών. Θα εξηγήσω λίγο. Οι περισσότερες οθόνες αυτού του τύπου δουλεύουν σε μάρκες 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, αλλά εάν η οθόνη ήρθε διαφορετική ή απλά δεν την έχετε στη διάθεσή σας, μπορείτε εύκολα να το καταλάβετε χρησιμοποιώντας τον πίνακα:


Σύντομα χαρακτηριστικά:


Υπάρχουν πολλά διαφορετικά προγράμματα σύνδεσης στο Διαδίκτυο και όλα φαίνονται να λειτουργούν. Το θέμα είναι ότι δεν υπάρχουν μόνο διαφορετικές οθόνες, αλλά και δύο τρόποι για να συνδεθούν: σειριακά και παράλληλα. Όταν χρησιμοποιούμε μια σύνδεση σειριακής θύρας, χρειαζόμαστε μόνο 3 εξόδους του μικροελεγκτή. Με ένα παράλληλο ελάχιστο 13. Η επιλογή σε αυτή την περίπτωση είναι προφανής, Arduino έχει λίγα συμπεράσματα. Για παράλληλη σύνδεση, το διάγραμμα σύνδεσης έχει ως εξής:


Για μια σειριακή σύνδεση, την οποία θα χρησιμοποιήσουμε, το σχήμα είναι το εξής:

WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5V
4 (RS) -10
5 (R / W) - 11
6 (Ε) - 13
15 (PSB) - GND
19 (BLA) - μέσω αντιστάσεως 100 Ohm - + 5V
20 (BLK) - GND


Για να ρυθμίσετε την αντίθεση, θα πρέπει να βρίσκεται στην οθόνη ένα ποτενσιόμετρο. Υπάρχουν οθόνες χωρίς αυτό, αλλά τώρα είναι ένα σπάνιο:


Απαιτείται ένας αντιστάτης 100 ohm έτσι ώστε μια τάση των 5 βολτ να μην καίει κατά λάθος διόδους οπίσθιου φωτισμού.


Βήμα 2 Κάνοντας την υπόθεση.
Για την περίπτωση, πάρτε το κουτί από το πρόθεμα κασέτας Sega. Αν δεν βρείτε αυτό το κουτί, μπορείτε να χρησιμοποιήσετε μια άλλη περίπτωση. Το κύριο πράγμα είναι ότι η οθόνη και το Arduino ταιριάζουν σε αυτό.


Κόψτε τη διαφανή μεμβράνη στην κορυφή του κουτιού, ώστε να μην υπάρχουν κομμάτια:


Στη συνέχεια, χρησιμοποιώντας ένα τεχνικό μαχαίρι, κόψτε ένα παράθυρο μεγέθους 37x69 για την οθόνη.


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


Αφαιρέστε το προστατευτικό χαρτί από την αυτοκόλλητη ταινία και κόψτε την οθόνη πάνω του:


Από το εξωτερικό θα πρέπει να φαίνεται ως εξής:


Κάτω από την οθόνη, επίσης στην ταινία διπλής όψης, στερεώνουμε το Arduino, κάνοντας προκαταρκτικές περικοπές για τη θύρα USB και την πρίζα:


Οι εγκοπές για τις υποδοχές Arduino πρέπει να γίνονται και στις δύο πλευρές του κουτιού έτσι ώστε να μπορούν να κλείσουν ελεύθερα:


Βήμα 3 Αισθητήρες θερμοκρασίας.
Θα χρησιμοποιήσουμε ψηφιακούς αισθητήρες θερμοκρασίας DS18B20. Χρησιμοποιώντας τους έχουμε μεγάλη ακρίβεια μέτρησης, το σφάλμα δεν είναι περισσότερο από 0.5 ° C, σε ένα ευρύ φάσμα θερμοκρασιών -55 ... + 125 ° C. Επιπλέον, ο ψηφιακός αισθητήρας εκτελεί όλους τους υπολογισμούς και ο Arduino λαμβάνει απλώς έτοιμες μετρήσεις. Όταν συνδέετε αυτόν τον αισθητήρα, μην ξεχνάτε την αντίσταση τραβήγματος, 4.7 kΩ, μεταξύ των επαφών DQ και VDD. Είναι επίσης δυνατές πολλές επιλογές σύνδεσης. Με την εξωτερική δύναμη, κατά τη γνώμη μου την καλύτερη επιλογή, θα το χρησιμοποιήσουμε:


Εάν θέλετε, μπορείτε να χρησιμοποιήσετε τη λειτουργία παρασιτικής τροφοδοσίας:


Ή μια βελτιωμένη επιλογή παρασιτικών τροφίμων:


Με οποιαδήποτε τροφοδοσία, οι αισθητήρες συνδέονται παράλληλα:


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


Το σύνηθες σύρμα από τα δύο κουμπιά συνδέεται με το GND, το σύρμα από το πρώτο κουμπί συνδέεται με το Α0, από το δεύτερο με το A1.
Στερεώστε σε ταινία διπλής όψης δίπλα στο Arduino:


Ο αισθητήρας, ο οποίος υποτίθεται ότι τοποθετείται έξω από το δωμάτιο, είναι προτιμότερο να διαλέξει σε μεταλλική, σκόνη και υγρασία:


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

Το καλώδιο από το δίαυλο δεδομένων DQ και των δύο αισθητήρων συνδέεται στον ακροδέκτη 5 του Arduino.
Vdd - +5 Arduino.
GND - GND Arduino.


Βήμα 4 Ισχύς.
Για τροφοδοσία, μπορείτε να χρησιμοποιήσετε τροφοδοτικό με τάση από 6 έως 12 βολτ. Στο τέλος του καλωδίου εκτόνωσης ισχύος, κολλήστε το βύσμα κατάλληλο για την πρίζα του Arduino:


Ή μπορείτε να τοποθετήσετε μια θήκη μπαταριών για τέσσερις μπαταρίες "AAA", "pinky" στην περίπτωση. Και συνδέστε το θετικό καλώδιο από το διαμέρισμα με το Vin Arduino και το μείον στο GND.

Βήμα 5 Προετοιμασία του περιβάλλοντος προγραμματισμού.
Πρώτα πρέπει να κατεβάσετε και να εγκαταστήσετε το Arduino IDE με επίσημο site

Και προσθέστε και στις δύο βιβλιοθήκες που χρειάζονται για το σκίτσο. OneWire - απαιτείται για επικοινωνία με τους αισθητήρες ds18b20:
onewire.rar [16.75 Kb] (λήψεις: 34)


U8glib - χρησιμοποιείται για την εμφάνιση πληροφοριών στην οθόνη:
u8glib.rar [906.95 Kb] (λήψεις: 46)


Κατεβάστε τη βιβλιοθήκη. Στη συνέχεια αποσυσκευάζουμε τα αρχεία και μεταφέρουμε τα περιεχόμενα των αρχείων στο φάκελο "βιβλιοθήκες" που βρίσκεται στο φάκελο με το εγκατεστημένο IDE του Arduino. Μπορείτε επίσης να προσθέσετε βιβλιοθήκες μέσω του IDE του Arduino. Για να το κάνετε αυτό, χωρίς να αποσυσκευάσετε τα αρχεία, εκτελέστε το Arduino IDE, επιλέξτε Sketch - Connect Library από το μενού Sketch. Στο επάνω μέρος της αναπτυσσόμενης λίστας, επιλέξτε το στοιχείο "Προσθήκη βιβλιοθήκης .Zip". Αναφέρουμε την τοποθεσία των ληφθέντων αρχείων. Μετά από όλα τα βήματα, θα πρέπει να επανεκκινήσετε το IDE του Arduino.

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

byte addr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}, // εσωτερική διεύθυνση
byte addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}, // διεύθυνση του εξωτερικού αισθητήρα


Αντικαθίσουμε τις διευθύνσεις που αντιστοιχούν στη θέση των αισθητήρων με τις διευθύνσεις μας.
Τα ρολόγια μας δεν χρησιμοποιούν τη μονάδα RTC (ρολόι πραγματικού χρόνου), επομένως πρέπει να ρυθμίσετε το ρολόι. Για ευκολία, αποσυνδέστε τη γραμμή (τα δευτερόλεπτα θα εμφανιστούν στην οθόνη):

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


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

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

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


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

ard_tic_tak_wg12864b_2_x_term_serial.rar [3.2 Kb] (λήψεις: 90)

Λειτουργικότητα ή ομορφιά;
Σύνολο ψηφοφόρων: 19
8
8.3
7.7

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

    • χαμόγελοχαμογελάει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απαγόρευσηκοντά
3 σχόλιο
Ο συγγραφέας
Δυστυχώς, δεν γνωρίζω τα αναλόγια της οθόνης φθηνότερα.
Και όσο περισσότερος προϋπολογισμός είναι δυνατόν να αντικατασταθεί αυτή η οθόνη, φαινόταν από 500 ρούβλια.
Για αυτά τα denyushki μπορείτε να αγοράσετε ένα έτοιμο, πραγματικό μετεωρολογικό σταθμό, με ένδειξη όχι μόνο της θερμοκρασίας, αλλά και της πίεσης και της υγρασίας, καθώς και μια ένδειξη της κατεύθυνσης αλλαγής των τιμών που μετρήθηκαν! χαμόγελο
Καλησπέρα Και όσο περισσότερος προϋπολογισμός είναι δυνατόν να αντικατασταθεί αυτή η οθόνη, φαινόταν από 500 ρούβλια.
Σας ευχαριστώ!

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

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