Giới Thiệu
Chào các bạn! Ở bài viết trước mình đã hướng dẫn các bạn cách điều khiển một đèn led thông qua nút nhấn và App Blynk. Ở bài viết này mình sẽ hướng dẫn các bạn cách đọc cảm biến DHT11 với NodeMCU và hiển thị lên Blynk Server
Nếu bạn chưa biết Blynk là gì thì hãy tham khảo bài viết: IoT with Blynk – Hướng Dẫn Cài Đặt để hiểu về cài đặt thư viện cho Arduino, Blynk App và cách tạo tài khoản phù hợp với hướng dẫn của mình!
Chúng ta cùng bắt đầu nào !
Chuẩn Bị
1. Phần cứng
- Kit RF Thu Phát Wifi ESP8266 NodeMCU Lua CP2102
- Cảm Biến Độ Ẩm, Nhiệt Độ DHT11 Ra Chân
Lưu ý : các bạn nên sử dụng cảm biến DHT11 loại ra chân để thuận tiện kết nối hơn loại 4 chân
2. Phần mềm
- Arduino IDE đã cài đặt tương thích với ESP8266.
Nếu bạn chưa cài đặt có thể tham khảo hướng dẫn sau: Hướng dẫn lập trình ESP8266 với Arduino IDE - Thư viện Blynk trên Arduino.
Nếu bạn chưa có thư viện Blynk có thể tham khảo hướng dẫn sau: IoT with Blynk – Hướng Dẫn Cài Đặt - Mobile App Blynk , tất nhiên rồi mình đang sử dụng Blynk mà ^^
- Thư viện Adafruit_Sensor
- Thư viện DHT-sensor-library
Hướng Dẫn
1. Phần cứng
Các bạn kết nối NodeMCU với DHT11 như sau:
Kit WiFi ESP8266 NodeMCU Lua CP2102 | Cảm Biến Độ Ẩm, Nhiệt Độ DHT11 |
VCC | + |
GND | – |
D6 | OUT |
2. Phần mềm
📱 Blynk App
Chúng ta sẽ tạo vẫn sử dụng project cũ và giữ nguyên mã AuthTokens . Nếu bạn là người mới hãy tham khảo bài viết:
IoT with Blynk – Hướng Dẫn Cài Đặt trước khi thực hiện tiếp các bước sau.
Đầu tiên mình sẽ thêm Value Display(V5) và Labeled Value(V6)
Các bạn có thể thêm Display Gauge cho đẹp!
Ngoài ra các bạn có thể cấu hình thêm dạng đồ thị để nhìn cho sinh động hơn
Vậy là chúng ta đã cấu hình trên App xong rồi !
💻 Arduino
Nếu bạn là người mới hãy tham khảo trước bài viết:
IoT with Blynk – Hướng Dẫn Cài Đặt để biết cách cài đặt Arduino cho phù hợp với bài học này !
Trước tiên các bạn hãy add Thư viện Adafruit_Sensor và DHT-sensor-library vào Arduino Library!
#define BLYNK_PRINT Serial #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> #include <DHT.h> char auth[] = "YourAuthToken"; // Nhập AuthToken char ssid[] = "YourNetworkName"; // Nhập tên WiFi char pass[] = "YourPassword"; // Nhập password WiFi #define DHTPIN D2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); BlynkTimer timer; void sendSensor() { float h = dht.readHumidity(); float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); return; } Blynk.virtualWrite(V5, h); Blynk.virtualWrite(V6, t); Serial.print("Nhiet do: " +String(t)); Serial.println(" Do am: " +String(h)); } void setup() { Serial.begin(115200); Blynk.begin(auth, ssid, pass, "makerblynk.ddns.net", 8080); dht.begin(); timer.setInterval(1000L, sendSensor); } void loop() { Blynk.run(); timer.run(); }
Sau khi đã thêm thư viện thành công các bạn cần chỉnh sửa thêm một số phần trong Source Code
char ssid[] = “YourNetworkName”; // Nhập tên WiFi
char pass[] = “YourPassword”; // Nhập password WiFi
Ở trong hướng dẫn này mình sử dụng BlynkTimer timer;
Timer này sẽ giúp gửi dữ liệu từ cảm biến lên Server 1s – 1 lần, bạn có thể thấy ở trong vòng setup
Ngoài ra chúng ta cũng sẽ có 1 funtion để đọc giá trị cảm biến
Nếu bạn làm các bước như trên thành công thì chúng ta sẽ được giao diện hiển thị như thế này! Rất đẹp và sinh động đúng không nào ^^
Tổng Kết
Trong bài này chúng ta đã học được
- Đọc cảm biến DHT11
- Hiển thị nhiệt độ độ ẩm lên Blynk App
Vậy mình đã hướng dẫn các bạn cách đọc dữ liệu từ DHT11 lên Blynk. Chúc các bạn thành công với dự án của mình !