Giám sát nhiệt độ, độ ẩm bằng App Blynk sử dụng NodeMCU ESP8266

Giám sát nhiệt độ, độ ẩm bằng App Blynk sử dụng NodeMCU ESP8266

Việc giám sát nhiệt độ, độ ẩm trên điện thoại di động. Giờ đây không còn khó khăn nữa?

Việc App Blynk ra đời với một nền tản mạnh mẽ giúp mọi người có thể tạo ra nhiều dự án hay ho.

Mà không cần phải lập trình bằng những đoạn code phức tạp.

Trong bài viết hôm nay mình sẽ hướng dẫn các bạn cách để hiển thị các thông số của cảm biến DHT11 lên Blynk.

Và cách lấy dữ liệu đọc được từ cảm biến nhé.

esp8266-blynk

Truyền dữ liệu từ phần cứng lên App Blynk.

Cấu hình các thông số cảm biến DHT11 trên App Blynk

Để hiển thị các dữ liệu đo chúng ta vào Widget Box (+) > Click vào GAUGE để lấy các thang đo dữ liệu ra.

Nếu bạn chưa biết cách làm sao để tải App và tạo một Project trên Blynk các bạn xem bài viết bên dưới nhé.

esp8266-blynk
esp8266-blynk

Cài đặt các thông số chi tiết nhiệt độ, độ ẩm

Để tiến hành cài đặt các thông số cho cảm biến ta thực hiện các bước sau:

Click vào GAUGE để tiến hành cài đặt thông số.

Cài đặt thông số nhiệt độ

  • Ở mục GAUGE 1: Đặt tên cho thang đo nhiệt độ (temperature).
  • INPUT: Cấu hình cho PIN cần kết nối, ở đây mình chọn Virtual > V6 (0~1023) đổi lại (0~50).
  • LABELS: e.g: Temp:/pin/độ c.
  • REFRESH INTERVAL: Vào Push chọn tốc độ đọc cảm biến nhiệt độ (sec).

Cài đặt thông số độ ẩm

  • Ở mục GAUGE 2 : Đặt tên chothang đo độ ẩm (humidity).
  • INPUT: Cấu hình cho PIN cần kết nối, ở đây mình chọn Virtual > V5  (0~1023) đổi lại (0~100).
  • LABELS: e.g: Temp:/pin/% (Độ ẩm đơn vị là %).
  • REFRESH INTERVAL: Vào Push chọn tốc độ đọc cảm biến độ ẩm (sec).
esp8266-blynk
esp8266-blynk

Biểu đồ nhiệt độ, độ ẩm DHT11

Tiếp tục vào Widget Box (+) > Click vào SUPPERCHART để biểu đồ hiển thị nhiệt độ, độ ẩm ra.

Ở mục SuperChart : Đặt tên biểu đồ.

DATASTREAMS: Đặt tên cho từng biểu đồ Nhiệt độ và Độ Ẩm.

Virtual là các chân dùng để trao đổi dữ liệu giữa phần cứng với App Blynk ở đây mình chọn (V6 cho Nhiệt Độ), (V5 cho Độ Ẩm).

esp8266-blynk
esp8266-blynk
esp8266-blynk

Để hiển thị vectơ các mức giá trị đo trên biểu đồ.

Ta vào mục Y-AXIS VALUES chuyển về nút SHOW (hiển thị) cho cả Nhiệt Độ và Độ Ẩm.

Để hiển thị thời gian cập nhật vào mục X-AXIS VALUES chuyển về nút SHOW.

esp8266-blynk
esp8266-blynk

Như vậy là đã xong phần cài đặt, bước tiếp theo ta tiến hành upload chương trình và xem kết quả nhé.

Sơ đồ đấu nối

NodeMCU ESP8266 Cảm biến nhiệt độ, độ ẩm DHT11
3V3 VCC (5V)
GND GND
D4 OUT

Nguyên lý NodeMCU ESP8266 với DHT11

Các linh kiện cần thiết cho dự án

Tên linh kiện Số lượng Shoppe
NodeMCU ESP8266 1 Mua ngay
Cảm biến nhiệt độ, độ ẩm DHT11 1 Mua ngay
Breadboard 1 Mua ngay
Dây cắm (Đực – Đực) 1 Mua ngay

Code

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include "DHT.h"           
#include <SimpleTimer.h>
#define DHTTYPE DHT11

#define dht_dpin 2
DHT dht(dht_dpin, DHTTYPE); 
SimpleTimer timer;
char auth[] = "49d330c27974424a8d4e897eec57dfd1";
char ssid[] = "Nha Tro 4";
char pass[] = "nguyennam";
float t;
float h;

void setup()
{
    Serial.begin(9600);
    Blynk.begin(auth, ssid, pass);
    dht.begin();
    timer.setInterval(2000, sendUptime);
}

void sendUptime()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature(); 
  Serial.println("Humidity and temperature\n\n");
  Serial.print("Current humidity = ");
  Serial.print(h);
  Serial.print("%  ");
  Serial.print("temperature = ");
  Serial.print(t); 
  Blynk.virtualWrite(V6, t);
  Blynk.virtualWrite(V5, h);
  
}

void loop()
{
  Blynk.run();
  timer.run();
}

Thư viện

  • Download thư viện “DHT.h” : Tải ngay
  • Download thư viện “SimpleTimer.h”: Tải ngay
  • Download thư viện “BlynkSimpleEsp8266.h”: Tải ngay

Giải thích code

Bước đầu tiên chúng ta đi vào khai báo chân đọc cảm biến nhiệt độ, độ ẩm.

Ở đây mình chọn chân GPIO2 tức là chân D4 trên board NodeMCU ESP8266.

#define dht_dpin 2

Tiếp theo ta tiến hành cấu hình các thông số như Token, tên Wifi và mật khẩu Wifi.

char auth[] = "49d330c27974424a8d4e897eec57dfd1";
char ssid[] = "Nha Tro 4";
char pass[] = "nguyennam";

Khai báo biến và đọc giá trị nhiệt độ, độ ẩm DHT11.

  • Đọc nhiệt độ, độ ẩm (DHT11) sử dụng Arduino Uno: Xem ngay
float h = dht.readHumidity();
float t = dht.readTemperature();

Lời kết

Qua bài hôm nay các bạn biết cách làm thế nào để gửi dữ liệu đọc được từ cảm biến nhiệt độ, độ ẩm DHT11 lên Blynk.

Để nhận được nhiều kiến thức mới các bạn Đăng ký để nhận được thông báo sớm nhất.

Tham gia Cộng đồng Arduino KIT để cùng nhau thảo luận và chia sẽ kiến thức về lập trình Arduino.

Nếu các bạn thấy bài viết bổ ích nhớ LikeShare cho mọi người cùng đọc nhé.

Chúc các bạn thành công.

Trân trọng.

Bài viết liên quan

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments