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

28 Tháng 04 2019 | Đăng bởi: Cao Thanh Hùng

 

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 cho thang đ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

Arduino KIT

Shoppe

NodeMCU ESP8266

 Xem sản phẩm tại đây

Xem sản phẩm tại đây

Cảm biến nhiệt độ, độ ẩm DHT11

Xem sản phẩm tại đây

Xem sản phẩm tại đây

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

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

Viết bình luận: