» Ηλεκτρονικά » Arduino »Αρχική μετεωρολογικός σταθμός βασισμένος στο Arduino

Αρχική μετεωρολογικός σταθμός βασισμένος στο Arduino


Για πολύ καιρό ήθελα να φτιάξω έναν μίνι μετεωρολογικό σταθμό, κουρασμένος να κοιτάζω έξω από το παράθυρο για να κοιτάξω ένα θερμόμετρο πίσω από το γυαλί. Αυτή η συσκευή θα αντικαταστήσει το υγρόμετρο, το βαρόμετρο και το θερμόμετρο και θα δείξει επίσης την τρέχουσα ώρα. Σε αυτή τη θέση θα σας πω πώς να συναρμολογήσετε γρήγορα και εύκολα έναν μικρό μετεωρολογικό σταθμό βασισμένο στο Arduino. Η βάση θα είναι το διοικητικό συμβούλιο Arduino Το Nano μπορεί να χρησιμοποιήσει και άλλες κάρτες - Arduino Uno, Arduino Pro mini). Θα λάβουμε δεδομένα ατμοσφαιρικής πίεσης και θερμοκρασίας από τον αισθητήρα BMP180 και την υγρασία και την εξωτερική θερμοκρασία από τον αισθητήρα DHT11. Το ρολόι πραγματικού χρόνου DS1302 θα δείχνει την τρέχουσα ώρα. Όλες οι πληροφορίες εμφανίζονται σε μια οθόνη LCD1602 δύο γραμμών.

Το DHT11 μεταδίδει πληροφορίες σε ένα μόνο καλώδιο σε ένα arduino. Τροφοδοτείται από τάση 5 V. Μετράει την υγρασία από 20 έως 80%. Μέτρηση θερμοκρασίας στην κλίμακα από 0 έως 50περίπουΓ.

Αρχική μετεωρολογικός σταθμός βασισμένος στο Arduino

Ο αισθητήρας BMP180 μετρά την ατμοσφαιρική πίεση στην περιοχή των 300-1100 hPa, θερμοκρασία στην περιοχή -40 +85περίπουC. Η τάση τροφοδοσίας είναι 3,3 V. Συνδέεται μέσω του πρωτοκόλλου επικοινωνίας I2C.

Το ρολόι πραγματικού χρόνου DS1302 τροφοδοτείται από 5 V και συνδέεται μέσω του πρωτοκόλλου επικοινωνίας I2C. Όταν εγκαθίστανται στην κατάλληλη υποδοχή, οι μπαταρίες CR2032 υποστηρίζουν το ρολόι όταν η κύρια παροχή ενέργειας είναι απενεργοποιημένη.

Η οθόνη LCD1602 τροφοδοτείται από τάση 5 Volt και συνδέεται επίσης μέσω του πρωτοκόλλου επικοινωνίας I2C.

Αυτό σπιτικό που γίνεται με βάση έτοιμες σανίδες και αισθητήρες, ώστε να μπορεί να επαναληφθεί σε οποιονδήποτε αρχάριο να εργαστεί με συγκολλητικό σίδερο. Ταυτόχρονα, μπορείτε να πάρετε τα βασικά του προγραμματισμού Arduino. Έγραψα αυτόν τον μετεωρολογικό σταθμό στο πρόγραμμα οπτικού προγραμματισμού FLPROG σε 15 λεπτά. Δεν χρειάζεται να σχεδιάζετε χειροκίνητα για ώρες, αυτό το πρόγραμμα βοηθά τους αρχάριους (και όχι μόνο) να μαθαίνουν γρήγορα τα βασικά των συσκευών προγραμματισμού με βάση την πλατφόρμα Arduino.

Ποιος είναι πολύ τεμπέλης για να πειραματιστεί με το πρόγραμμα - ένα σκίτσο (μόνο θα είναι απαραίτητο να ρυθμίσετε την τρέχουσα ώρα του ρολογιού):
#include 
#include "DHT_NEW.h"
#include 
#include 
#include 
BMP085 _bmp085 = BMP085 ();
μακρύ _bmp085P = 0;
μακρύ _bmp085T = 0;
μακρύ _bmp085A = 0;

LiquidCrystal_I2C _lcd1 (0x3f, 16,2).
int _dispTempLength1 = 0;
boolean _isNeedClearDisp1;

DHT _dht1;

ιηννίίοη_ΚΤΟ_ΡΤΟ1 (RTC_DS1302, 7, 5, 6).

μη υπογεγραμμένο πολύ _dht1LRT = 0UL;
μη υπογεγραμμένο πολύ _dht1Tti = 0UL;
int _disp1oldLength = 0;
μη υπογεγραμμένο πολύ _bmp0852Tti = 0UL;
Σειρά _RTC1_GetTime2_StrOut;
int _disp2oldLength = 0;
void setup ()
{
Wire.begin ();
καθυστέρηση (10).
_bmp085.init (MODE_ULTRA_HIGHRES, 116, true);
_RTC1.begin ();
_RTC1.περίοδος (1);
_lcd1.init ();
_lcd1.backlight ();
_dht1.setup (4).
_dht1LRT = millis ();
_dht1Tti = millis ();
}}
κενός βρόχος ()
{if (_isNeedClearDisp1) {_lcd1.clear (); _isNeedClearDisp1 = 0;}
αν (_isTimer (_bmp0852Tti, 1000)) {
_bmp0852Tti = millis ();
_bmp085.getAltitude (& _ bmp085A).
_bmp085.getPressure (& _ bmp085P);
_bmp085.getTemperature (& _ bmp085T).
}}

// Αμοιβή: 1
εάν (1) {
_DispTempLength1 = (((((((String ("T:")) + ((_floatToStringWitRaz ((bmp085T) / (10.00), 1))) + "()) + ((_FloatToStringWitRaz ((_bmp085P) / (133.3), 0))) + (String (" * ")))) .))) + (String ("%"))))) μήκος ();
αν (_disp1oldLength> _dispTempLength1) {_isNeedClearDisp1 = 1;}
_disp1oldLength = _dispTempLength1;
_lcd1.setCursor (int ((16 - _dispTempLength1) / 2), 0).
())) + (() ()) + (() () () () () ())) + (()) + (()) + (()) + (() () _dht1.humidity, 0))) + (συμβολοσειρά ("%")))));
} else {
αν (_disp1oldLength> 0) {_isNeedClearDisp1 = 1; _disp1oldLength = 0;}
}}
αν (_isTimer (_dht1Tti, 2000)) {
αν (_isTimer (_dht1LRT, (_dht1.getMinimumSamplingPeriod ()))) {
_dht1.readSensor ();
_dht1LRT = millis ();
_dht1Tti = millis ();
}}
}}
εάν (1) {
_dispTempLength1 = (String ("t:")) + ((_floatToStringWitRaz (_dht1.temperature, 0))) + (String ("*")))) + (_RTC1_GetTime2_StrOut) ) ·
αν (_disp2oldLength> _dispTempLength1) {_isNeedClearDisp1 = 1;}
_disp2oldLength = _dispTempLength1;
_lcd1.setCursor (int ((16 - _dispTempLength1) / 2), 1).
_lcd1.print (((((((String ("t:"))) + ((_floatToStringWitRaz (_dht1.temperature, 0)))) + (String ("*")))) + (_RTC1_GetTime2_StrOut)));
} else {
αν (_disp2oldLength> 0) {_isNeedClearDisp1 = 1; _disp2oldLength = 0;}
}}
_RTC1_GetTime2_StrOut = _RTC1.gettime ("H: i: sD").

}}
String _floatToStringWitRaz (τιμή float, int raz)
{

Επιστροφή String (τιμή, raz);
}}
bool _isTimer (μη έγκυρος μεγάλος χρόνος εκκίνησης, μη υπογεγραμμένος μεγάλο χρονικό διάστημα)
{
μη υπογεγραμμένο μεγάλο χρονικό όριο;
τρέχουσα τιμή = millis ();
εάν (currentTime> = startTime) {επιστροφή (currentTime> = (startTime + περίοδος))} else {επιστροφή (currentTime> = (4294967295-startTime + περίοδος)
}}

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

Όλες οι πληροφορίες μπορούν να ληφθούν με την εξέταση του βίντεο:


Κατάλογος υλικών και εργαλείων

Arduino Nano Διοικητικό Συμβούλιο
οθόνη LCD1602 δύο γραμμών.
- Ρολόι πραγματικού χρόνου DS1302.
- αισθητήρα ατμοσφαιρικής πίεσης και θερμοκρασίας BMP180,
- αισθητήρας θερμοκρασίας και υγρασίας DHT11,
- μπλοκάρει τη φόρτιση από το τηλέφωνο.
- οποιαδήποτε κατάλληλη στέγαση
τσιμπιδάκια?
ψαλίδι;
συγκολλητικό σίδερο.
Cambridge;
tester?
- συνδέοντας καλώδια.
Τέσσερα σύρματα για αισθητήρα τηλεχειρισμού.

Πρώτο βήμα. Κάνοντας ένα κτίριο για ένα μετεωρολογικό σταθμό

Πήρα ένα πλαστικό κουτί από το κατάστημα Fix Price (συνολικά 17p). Πρόχειρο παράθυρο για εμφάνιση στο καπάκι. Στη συνέχεια έκοψε εν μέρει τα χωρίσματα στο κουτί, έκανε τρύπες για το σύνδεσμο USB της πλακέτας Arduino, το άνοιγμα για τον αισθητήρα BMP180 Ο αισθητήρας BMP180 θα βρίσκεται στην εξωτερική πλευρά της θήκης για να αποφευχθεί η υπερβολική θέρμανση από ε επιχρίσματα μέσα. Αφού ζωγράφισα το σώμα του σπιτικού προϊόντος από μέσα γιατί το πλαστικό είναι διαφανές. Το κουτί κλείνει με ένα μάνδαλο και σε αυτό όλα τα στοιχεία ταιριάζουν όμορφα.


Βήμα δεύτερο Διάγραμμα συναρμολόγησης της συσκευής.

Φωτογραφικό σχέδιο


Στη συνέχεια, πρέπει να συνδέσετε όλες τις σανίδες και τους αισθητήρες του μετεωρολογικού σταθμού σύμφωνα με το σχέδιο. Το κάνουμε αυτό χρησιμοποιώντας τη συναρμολόγηση καλωδίων με τους κατάλληλους συνδετήρες. Δεν έκανα σύνδεση συγκόλλησης, οπότε στο μέλλον, όταν αποτύχει μια μονάδα (ή για άλλους λόγους), μπορείτε εύκολα να την αντικαταστήσετε. Στη βιδωτή υποδοχή συνδέεται το καλώδιο του αισθητήρα DHT11 προς το δρόμο. Η ισχύς μπορεί να τροφοδοτηθεί από τη θύρα USB του πίνακα Arduino σε έναν υπολογιστή ή με παροχή τάσης 7-12V στον ακροδέκτη VIN και GND.

Καταρχήν, συνένωσα το κύκλωμα έξω από το περίβλημα και προγραμματίστηκα και το ξεκαθαρίσατε στο πρόγραμμα FLPROG.

Διακοσμητικό διάγραμμα φωτογραφιών στο πρόγραμμα FLPROG.

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

Η φωτογραφία ολοκληρώθηκε

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

Σας ευχαριστώ όλους για την προσοχή σας, σας εύχομαι καλή επιτυχία και καλή τύχη τόσο στη ζωή σας όσο και στη δουλειά σας!
9.2
8.2
8.5

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

    • χαμόγελοχαμογελάει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 ...