Κάντε αυτό το έργο Simple Weather Station για σπίτια και γραφεία

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





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



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

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



Ο σχεδιασμός:

Το προτεινόμενο έργο κυκλώματος μίνι μετεωρολογικού σταθμού είναι κατασκευασμένο γύρω από το Arduino, το οποίο είναι ο εγκέφαλος του μετεωρολογικού σταθμού που συλλέγει πολλά δεδομένα από διάφορους αισθητήρες και τα επεξεργάζεται και προβάλλει σε οθόνη LCD 16x2.

Μπορείτε να επιλέξετε τον αγαπημένο σας πίνακα arduino για αυτό το έργο. Το κύκλωμα αποτελείται από τρεις αισθητήρες MQ-135, BMP180 και DHT11. Ας δούμε τι κάνει κάθε αισθητήρας λεπτομερώς.

Αισθητήρας MQ-135:

Το MQ-135 είναι ένας αισθητήρας μέτρησης της ποιότητας του αέρα, ο οποίος μπορεί να ανιχνεύσει διοξείδιο του άνθρακα, αλκοόλ, βενζόλιο, καπνό, βουτάνιο, προπάνιο κ.λπ. Εάν η χημική συγκέντρωση αυτά τα αέρια είναι υψηλά στον αέρα, μπορούμε να πούμε ότι ο αέρας είναι μολυσμένος.

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

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

Διάγραμμα κυκλώματος

διεπαφή MQ135 αισθητήρα με κύκλωμα μετεωρολογικού σταθμού

Το παραπάνω διάγραμμα δείχνει το διάγραμμα καλωδίωσης. Αυτός ο αισθητήρας χρειάζεται εξωτερική τροφοδοσία 5V επειδή διαθέτει στοιχείο θέρμανσης μέσα στον αισθητήρα που καταναλώνει περίπου 1 Watt. Η ισχύς από τον πείρο τροφοδοσίας του arduino δεν μπορεί να παρέχει υψηλότερο ρεύμα.

Το θερμαντικό στοιχείο διατηρεί τον αισθητήρα ζεστό και βοηθά στη δειγματοληψία κατάλληλης ποσότητας χημικής συγκέντρωσης στον αέρα. Ο αισθητήρας διαρκεί περίπου δύο λεπτά για να φτάσει στη βέλτιστη θερμοκρασία.

Αισθητήρας DHT11:

Ο αισθητήρας DHT11 είναι γνωστός ως αισθητήρας θερμοκρασίας και υγρασίας. Μπορεί να μετρήσει τη θερμοκρασία και την υγρασία από το περιβάλλον, όπως υποδηλώνει το όνομα.

Είναι μια συσκευή 4 ακίδων, αλλά χρησιμοποιούνται μόνο 3 από αυτές. Μπορεί να μοιάζει με ένα πολύ απλό στοιχείο, αλλά διαθέτει έναν μικροελεγκτή μέσα στον αισθητήρα που μεταδίδει τα δεδομένα σε ψηφιακή μορφή στην πλακέτα arduino.

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

Διάγραμμα κυκλώματος:

διεπαφή DH11 με arduino

Η σύνδεση κυκλώματος από αισθητήρα σε arduino είναι πολύ απλή. Η έξοδος του αισθητήρα συνδέεται με τον ακροδέκτη A1 του arduino. Η τροφοδοσία Vcc και GND συνδέονται με τους πείρους τροφοδοσίας του arduino.

Σημείωση: Βεβαιωθείτε ότι ο αισθητήρας σας έχει ενσωματωμένη pull-up αντίσταση, εάν δεν διαθέτει μία σύνδεση 4,7K pull-up αντίσταση στον πείρο εξόδου του αισθητήρα DHT11.

Αισθητήρας BMP180:

Ο BMP180 είναι βαρομετρικός αισθητήρας που μπορεί να μετρήσει την ατμοσφαιρική πίεση, το υψόμετρο και τη θερμοκρασία. Η μέτρηση θερμοκρασίας από αυτόν τον αισθητήρα παραμελείται καθώς διαθέτουμε ειδικό αισθητήρα για τη μέτρηση της θερμοκρασίας περιβάλλοντος.

Ο αισθητήρας μετρά το υψόμετρο της εγκατάστασης από τη στάθμη της θάλασσας, είναι επίσης μία από τις παραμέτρους που χρησιμοποιούνται στη μετεωρολογία.

Διάγραμμα κυκλώματος:

διασύνδεση BM180 με το Arduino
Χρησιμοποιεί πρωτόκολλο επικοινωνίας I2C, ο πείρος SDA πηγαίνει στο A4 του arduino και το SCL πηγαίνει στο A5 του arduino. Τα Vcc και GND συνδέονται με τους πείρους τροφοδοσίας του arduino.

Σύνδεση LCD:

αισθητήρας υγρασίας χρησιμοποιώντας το Aduino


Η οθόνη LCD εμφανίζει όλα τα δεδομένα από τους αισθητήρες. Η σύνδεση μεταξύ οθόνης LCD και arduino είναι στάνταρ, μπορούμε να βρούμε παρόμοια σύνδεση σε πολλά άλλα έργα που βασίζονται σε LCD. Ρυθμίστε το ποτενσιόμετρο 10K για βέλτιστη ορατότητα από την οθόνη LCD.

Πρωτότυπο συγγραφέα:

πρωτότυπο μετεωρολογικό σταθμό

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

Σημείωση: Η σύνδεση κυκλώματος από κάθε αισθητήρα και οθόνη LCD θα πρέπει να συνδεθεί σε μία πλακέτα arduino. Έχουμε δώσει διακριτή σύνδεση αισθητήρα σε κάθε σχηματικό για να αποφευχθεί η σύγχυση κατά την αναπαραγωγή του κυκλώματος.

Πραγματοποιήστε λήψη των αρχείων της Βιβλιοθήκης πριν ανεβάσετε τον κωδικό:

Βιβλιοθήκη DHT11: https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

Βιβλιοθήκη BMP180: github.com/adafruit/Adafruit_BMP085_Unified.git

Κωδικός προγράμματος:

#include
#include
#include
#include
#define DHTxxPIN A1
LiquidCrystal lcd(12,11,5,4,3,2)
dht DHT
Adafruit_BMP085 bmp
int ack
int input = A0
unsigned long A = 1000L
unsigned long B = A * 60
unsigned long C = B * 2
int low = 300
int med = 500
int high = 700
int x = 4000
void setup()
{
Serial.begin(9600)
lcd.begin(16,2)
lcd.setCursor(0,0)
lcd.print('Sensors are')
lcd.setCursor(0,1)
lcd.print('getting ready')
delay(C)
}
void loop()
{
ack=0
int chk = DHT.read11(DHTxxPIN)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1
break
}
if(ack==0)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Temp(*C)= ')
lcd.print(DHT.temperature)
lcd.setCursor(0,1)
lcd.print('Humidity(%) = ')
lcd.print(DHT.humidity)
delay(x)
}
if(ack==1)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('NO DATA')
lcd.setCursor(0,1)
lcd.print('Check Sensor')
delay(x)
}
if (!bmp.begin())
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('BMP180 sensor')
lcd.setCursor(0,1)
lcd.print('not found')
while (1) {}
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('----Pressure---- ')
lcd.setCursor(0,1)
lcd.print(bmp.readPressure())
lcd.print(' Pascal')
delay(x)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('----Altitude----')
lcd.setCursor(0,1)
lcd.print(bmp.readAltitude(101500))
lcd.print(' meter')
delay(x)
lcd.clear()
lcd.setCursor(0,0)
lcd.print(' Air Quality:')
if(analogRead(input)==0)
{
lcd.setCursor(0,1)
lcd.print(' Sensor Error')
delay(x)
}
if(analogRead(input)0)
{
lcd.setCursor(0,1)
lcd.print(' GOOD')
delay(x)
}
if(analogRead(input)>low && analogRead(input) {
lcd.setCursor(0,1)
lcd.print(' GETTING BAD')
delay(x)
}
if(analogRead(input)>=med && analogRead(input) {
lcd.setCursor(0,1)
lcd.print(' VERY POOR')
delay(x)
}
if(analogRead(input)>=high)
{
lcd.setCursor(0,1)
lcd.print(' WORST')
delay(x)
}
}

ΣΗΜΕΙΩΣΗ:

Το εξηγημένο κύκλωμα μίνι μετεωρολογικού σταθμού διαρκεί 2 λεπτά για να δείξει τις ενδείξεις από τον αισθητήρα, μέχρι τότε εμφανίζει «Οι αισθητήρες ετοιμάζονται». Αυτό συμβαίνει επειδή ο αισθητήρας MQ-135 διαρκεί 2 λεπτά για να φτάσει στη βέλτιστη θερμοκρασία λειτουργίας.




Προηγούμενο: Πώς να φτιάξετε ένα απλό στεγνωτήριο ρούχων για την περίοδο των βροχών Επόμενο: Clap Operated Toy Car Circuit