Buat Proyek Stasiun Cuaca Sederhana ini untuk Rumah dan Kantor

Coba Instrumen Kami Untuk Menghilangkan Masalah





Dalam posting ini kita akan membuat proyek stasiun cuaca mini berbasis Arduino yang menarik, yang dapat menunjukkan suhu lingkungan, kelembaban, tekanan, kualitas udara dan lebih banyak data dari lingkungan Anda, yang dapat digunakan untuk memprediksi cuaca dari rumah.



Jika Anda tertarik dengan meteorologi, proyek ini mungkin berguna untuk mempelajari tentang kondisi cuaca lokal dan perubahan jangka pendek. Proyek yang diusulkan adalah desain solid state, yang berarti tidak ada bagian yang bergerak.

Proyek ini dapat ditempatkan dalam kondisi dalam ruangan atau semi dalam ruangan, di mana sirkuit jauh dari sinar matahari langsung atau angin kencang atau kelembaban yang dapat merusak sensor on-board.



Desain:

Proyek rangkaian stasiun cuaca mini yang diusulkan dibangun di sekitar Arduino, yang merupakan otak dari stasiun cuaca yang mengumpulkan banyak data dari berbagai sensor dan memprosesnya dan menampilkannya pada layar LCD 16x2.

Anda dapat memilih papan arduino favorit Anda untuk proyek ini. Rangkaian tersebut terdiri dari tiga sensor MQ-135, BMP180 dan DHT11. Mari kita lihat apa yang dilakukan setiap sensor secara detail.

Sensor MQ-135:

MQ-135 adalah sensor pengukur kualitas udara, yang dapat mendeteksi karbon dioksida, alkohol, benzena, asap, butana, propana, dll. Jika konsentrasi kimiawi gas-gas ini tinggi di udara, maka dapat dikatakan bahwa udara tercemar.

Sensor tersebut dapat mendeteksi perubahan konsentrasi polutan di udara dan memberikan level tegangan yang sesuai. Tegangan keluaran sensor berbanding lurus dengan tingkat konsentrasi bahan kimia di udara.

Variasi tegangan dari sensor diumpankan ke Arduino, kami memiliki level ambang yang telah ditentukan sebelumnya dalam program. Ketika melewati level ambang, mikrokontroler memberi tahu kami apakah udara aman atau tidak.

Diagram Sirkuit

antarmuka sensor MQ135 dengan sirkuit stasiun cuaca

Diagram di atas menunjukkan diagram pengkabelan. Sensor ini membutuhkan suplai eksternal 5V karena memiliki elemen pemanas di dalam sensor yang mengkonsumsi sekitar 1 Watt. Daya dari pin daya arduino tidak dapat memasok arus yang lebih tinggi.

Elemen pemanas menjaga sensor tetap hangat dan membantu mengambil sampel konsentrasi kimiawi yang sesuai di udara. Sensor membutuhkan waktu beberapa menit untuk mencapai suhu optimal.

Sensor DHT11:

Sensor DHT11 dikenal sebagai sensor Suhu dan kelembaban. Itu dapat mengukur suhu dan kelembaban dari sekitar seperti namanya.

Ini adalah perangkat 4 pin tetapi hanya 3 yang digunakan. Ini mungkin terlihat seperti komponen yang sangat sederhana, tetapi memiliki mikrokontroler di dalam sensor yang meneruskan data dalam bentuk digital ke papan arduino.

Ini mengirim 8 bit data setiap detik ke arduino, untuk memecahkan kode sinyal yang diterima, kita perlu menyertakan perpustakaan dalam kode yang dirancang untuk menanganinya. Tautan untuk perpustakaan diberikan bagian artikel selanjutnya.

Diagram sirkuit:

antarmuka DH11 dengan arduino

Sambungan sirkuit dari sensor ke arduino sangat sederhana. Output dari sensor tersebut dihubungkan ke pin A1 arduino. Pasokan Vcc dan GND terhubung ke pin catu daya arduino.

Catatan: Pastikan sensor Anda memiliki resistor pull-up bawaan, jika tidak ada, hubungkan resistor pull-up 4.7K pada pin keluaran sensor DHT11.

Sensor BMP180:

BMP180 adalah sensor barometrik yang dapat mengukur tekanan atmosfer, ketinggian dan suhu. Pengukuran suhu dari sensor ini diabaikan karena kami memiliki sensor khusus untuk mengukur suhu sekitar.

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

Diagram Sirkuit:

menghubungkan BM180 dengan Arduino
Ini menggunakan protokol komunikasi I2C, pin SDA menuju ke A4 arduino dan SCL menuju ke A5 dari arduino. Vcc dan GND terhubung ke pin catu daya arduino.

Koneksi LCD:

sensor kelembaban menggunakan Aduino


Layar LCD menunjukkan semua data dari sensor. Koneksi antara layar LCD dan arduino adalah standar, kita dapat menemukan koneksi serupa di banyak proyek berbasis LCD lainnya. Sesuaikan potensiometer 10K untuk visibilitas optimal dari layar LCD.

Prototipe Penulis:

gambar prototipe stasiun cuaca

Berikut adalah prototipe penulis dari sirkuit monitor cuaca mini di mana semua sensor yang ditunjukkan dalam skema terhubung ke papan arduino.

Catatan: Koneksi sirkuit dari masing-masing sensor dan layar LCD harus dihubungkan ke papan arduino tunggal. Kami telah memberikan koneksi sensor diskrit pada setiap skema untuk menghindari kebingungan saat menduplikasi rangkaian.

Unduh file Perpustakaan sebelum mengunggah kode:

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

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

Kode 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:

Sirkuit stasiun cuaca mini yang dijelaskan membutuhkan waktu 2 menit untuk menunjukkan pembacaan dari sensor, hingga kemudian menampilkan “Sensor bersiap-siap”. Ini karena sensor MQ-135 membutuhkan waktu 2 menit untuk mencapai suhu pengoperasian yang optimal.




Sepasang: Cara Membuat Pengering Kain Sederhana untuk Musim Hujan Berikutnya: Sirkuit Mobil Mainan yang Dioperasikan Tepuk Tangan