Tạo Dự án Trạm Thời tiết Đơn giản này cho Nhà và Văn phòng

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





Trong bài đăng này, chúng tôi sẽ xây dựng một dự án trạm thời tiết mini dựa trên Arduino thú vị, có thể hiển thị cho bạn nhiệt độ xung quanh, độ ẩm, áp suất, chất lượng không khí và nhiều dữ liệu khác từ môi trường xung quanh bạn, có thể được sử dụng để dự đoán thời tiết từ nhà.



Nếu bạn quan tâm đến khí tượng học, dự án này có thể hữu ích cho việc nghiên cứu về điều kiện thời tiết địa phương và những thay đổi ngắn hạn. Dự án được đề xuất là thiết kế trạng thái rắn, có nghĩa là không có bộ phận chuyển động nào tồn tại.

Dự án này có thể được đặt trong điều kiện trong nhà hoặc bán trong nhà, nơi mạch tránh ánh nắng trực tiếp hoặc gió lớn hoặc độ ẩm có thể làm hỏng các cảm biến trên bo mạch.



Thiết kế:

Dự án mạch trạm thời tiết mini được đề xuất được xây dựng xung quanh Arduino, bộ não của trạm thời tiết thu thập rất nhiều dữ liệu từ các cảm biến khác nhau và xử lý chúng và hiển thị trên màn hình LCD 16x2.

Bạn có thể chọn bảng arduino yêu thích của mình cho dự án này. Mạch gồm ba cảm biến MQ-135, BMP180 và DHT11. Hãy xem chi tiết chức năng của từng cảm biến.

Cảm biến MQ-135:

MQ-135 là cảm biến đo chất lượng không khí, có thể phát hiện carbon dioxide, rượu, benzen, khói, butan, propan, v.v. Nếu nồng độ hóa học của các khí này trong không khí cao, thì chúng ta có thể nói rằng không khí bị ô nhiễm.

Cảm biến có thể phát hiện sự thay đổi nồng độ các chất ô nhiễm trong không khí và đưa ra mức điện áp thích hợp. Điện áp đầu ra của cảm biến tỷ lệ thuận với mức nồng độ hóa chất trong không khí.

Sự biến đổi điện áp từ cảm biến được cấp cho Arduino, chúng tôi đã xác định trước các mức ngưỡng trong chương trình. Khi nó vượt qua ngưỡng ngưỡng, bộ vi điều khiển sẽ cho chúng ta biết không khí có an toàn hay không.

Sơ đồ mạch

giao diện cảm biến MQ135 với mạch trạm thời tiết

Sơ đồ trên cho thấy sơ đồ nối dây. Cảm biến này cần nguồn cung cấp 5V bên ngoài vì nó có bộ phận làm nóng bên trong cảm biến tiêu thụ khoảng 1 Watt. Nguồn từ chân nguồn của arduino không thể cung cấp dòng điện cao hơn.

Bộ phận gia nhiệt giữ ấm cho cảm biến và giúp lấy mẫu nồng độ hóa chất thích hợp trong không khí. Cảm biến mất khoảng vài phút để đạt được nhiệt độ tối ưu.

Cảm biến DHT11:

Cảm biến DHT11 hay được biết đến với cái tên Cảm biến nhiệt độ, độ ẩm. Nó có thể đo nhiệt độ và độ ẩm từ xung quanh như tên cho thấy.

Nó là một thiết bị 4 pin nhưng chỉ có 3 trong số chúng được sử dụng. Nó có thể trông giống như một thành phần rất đơn giản, nhưng nó có một bộ vi điều khiển bên trong cảm biến để chuyển dữ liệu ở dạng kỹ thuật số đến bo mạch arduino.

Nó gửi 8 bit dữ liệu mỗi giây tới arduino, để giải mã tín hiệu nhận được, chúng ta cần đưa thư viện vào mã được thiết kế để xử lý nó. Liên kết cho thư viện được cung cấp ở phần sau của bài viết.

Sơ đồ mạch:

giao diện DH11 với arduino

Việc kết nối mạch từ cảm biến đến arduino rất đơn giản. Đầu ra của cảm biến được kết nối với chân A1 của arduino. Nguồn cung cấp Vcc và GND được kết nối với các chân cấp nguồn của arduino.

Lưu ý: Hãy đảm bảo rằng cảm biến của bạn đã tích hợp điện trở kéo lên, nếu cảm biến không có một điện trở kéo lên 4,7K kết nối ở chân đầu ra của cảm biến DHT11.

Cảm biến BMP180:

BMP180 là cảm biến khí áp, nó có thể đo áp suất khí quyển, độ cao và nhiệt độ. Việc đo nhiệt độ từ cảm biến này bị bỏ qua vì chúng tôi có cảm biến chuyên dụng để đo nhiệt độ môi trường.

Cảm biến đo độ cao của thiết lập so với mực nước biển, nó cũng là một trong những thông số được sử dụng trong khí tượng.

Sơ đồ mạch:

giao tiếp BM180 với Arduino
Nó sử dụng giao thức truyền thông I2C, chân SDA đi tới A4 của arduino và SCL đi tới A5 của arduino. Vcc và GND được kết nối với các chân cấp nguồn của arduino.

Kết nối LCD:

cảm biến độ ẩm sử dụng Aduino


Màn hình LCD hiển thị tất cả dữ liệu từ các cảm biến. Kết nối giữa màn hình LCD và arduino là tiêu chuẩn, chúng ta có thể tìm thấy kết nối tương tự trên nhiều dự án dựa trên màn hình LCD khác. Điều chỉnh chiết áp 10K để có khả năng hiển thị tối ưu từ màn hình LCD.

Nguyên mẫu của Tác giả:

hình ảnh nguyên mẫu của trạm thời tiết

Đây là nguyên mẫu của tác giả về một mạch theo dõi thời tiết mini trong đó tất cả cảm biến hiển thị trong sơ đồ được kết nối với bảng arduino.

Lưu ý: Kết nối mạch từ mỗi cảm biến và màn hình LCD phải được kết nối với một bo mạch arduino. Chúng tôi đã cung cấp kết nối cảm biến rời rạc trên mỗi sơ đồ để tránh nhầm lẫn trong khi nhân bản mạch.

Tải xuống các tệp Thư viện trước khi tải mã lên:

Thư viện DHT11: https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

Thư viện BMP180: github.com/adafruit/Adafruit_BMP085_Unified.git

Mã chương trình:

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

GHI CHÚ:

Mạch của trạm thời tiết mini được giải thích mất 2 phút để hiển thị các kết quả đọc từ cảm biến, cho đến khi nó hiển thị 'Cảm biến đang sẵn sàng'. Điều này là do cảm biến MQ-135 mất 2 phút để đạt được nhiệt độ hoạt động tối ưu.




Một cặp: Cách chế tạo một máy sấy vải đơn giản cho mùa mưa Tiếp theo: Vỗ tay điều khiển xe đồ chơi