Mục lục:
Video: Trạm thời tiết Với Arduino, BME280 & Màn hình hiển thị để xem xu hướng trong vòng 1-2 ngày qua: 3 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Xin chào!
Ở đây, các trạm thời tiết có thể được hướng dẫn đã được giới thiệu. Chúng hiển thị áp suất không khí, nhiệt độ và độ ẩm hiện tại. Những gì họ thiếu cho đến nay là một bài thuyết trình về khóa học trong vòng 1-2 ngày qua. Quá trình này sẽ có lợi thế là bạn không chỉ có thể đọc bằng đồ thị các giá trị hiện tại mà còn có thể xem qua, xem chúng đã thay đổi như thế nào trong 1-2 ngày qua. Kết quả là, người ta nhận ra, ví dụ, một sự thay đổi thời tiết có thể xảy ra, vì áp suất không khí thay đổi rất nhiều. Tuy nhiên, người ta cũng nhận ra mối quan hệ chung giữa các đại lượng đo được.
Ví dụ, độ ẩm giảm khi nhiệt độ không khí tăng lên. Điều này là do không khí ấm có thể hấp thụ nhiều độ ẩm hơn không khí lạnh. Nếu độ ẩm tương đối là khoảng 60% ở 20 ° C, thì ở 25 ° C, không khí có thể hấp thụ nhiều độ ẩm hơn một cách tuyệt đối. Do đó, độ ẩm tương đối không còn là 60%, mà chỉ giảm 50%.
Ngoài ra, bạn có thể biết thời gian nhiệt độ cao nhất hoặc thấp nhất được mong đợi trong ngày. Hoặc độ ẩm tăng mạnh khi trời mưa. Lý tưởng cho các nhà khí tượng học. Tôi rất vui nếu bạn có thể đăng trải nghiệm của mình trong phần nhận xét.
Bước 1: Các bộ phận
Đối với trạm thời tiết này, bạn chỉ cần 5 phần:
* Arduino mega: ebay arduino mega
* Cảm biến thời tiết BME280: ebay BME280
* Màn hình 320x480 pixel cho màn hình Arduino Mega: ebay 320x480
* + Nguồn điện 9V: nguồn điện ebay
* Dây điện
Tổng chi phí chỉ dưới $ 25.
Bước 2: Mã Arduino
Mạch rất đơn giản. Bạn chỉ cần kết nối cảm biến với arduino mega theo cách này:
Vin + 5V
GND GND
Chân SDA 20
SCL chân 21
Màn hình chỉ được cắm vào dải kết nối trên arduino mega.
Dưới đây là các liên kết cho các thư viện arduino mà bạn sẽ cần:
BME280-library:
thư viện cảm biến chung:
Trung tâm của trạm thời tiết này, như tôi đã nói, là biểu diễn đồ họa của dữ liệu thời tiết. Hiện tại, các giá trị được cập nhật 6 phút một lần và đồ thị được dịch sang trái 1 pixel. Bằng cách này, 1,5 ngày cuối cùng có thể được ghi lại. Tất nhiên điều này có thể được thay đổi bất cứ lúc nào. Chỉ khi đó giá trị 360000 ms (= 6 phút) và tất nhiên trục thời gian tính bằng giờ phải được thay đổi. Đây là những dòng bạn sẽ phải thay đổi:
time_neu = millis ();
if (time_neu <time_alt) // để tránh sự cố sau khi tràn mili
{
time_next = 0 + 360000;
}
if (time_neu> time_next && time_next> = 360000) // phép đo mới sau 6 phút
{
Tôi đã quyết định giữ nguyên thang đo nhiệt độ, áp suất không khí và độ ẩm, vì nó cho phép bạn nhanh chóng đánh giá, theo thời gian, áp suất không khí cao, trung bình hay thấp, dựa trên vị trí của các kết quả đọc hiện tại. Nếu tôi điều chỉnh lại thang đo nhiều lần, tôi sẽ không nhận ra điều này ngay từ cái nhìn đầu tiên. Trục thời gian nằm ở vị trí y = 290 pixel. Các dấu trên trục y cách nhau 45 pixel. Nếu bạn muốn hiển thị áp suất không khí từ 940 mbar đến 1000 mbar trong các bước 10 mbar, hãy tiến hành như sau:
Đầu tiên, thiết lập phương trình tổng quát y = k * x + d. Bây giờ bạn sử dụng 2 cặp giá trị đó (x = 940, y = 290) và (x = 950, y = 245). Điều này cho 2 phương trình với hai ẩn số k và d: 290 = k * 940 + d và 245 = k * 950 + d. Bằng cách trừ cả hai phương trình, ta được: 290 - 245 = k * 940 - k * 950 + d - d. Số d chưa biết sẽ biến mất theo cách này và chúng ta thu được k = - 45/10 = -4,5. Giá trị của k này được đặt vào một trong hai phương trình ban đầu: 290 = -4,5 * 940 + d. Bằng cách này, người ta nhận được giá trị của d, cụ thể là d = 4520.
Nếu bạn muốn áp suất không khí, chẳng hạn chỉ đại diện cho 955 mbar đến 985 mbar, bạn đặt các cặp giá trị (955, 290) và (960, 245) trong phương trình đường thẳng. Sau đó, người ta thu được k = -9 và d = 8885. Tương tự, người ta tính các phương trình đường thẳng cho nhiệt độ và độ ẩm không khí. 3 phương trình này xuất hiện ở đây trong chương trình:
cho (i = 0; i <= 348; i ++)
{
nếu (độ ẩm ! = -66)
{
myGLCD.setColor (255, 0, 0);
//myGLCD.drawPixel(81 + i, -4,5 * nhiệt độ + 200);
myGLCD.drawLine (81 + i, -4,5 * nhiệt độ + 200,81 + i + 1, -4,5 * nhiệt độ [i + 1] + 200);
myGLCD.setColor (0, 255, 0);
//myGLCD.drawPixel(81 + i, -4,5 * độ ẩm + 380);
myGLCD.drawLine (81 + i, -4,5 * độ ẩm + 380,81 + i + 1, -4,5 * độ ẩm [i + 1] + 380);
myGLCD.setColor (0, 0, 255);
//myGLCD.drawPixel(81 + i, -4,5 * áp suất + 4520);
myGLCD.drawLine (81 + i, -9.0 * áp suất + 8885, 81 + i + 1, -9.0 * áp suất [i + 1] + 8885);
}
}
Bước 3: Kết quả
Một lời cho video: Để hiển thị sự mở rộng của biểu đồ, tôi đã giảm các bước thời gian xuống 1 giây. Do đó màn hình hiển thị bị nhấp nháy mạnh. Trong thực tế, các bước thời gian là 6 phút. Vì vậy, bạn không thể thấy bất kỳ nhấp nháy nào…
Tôi sẽ rất vui nếu một hoặc nhà khí tượng học có sở thích khác cố gắng điều chỉnh trạm thời tiết của tôi. So sánh với các trạm đo chính thức (ví dụ như Đại học Graz / austria) cho thấy khả năng sử dụng của các đường cong đo.
Hơn nữa, tôi sẽ rất vui nếu bạn có thể bình chọn cho tôi trong cuộc thi cảm biến và cho những người hướng dẫn khác của tôi trong cuộc thi khoa học trong lớp:
- https://www.instructables.com/id/DIY-LED-photomete…
- www.instructables.com/id/DIY-Wind-Tunnel-a…
- www.instructables.com/id/Simple-Autorange-…
Cảm ơn rất nhiều vì chuyện này.
Nếu bạn quan tâm đến nhiều dự án vật lý hơn, đây là kênh youtube của tôi:
các dự án vật lý khác:
Theo nghĩa này, Eureka…
Đề xuất:
Trạm thời tiết NaTaLia: Trạm thời tiết sử dụng năng lượng mặt trời Arduino Đã thực hiện đúng cách: 8 bước (có hình ảnh)
Trạm thời tiết NaTaLia: Trạm thời tiết sử dụng năng lượng mặt trời Arduino Đã hoàn thành đúng cách: Sau 1 năm hoạt động thành công trên 2 địa điểm khác nhau, tôi đang chia sẻ kế hoạch dự án trạm thời tiết sử dụng năng lượng mặt trời của mình và giải thích cách nó phát triển thành một hệ thống thực sự có thể tồn tại trong thời gian dài thời kỳ từ năng lượng mặt trời. Nếu bạn theo dõi
Ngày trong tuần, lịch, thời gian, độ ẩm / nhiệt độ với trình tiết kiệm pin: 10 bước (có hình ảnh)
Ngày trong tuần, Lịch, Thời gian, Độ ẩm / Nhiệt độ Với Trình tiết kiệm pin: Chế độ tiết kiệm năng lượng ở đây là những gì đặt tính năng Có thể hướng dẫn này ngoài các ví dụ khác hiển thị ngày trong tuần, tháng, ngày trong tháng, thời gian, độ ẩm và nhiệt độ. Đó là khả năng cho phép dự án này được chạy từ pin, mà không
Hiển thị thời gian và thời tiết 3 trong 1 Arduino: 11 bước
Hiển thị thời gian và thời tiết 3 trong 1 Arduino: Tôi thích vi điều khiển PIC và tôi thích lập trình bằng hợp ngữ. Trên thực tế, trong vài năm qua, tôi đã đăng khoảng 40 dự án trên trang web của mình dựa trên sự kết hợp đó. Gần đây, tôi đã đặt hàng một số bộ phận từ một trong những nước Mỹ yêu thích của tôi v
Nến thời tiết - Xem nhanh thời tiết và nhiệt độ: 8 bước
Nến thời tiết - Xem nhanh thời tiết và nhiệt độ: Sử dụng ngọn nến kỳ diệu này, bạn có thể cho biết nhiệt độ hiện tại và điều kiện bên ngoài ngay lập tức
Acurite 5 trong 1 Trạm thời tiết sử dụng Raspberry Pi và Weewx (các trạm thời tiết khác tương thích): 5 bước (có Hình ảnh)
Trạm thời tiết Acurite 5 trong 1 Sử dụng Raspberry Pi và Weewx (các Trạm thời tiết khác Tương thích): Khi tôi mua trạm thời tiết Acurite 5 trong 1, tôi muốn có thể kiểm tra thời tiết tại nhà của mình khi tôi đi vắng. Khi tôi về nhà và thiết lập nó, tôi nhận ra rằng tôi phải có màn hình kết nối với máy tính hoặc mua trung tâm thông minh của họ,