Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Một thực tế rất rõ ràng là trong hầu hết các ngành dọc, nhiệt độ, độ ẩm, áp suất, chất lượng không khí, chất lượng nước, v.v., là những yếu tố quan trọng cần được theo dõi liên tục và cần có hệ thống cảnh báo cần thiết khi các giá trị thay đổi cách xa các ngưỡng đã đặt.
Nguyên mẫu này sẽ giúp chúng tôi hiểu quy trình theo dõi nhiệt độ và độ ẩm bằng cách sử dụng "Cảm biến nhiệt độ & độ ẩm kỹ thuật số điện dung AM2301".
Việc xây dựng nguyên mẫu này rất đơn giản và dễ dàng. Tôi hy vọng rằng các hướng dẫn trong "Có thể giảng dạy" này sẽ giúp người đọc có một bức tranh rõ ràng về việc thực hiện nó trong thực tế.
Quân nhu
- Cảm biến nhiệt độ & độ ẩm kỹ thuật số điện dung AM2301
- D1 Mini V2 NodeMcu 4M Bytes Lua WIFI Internet Of Things Phát triển Board dựa trên ESP8266
- 170 pts Mini Breadboard SYB-170 White
- Dây nhảy nam sang nữ 40 chiếc 10cm
Bước 1: Sơ đồ mạch và kết nối
Các kết nối rất đơn giản và như sau:
- 3V của AM2301 đến 3V của WeMos D1 Mini
- GND của AM2301 đến GND của WeMos D1 Mini
- Dây tín hiệu (Màu vàng) của AM2301 đến D4 (GPIO 2) của WeMos D1 Mini
Lưu ý: Để xây dựng nguyên mẫu này, chúng tôi sẽ không cần bất kỳ breadboard nào vì chúng tôi chỉ có ba dây để kết nối. Tôi để người đọc tài liệu này lựa chọn, có nên sử dụng breadboard (hay) chỉ cần kết nối trực tiếp WeMos D1 mini với AM2301 bằng dây Jumper.
Bước 2: Đặt cấu hình Blynk để theo dõi nhiệt độ và độ ẩm
Ảnh chụp màn hình từng bước đã được cung cấp để hiểu rõ hơn về quy trình cấu hình Blynk. Người đọc được yêu cầu xem qua ảnh chụp màn hình và ứng dụng được định cấu hình với hai thành phần "Đồng hồ đo", một để biểu thị Độ ẩm và một thành phần còn lại là Nhiệt độ.
Bước 3:
Bắt đầu mã >>>>>
#define BLYNK_PRINT Sê-ri
#include SPI.h
#include ESP8266WiFi.h
#include BlynkSimpleEsp8266.h
#include DHT.h
char auth = "hQqK5jvA0h5JqubLnnpxV94eEltFbw1Y"; // Nhập mã xác thực được gửi bởi Blink
char ssid = "Smaragd25"; // Nhập Tên WIFI của bạn
char pass = "Smaragdine @ 2017"; // Nhập mật khẩu WIFI của bạn
#define DHTPIN 2 // Chân kỹ thuật số 4
// #define DHTTYPE DHT11 // DHT 11
// #define DHTTYPE DHT22 // DHT 22, AM2302, AM2321
#define DHTTYPE DHT21 // DHT 21, AM2301
DHT dht (DHTPIN, DHTTYPE);
Bộ đếm thời gian BlynkTimer;
void sendSensor ()
{
float h = dht.readHumidity ();
float t = dht.readTempe Heat (); // hoặc dht.readTempether (true) cho Fahrenheit
if (isnan (h) || isnan (t)) {
Serial.println ("Không thể đọc từ cảm biến DHT!");
trở lại; }
Blynk.virtualWrite (V5, h); // V5 dành cho Độ ẩm
Blynk.virtualWrite (V6, t); // V6 dành cho Nhiệt độ
}
void setup ()
{
Serial.begin (9600); // Xem trạng thái kết nối trong Serial Monitor
Blynk.begin (auth, ssid, pass);
dht.begin ();
timer.setInterval (1000L, sendSensor);
}
void loop ()
{
Blynk.run ();
timer.run ();
}
Cuối mã >>>>>
Trong đoạn mã trên, đặc biệt là trong các câu lệnh #include, vui lòng đặt tất cả các tệp tiêu đề (kết thúc bằng đuôi.h) trong "", nếu không mã sẽ tạo ra lỗi.
Lưu ý: Trong trường hợp bạn đã chọn sai câu lệnh Bộ điều khiển nhiệt độ và độ ẩm trong mã, các giá trị bạn nhận được rõ ràng là không chính xác (Ảnh chụp màn hình mẫu được đính kèm), mặc dù cảm biến đang hoạt động. Vui lòng comment / bỏ ghi chú những dòng sau để đáp ứng nhu cầu của bạn. Chỉ một trong những dòng sau là không được ghi chú, phần còn lại phải được bình luận.
- #define DHTTYPE DHT11 // DHT 11
- #define DHTTYPE DHT22 // DHT 22, AM2302, AM2321
- #define DHTTYPE DHT21 // DHT 21, AM2301
Trong trường hợp của tôi, tôi đã bỏ ghi chú dòng cuối cùng, tức là: "#define DHTTYPE DHT21 // DHT 21, AM2301" và đã nhận xét các dòng còn lại.
Để có vẻ ngoài đẹp hơn, tôi đã đóng gói cả WeMos D1 Mini và cảm biến AM2301 trong Styrofoam. Tôi đang có kế hoạch làm một hộp đựng bằng tấm acrylic để nhúng gọn gàng phần cứng hoàn chỉnh và làm cho nó trông chuyên nghiệp hơn.
Trong trường hợp có bất kỳ câu hỏi nào, vui lòng gửi lại cho tôi tại [email protected] (hoặc) ping cho tôi trên WhatsApp theo số +91 9398472594. Tôi sẽ rất vui khi nhận được các ý kiến và cải thiện bài viết của mình.