Đọc cảm biến nhiệt độ, độ ẩm từ DHT11 up lên server làm webapp

Hôm nay, mình sẽ dùng cảm biến DHT11 để đọc nhiệt độ, độ ẩm, từ đó đẩy lên Internet thông qua iNut Cảm biến. Đồng thời sẽ quay màn hình quá trình làm webapp devil.

Các bạn cần làm hết các bước trong bài hướng dẫn này trước nhé. Okay, chúng ta cần chuẩn bị thêm một con cảm biến nhiệt độ, độ ẩm giá rẻ DHT11 cho bài viết này nữa là okie.

Lắp mạch kiểm tra DHT11 có chạy hay không?

Download và cài đặt thư viện hỗ trợ sử dụng DHT11: download tại đây

Kết nối cảm biến DHT11 với mạch Arduino

DHT11 Arduino UNO R3
GND GND
Vcc 5V
Signal / OUT D2

Code Arduino

// Gọi thư viện DHT11
#include<DHT.h>           
 
const int DHTPIN = 2;       //Đọc dữ liệu từ DHT11 ở chân 2 trên mạch Arduino
const int DHTTYPE = DHT11;  //Khai báo loại cảm biến, có 2 loại là DHT11 và DHT22
 
DHT dht(DHTPIN, DHTTYPE);
 
void setup() {
  Serial.begin(9600);
  dht.begin();         // Khởi động cảm biến
}
 
void loop() {
  float h = dht.readHumidity();    //Đọc độ ẩm
  float t = dht.readTemperature(); //Đọc nhiệt độ
  
  Serial.println("Arduino.vn");
  Serial.print("Nhiet do: ");
  Serial.println(t);               //Xuất nhiệt độ
  Serial.print("Do am: ");
  Serial.println(h);               //Xuất độ ẩm
  
  Serial.println();                //Xuống hàng
  
}

Kết quả như thế này là ổn, nhiệt độ, độ ẩm có thể khác hình tùy theo khu vực mà bạn ở nhé.

Okay, đến giao đoạn Internet of Things rồi

Để lên được Internet of Things, các bạn cần phải sửa đổi đoạn code trên một chút, mình sẽ làm một video biến đổi từ đoạn code ở bài trước sang code đọc nhiệt độ DHT11.

Kết nối iNut cảm biến với mạch Arduino

iNut cảm biến Arduino UNO R3
GND GND
3v3 3v3
D1 SDA
D2 SCL

Code Arduino

#include <Wire.h>
#define N_SENSOR  2
float sensors[N_SENSOR]; //biến lưu trữ danh sách cảm biến

// Gọi thư viện DHT11
#include<DHT.h>           
 
const int DHTPIN = 2;       //Đọc dữ liệu từ DHT11 ở chân 2 trên mạch Arduino
const int DHTTYPE = DHT11;  //Khai báo loại cảm biến, có 2 loại là DHT11 và DHT22
 
DHT dht(DHTPIN, DHTTYPE);
 
void setup() {
  Serial.begin(9600);
  dht.begin();         // Khởi động cảm biến

  Wire.begin(10); //Theo như yêu cầu của iNut Platform, các bạn sẽ dùng cổng I2C với địa chỉ là 10.
  Wire.onRequest(i2cRequestEvent); //Mỗi khi iNut - Cảm biến yêu cầu thì sẽ chạy hàm này nhằm mục tiêu gửi dữ liệu lên cho iNut - Cảm biến, cứ 01 giây sẽ yêu cầu gửi 01 lần

  Serial.println("Xin chao iNut Platform");
}

void i2cRequestEvent()
{
  //phải có nhé, chỉ cần 02 dòng này là data đã được gửi đi
  char *data = (byte*)&sensors; 
  Wire.write(data, sizeof(sensors));
 
 
  //debug - Kiểm tra cho bạn dễ hình dung dữ liệu được gửi đi
  Serial.print("sizeof(sensors): ");
  Serial.println(sizeof(sensors));
  Serial.print("sizeof(float): ");
  Serial.println(sizeof(float));
}
 
void loop() {
  float h = dht.readHumidity();    //Đọc độ ẩm
  float t = dht.readTemperature(); //Đọc nhiệt độ
  
  Serial.println("Arduino.vn");
  Serial.print("Nhiet do: ");
  Serial.println(t);               //Xuất nhiệt độ
  Serial.print("Do am: ");
  Serial.println(h);               //Xuất độ ẩm
  
  Serial.println();                //Xuống hàng


  //Nhiệm vụ của bạn là gán giá trị cảm biến vào các phần tử của mảng sensors
  sensors[0] = h;
  sensors[1] = t;
}

Okay, như vậy iNut cảm biến của bạn đã đẩy lên server thành công.

Xem hướng dẫn chỉnh sửa lại giao diện

Để cài đặt chương trình kiểm thử iNut các bạn làm theo các hướng dẫn sau đây (Sau khi cài đặt xong, các bạn làm như video trên để ra được bản mong muốn nhé):

Các bạn mở Windows command line lên bằng cách nhấn tổ hợp phím Windows + R (phím Windows là phím giữa Alt và Ctrl á). Sau đó gõ lệnh cmd và nhấn OK.

Trong bản lệnh hiện ra, bạn lần lượt chạy các lệnh sau (chép và dán vào từng lệnh một cho chắc nhé)

Clone code về

git clone https://github.com/ngohuynhngockhanh/iNut-Node-RED-Kickstarter

cd iNut-Node-RED-Kickstarter

git checkout sensor-serial-monitor

Cài đặt

npm install

Chạy chương trình

npm start

Sau khi cài đặt xong, bạn sẽ có một thông báo như thế này:

Và các bạn truy cập vào http://127.0.0.1:1880/... nhé! Đây là giao diện của chúng ta.

Các bạn truy cập vào địa chỉ http://localhost:1880/ui/... để xem giao diện đồ họa nhé.

Okay, cài đặt xong rồi, bước tiếp theo là cập nhập các mã thông tin trong ví dụ mẫu cho phù hợp với các thiết bị iNut của bạn. 

Cách chép mã Node-Red topic từ phần mềm iNut

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

Youtube: 
Cách chuyển code thường DHT11 sang code đẩy lên mây với iNut cảm biến
Hướng dẫn sửa code để có bảng giao diện ưng ý
Những hình ảnh về dự án: 
Bài viết truyền cảm hứng: 
lên
6 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Hướng dẫn sử dụng if else trong Node-RED / iNut Node-RED IDE

Bài viết sẽ hướng dẫn bạn sử dụng hàm rẻ nhánh if else trong nền tảng node-red / iNut Node-RED IDE.

lên
7 thành viên đã đánh giá bài viết này hữu ích.

Kết nối điều khiển từ xa sử dụng ESP8266 và Arduino với hệ thống firmware iNut Cảm biến CloudMQTT - 1000 firmware miễn phí

Chuyện kể rằng, có 02 sinh viên Việt Nam, trong lúc làm đồ án đại học kết nối điều khiển từ xa qua Internet. Một người thì chọn phương án truyền thống sử dụng máy tính làm máy chủ và demo các tính năng theo yêu cầu đồ án. Người còn lại biết đến iNut Sensor và tìm cách tối ưu hóa phần mềm và phần cứng nhằm chau chuốt cho đồ án của mình trở nên "xịn" và "nhiều tính năng bá đạo". Đến lúc bảo vệ đồ án, cậu sinh viên 01 cảm thấy choáng ván với muôn vàn vấn đề từ việc nơi trình bày đồ án không có wifi, mạng chập chờn, máy tính mở không lên, đứt cáp biển,... Cuối cùng cũng bảo vệ được với điểm số không ưng ý lắm dù tốn rất nhiều thời gian và công sức. Cậu còn lại nhờ vào việc chau chuốt phần mềm, tối ưu hóa và comment kĩ từng lệnh trong dòng code, viết báo cáo bài bản chuẩn bị slide như ý, dùng điện thoại cài wifi, quét mã QRcode để chia sẻ quyền truy cập đến phần mềm rất chuyên nghiệp, mọi thứ cậu chủ động hoàn toàn mà không bị các vấn đề "học tài thi phận" bủa vây mà kết quả hết sức mĩ mãn, điểm số mĩ miều, kiến thức IoT được chuẩn hóa. Thực vậy, các dự án, đồ án sử dụng nền tảng iNut Platform bên dưới cho phép các bạn sinh viên làm các dự án hết sức hoàn hảo: từ xe điều khiển, bãi giữ xe thông minh, hệ thống máy lạnh, máy bơm, điều hòa thông minh,... do chinh các bạn tự làm nên đã đạt được những điểm số tốt và tuyệt đối. Cũng chính vì thế, iNut JSC (công ty chủ quản của iNut Platform) đã kết hợp với Khu Công nghệ phần mềm - ĐHQGHCM để tổ chức những khóa đào tạo ngắn hạn cho sinh viên Việt Nam sử dụng nền tảng IoT do iNut JSC phát triển. Và để mở con đường tri thức tiếp cận IoT trong nháy mắt, iNut JSC đã tạo ra một phiên bản firmware trị giá 50.000 đồng sử dụng clouding của CloudMQTT và tài trợ 1000 firmware cho tất cả các bạn học sinh, sinh viên Việt Nam có thể tiếp cận IoT một cách dễ dàng và nhanh chóng nhất!

lên
14 thành viên đã đánh giá bài viết này hữu ích.