Buat Projek Stesen Cuaca Sederhana ini untuk Rumah dan Pejabat

Cuba Instrumen Kami Untuk Menghapuskan Masalah





Dalam catatan ini, kami akan membina projek stesen cuaca mini berasaskan Arduino yang menarik, yang dapat menunjukkan kepada anda suhu persekitaran, kelembapan, tekanan, kualiti udara dan banyak lagi data dari persekitaran anda, yang dapat digunakan untuk meramalkan cuaca dari rumah.



Sekiranya anda berminat dengan meteorologi, projek ini mungkin berguna untuk mengkaji keadaan cuaca tempatan dan perubahan jangka pendek. Projek yang dicadangkan adalah reka bentuk keadaan pepejal, yang bermaksud tidak ada bahagian bergerak.

Projek ini boleh diletakkan dalam keadaan dalaman atau separa tertutup, di mana litar jauh dari cahaya matahari langsung atau angin kencang atau kelembapan yang boleh merosakkan sensor di dalam pesawat.



Rekaan:

Projek litar stesen cuaca mini yang dicadangkan dibina di sekitar Arduino, yang merupakan otak stesen cuaca yang mengumpulkan banyak data dari pelbagai sensor dan memprosesnya dan dipaparkan pada skrin LCD 16x2.

Anda boleh memilih papan arduino kegemaran anda untuk projek ini. Litar ini terdiri daripada tiga sensor MQ-135, BMP180 dan DHT11. Mari lihat apa yang dilakukan oleh setiap sensor secara terperinci.

Sensor MQ-135:

MQ-135 adalah sensor pengukur kualiti udara, yang dapat mengesan karbon dioksida, alkohol, benzena, asap, butana, propana dan lain-lain. Sekiranya kepekatan kimia gas ini tinggi di udara, maka kita dapat mengatakan bahawa udara tercemar.

Sensor dapat mengesan perubahan kepekatan pencemar di udara dan memberikan tahap voltan yang sesuai. Voltan output sensor berkadar terus dengan tahap kepekatan kimia di udara.

Variasi voltan dari sensor diumpankan ke Arduino, kita telah menentukan tahap ambang yang ditentukan dalam program ini. Apabila melepasi tahap ambang, mikrokontroler memberitahu kita sama ada udara selamat atau tidak.

Rajah Litar

antara muka MQ135 sensor dengan litar stesen cuaca

Gambar rajah di atas menunjukkan gambarajah pendawaian. Sensor ini memerlukan bekalan 5V luaran kerana ia mempunyai elemen pemanasan di dalam sensor yang menggunakan sekitar 1 Watt. Kuasa dari pin kuasa arduino tidak dapat membekalkan arus yang lebih tinggi.

Elemen pemanasan membuat sensor sentiasa panas dan membantu mencerap jumlah kepekatan kimia yang sesuai di udara. Sensor mengambil masa beberapa minit untuk mencapai suhu optimum.

Sensor DHT11:

Sensor DHT11 dikenali sebagai Sensor suhu dan kelembapan. Ia dapat mengukur suhu dan kelembapan dari sekitar seperti namanya.

Ia adalah peranti 4 pin tetapi hanya 3 daripadanya yang digunakan. Ia mungkin kelihatan seperti komponen yang sangat sederhana, tetapi ia mempunyai mikrokontroler di dalam sensor yang menyampaikan data dalam bentuk digital ke papan arduino.

Ia menghantar 8 bit data setiap saat ke arduino, untuk menyahkod isyarat yang diterima, kita perlu memasukkan perpustakaan dalam kod yang dirancang untuk menanganinya. Pautan untuk perpustakaan diberikan bahagian kemudian artikel.

Gambarajah litar:

antara muka DH11 dengan arduino

Sambungan litar dari sensor ke arduino sangat mudah. Keluaran sensor disambungkan ke pin arduino A1. Bekalan Vcc dan GND disambungkan ke pin bekalan kuasa arduino.

Catatan: Pastikan sensor anda mempunyai resistor pull-up, jika tidak ada yang menghubungkan satu resistor pull-up 4.7K pada pin output sensor DHT11.

Sensor BMP180:

BMP180 adalah sensor barometrik yang dapat mengukur tekanan, ketinggian dan suhu atmosfera. Pengukuran suhu dari sensor ini diabaikan kerana kami mempunyai sensor khusus untuk mengukur suhu persekitaran.

Sensor mengukur ketinggian penyiapan dari permukaan laut, itu juga merupakan salah satu parameter yang digunakan dalam meteorologi.

Rajah Litar:

menghubungkan BM180 dengan Arduino
Ia menggunakan protokol komunikasi I2C, pin SDA pergi ke A4 of arduino dan SCL ke A5 dari arduino. Vcc dan GND disambungkan ke pin bekalan kuasa arduino.

Sambungan LCD:

sensor kelembapan menggunakan Aduino


Paparan LCD menunjukkan semua data dari sensor. Sambungan antara paparan LCD dan arduino adalah standard, kami dapat menjumpai sambungan serupa di banyak projek berasaskan LCD lain. Laraskan potensiometer 10K untuk penglihatan optimum dari paparan LCD.

Prototaip Pengarang:

gambar prototaip stesen cuaca

Berikut adalah prototaip pengarang litar monitor cuaca mini di mana semua sensor yang ditunjukkan dalam skema disambungkan ke papan arduino.

Catatan: Sambungan litar dari setiap sensor dan paparan LCD harus disambungkan ke papan arduino tunggal. Kami telah memberikan sambungan sensor diskrit pada setiap skema untuk mengelakkan kekeliruan semasa menduplikasi litar.

Muat turun fail Perpustakaan sebelum memuat naik kod:

Perpustakaan DHT11: https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

Perpustakaan BMP180: github.com/adafruit/Adafruit_BMP085_Unified.git

Kod Program:

#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)
}
}

CATATAN:

Litar stesen cuaca mini yang dijelaskan mengambil masa 2 minit untuk menunjukkan pembacaan dari sensor, sehingga kemudian ia memaparkan 'Sensor sedang bersiap'. Ini kerana sensor MQ-135 mengambil masa 2 minit untuk mencapai suhu operasi yang optimum.




Sebelumnya: Cara Membina Pengering Kain Sederhana untuk Musim Hujan Seterusnya: Litar Kereta Mainan Bertepuk Tangan