Mục lục:
Video: Trạm thời tiết tự làm bằng DHT11, BMP180, Nodemcu với Arduino IDE qua máy chủ Blynk: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Github: DIY_Weather_Station
Hackster.io: Trạm thời tiết
Bạn sẽ thấy Ứng dụng thời tiết phải không? Giống như, khi bạn mở nó, bạn sẽ biết các điều kiện thời tiết như Nhiệt độ, Độ ẩm, v.v. Những giá trị đó là giá trị trung bình của một khu vực lớn, vì vậy nếu bạn muốn biết các thông số chính xác liên quan đến phòng của mình, bạn không thể chỉ. dựa vào Ứng dụng thời tiết. Vì mục đích này, chúng ta hãy chuyển sang chế tạo Trạm thời tiết tiết kiệm chi phí, đồng thời đáng tin cậy và cung cấp cho chúng tôi giá trị chính xác.
Trạm thời tiết là cơ sở có các dụng cụ, thiết bị đo điều kiện khí quyển để cung cấp thông tin cho dự báo thời tiết và nghiên cứu thời tiết, khí hậu. Nó đòi hỏi một chút nỗ lực để cắm và viết mã. Vậy hãy bắt đầu.
Về Nodemcu:
NodeMCU là một nền tảng IoT mã nguồn mở.
Nó bao gồm phần sụn chạy trên ESP8266 Wi-Fi SoC của Espressif Systems và phần cứng dựa trên mô-đun ESP-12.
Thuật ngữ "NodeMCU" theo mặc định đề cập đến phần sụn thay vì bộ dụng cụ dành cho nhà phát triển. Phần sụn sử dụng ngôn ngữ kịch bản Lua. Nó dựa trên dự án eLua và được xây dựng trên Espressif Non-OS SDK cho ESP8266. Nó sử dụng nhiều dự án mã nguồn mở, chẳng hạn như lua-cjson và spiffs.
Yêu cầu về cảm biến và phần mềm:
1. Nodemcu (esp8266-12e v1.0)
2. DHT11
3. BMP180
4. Arduino IDE
Bước 1: Biết cảm biến của bạn
BMP180:
Sự miêu tả:
BMP180 bao gồm cảm biến điện trở áp, bộ chuyển đổi tương tự sang kỹ thuật số và bộ điều khiển với E2PROM và giao diện I2C nối tiếp. BMP180 mang lại giá trị áp suất và nhiệt độ không bù trừ. E2PROM đã lưu trữ 176 bit dữ liệu hiệu chuẩn riêng lẻ. Điều này được sử dụng để bù đắp, phụ thuộc nhiệt độ và các thông số khác của cảm biến.
- UP = dữ liệu áp suất (16 đến 19 bit)
- UT = dữ liệu nhiệt độ (16 bit)
Thông số kỹ thuật:
- Vin: 3 đến 5VDC
- Logic: tuân thủ 3 đến 5V
- Phạm vi cảm biến áp suất: 300-1100 hPa (9000m đến -500m trên mực nước biển)
- Độ phân giải lên đến 0,03hPa / 0,25m-phạm vi hoạt động 40 đến + 85 ° C, độ chính xác nhiệt độ + -2 ° C
- Bo mạch / chip này sử dụng I2C 7-bit địa chỉ 0x77.
DHT11:
Sự miêu tả:
- DHT11 là một cảm biến nhiệt độ và độ ẩm kỹ thuật số cơ bản, chi phí cực thấp.
- Nó sử dụng một cảm biến độ ẩm điện dung và một điện trở nhiệt để đo không khí xung quanh và phát ra tín hiệu kỹ thuật số trên chân dữ liệu (không cần chân đầu vào tương tự). Nó khá đơn giản để sử dụng, nhưng yêu cầu thời gian cẩn thận để lấy dữ liệu.
- Nhược điểm thực sự duy nhất của cảm biến này là bạn chỉ có thể lấy dữ liệu mới từ nó cứ sau 2 giây một lần, vì vậy khi sử dụng thư viện của chúng tôi, số đọc cảm biến có thể cũ lên đến 2 giây.
Thông số kỹ thuật:
- Nguồn 3 đến 5V và I / O
- Tốt cho các bài đọc nhiệt độ 0-50 ° C độ chính xác ± 2 ° C
- Tốt cho các bài đọc độ ẩm 20-80% với độ chính xác 5%
- Sử dụng dòng điện tối đa 2,5 mA trong quá trình chuyển đổi (trong khi yêu cầu dữ liệu)
Bước 2: Kết nối
DHT11 với Nodemcu:
Pin 1 - 3,3V
Pin 2 - D4
Pin 3 - NC
Pin 4 - Gnd
BMP180 với Nodemcu:
Vin - 3,3V
Gnd - Gnd
SCL - D6
SDA - D7
Bước 3: Thiết lập Blynk
Blynk là gì?
Blynk là một Nền tảng với các ứng dụng iOS và Android để điều khiển Arduino, Raspberry Pi và các ứng dụng tương tự qua Internet.
Đó là một bảng điều khiển kỹ thuật số, nơi bạn có thể xây dựng giao diện đồ họa cho dự án của mình bằng cách kéo và thả các widget. Nó thực sự đơn giản để thiết lập mọi thứ và bạn sẽ bắt đầu mày mò trong vòng chưa đầy 5 phút. Blynk không bị ràng buộc với một số bảng hoặc lá chắn cụ thể. Thay vào đó, nó hỗ trợ phần cứng mà bạn lựa chọn. Cho dù Arduino hoặc Raspberry Pi của bạn được liên kết với Internet qua Wi-Fi, Ethernet hoặc chip ESP8266 mới này, Blynk sẽ giúp bạn trực tuyến và sẵn sàng cho Internet Of Your Things.
Để biết thêm thông tin về cách thiết lập Blynk: Thiết lập Blynk chi tiết
Bước 4: Mã
// Nhận xét cho mỗi dòng được đưa ra trong tệp.ino bên dưới
#include #define BLYNK_PRINT Serial #include #include #include #include #include Adafruit_BMP085 bmp; #define I2C_SCL 12 #define I2C_SDA 13 float dst, bt, bp, ba; char dstmp [20], btmp [20], bprs [20], balt [20]; bool bmp085_present = true; char auth = "Đặt khóa Authication của bạn từ ứng dụng Blynk tại đây"; char ssid = "WiFi SSID của bạn"; char pass = "Mật khẩu của bạn"; #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE); // Định nghĩa mã pin và bộ định thời dhttype BlynkTimer; void sendSensor () {if (! bmp.begin ()) {Serial.println ("Không thể tìm thấy cảm biến BMP085 hợp lệ, hãy kiểm tra dây!"); while (1) {}} float h = dht.readHumidity (); float t = dht.readTempe Heat (); if (isnan (h) || isnan (t)) {Serial.println ("Không thể đọc từ cảm biến DHT!"); trở lại; } double gamma = log (h / 100) + ((17,62 * t) / (243,5 + t)); kép dp = 243,5 * gamma / (17,62-gamma); float bp = bmp.readPressure () / 100; float ba = bmp.readAltitude (); float bt = bmp.readTempe Heat (); float dst = bmp.readSealevelPressure () / 100; Blynk.virtualWrite (V5, h); Blynk.virtualWrite (V6, t); Blynk.virtualWrite (V10, bp); Blynk.virtualWrite (V11, ba); Blynk.virtualWrite (V12, bt); Blynk.virtualWrite (V13, dst); Blynk.virtualWrite (V14, dp); } void setup () {Serial.begin (9600); Blynk.begin (auth, ssid, pass); dht.begin (); Wire.begin (I2C_SDA, I2C_SCL); chậm trễ (10); timer.setInterval (1000L, sendSensor); } void loop () {Blynk.run (); timer.run (); }
Đề 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
Trạm thời tiết tự làm đơn giản với DHT11 và màn hình OLED: 8 bước
Trạm thời tiết tự làm đơn giản với DHT11 và Màn hình OLED: Trong hướng dẫn này, chúng ta sẽ học cách tạo một trạm thời tiết đơn giản bằng cách sử dụng Arduino, cảm biến DHT11, Màn hình OLED và Visuino để hiển thị nhiệt độ và độ ẩm. Xem video trình diễn
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)
Trạm thời tiết Với Arduino, BME280 & Hiển thị để xem xu hướng trong vòng 1-2 ngày qua: Xin chào! Đây là các trạm thời tiết có thể 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ó một
Cách xây dựng Trạm thời tiết bằng XinaBox và Ubidots qua HTTP: 7 bước
Cách xây dựng Trạm thời tiết bằng XinaBox và Ubidots qua HTTP: Tìm hiểu cách tạo Trạm thời tiết của riêng bạn tại Ubidots, sử dụng XinaBox xChips (IP01, CW01 và SW01) Mô-đun lõi ESP8266 và Wi-Fi (xChip CW01) cho phép người dùng gửi dữ liệu từ xChips mô-đun của XinaBox tới đám mây. Dữ liệu này có thể được theo dõi từ xa
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ọ,