Đo đạc & hiển thị kết quả trực tiếp lên đồ thị Excel

Mô tả dự án: 

PLX-DAQ là một add-on (tiện ích) hữu ích đơn giản giúp giao tiếp dữ liệu giữa cổng giao tiếp của máy tính với các cell (ô dữ liệu) trong file Excel. Ta có thể ứng dụng add-on này để giúp lưu trữ và hiển thị các kết quả do Arduino gửi về dưới dạng các đồ thị hoặc sơ đồ.

Để thực hiện công việc này, cần thực hiện 2 bước sau đây:

Xây dựng hệ thống đo đếm bằng vi điều khiển và gửi dữ liệu về máy tính qua cổng giao tiếp USB

Nhằm mục đích giao tiếp, đoạn code sau đây mô tả 1 ví dụ đơn giản sử dụng Arduino Uno 3 để đọc dữ liệu nhiệt độ và độ ẩm trên 2 cảm biến DHT22 và DHT11 và gửi các dữ liệu này về máy tính thông qua cổng giao tiếp USB. Các cảm biến được bố trí cắm thẳng vào Arduino.

#include "DHT.h" 	// Thư viện cho cảm biến DHT
int DHT1Type = DHT22; 	// Loại cảm biến DHT22
int DHT1_Data = 11; 	// Pin Data kết nối với chân 11
int DHT1_GND = 13; 	// Pin GND kết nối với chân 13
int DHT1_VCC = 12; 	// Pin VCC kết nối với chân 12
int DHT2Type = DHT11; 	// Loại cảm biến DHT11
int DHT2_Data = 3; 	// Pin Data kết nối với chân 3
int DHT2_GND = 2; 	// Pin GND kết nối với chân 2
int DHT2_VCC = 4; 	// Pin VCC kết nối với chân 4

float t1 = 0; 		// Các biến dùng để chứa dữ liệu nhiệt độ & độ ẩm
float h1 = 0;
float t2 = 0;
float h2 = 0;
int Count = 0; 		// Biến Count dùng để xác định số bộ dữ liệu gửi trong 1 vòng

DHT dht1(DHT1_Data, DHT1Type); 		// Khai báo các cảm biến DHT
DHT dht2(DHT2_Data, DHT2Type); 		//

void setup()
{
    pinMode(DHT1_GND, OUTPUT); 		// Set & connect Pin_GND của DHT1 = GND
    digitalWrite(DHT1_GND, LOW);
    pinMode(DHT1_VCC, OUTPUT); 		// Set & connect Pin_VCC của DHT1 = 5V
    digitalWrite(DHT1_VCC, HIGH);
    pinMode(DHT2_GND, OUTPUT); 		// Set & connect Pin_GND của DHT2 = GND
    digitalWrite(DHT2_GND, LOW);
    pinMode(DHT2_VCC, OUTPUT); 		// Set & connect Pin_VCC của DHT2 = 5V
    digitalWrite(DHT2_VCC, HIGH);

    dht1.begin(); 			// Khởi động cảm biến DHT22
    dht2.begin(); 			// Khởi động cảm biến DHT11
    Serial.begin(128000);
    Serial.println("CLEARDATA"); 	// xóa dữ liệu trên sheet đầu tiên của file excel
    Serial.println("LABEL,Time,Temp 1 (oC),Humid 1 (%RH),Temp 2 (oC),Humid 2 (%RH)"); // Nhãn (label) cho 5 cột đầu tiên trên sheet đầu tiên của file excel
}
void loop()	{
    Count++;
    Serial.print("DATA,TIME,"); 	// Gán giá trị cho cột đầu tiên = thời gian hiện hành
    t1 = dht1.readTemperature(); 	// Đọc nhiệt độ trên DHT1
    Serial.print(t1); 			// giá trị cho cột thứ 2
    Serial.print(","); 			// chuyển sang cột tiếp theo
    h1 = dht1.readHumidity(); 		// Đọc độ ẩm tren DHT1
    Serial.print(h1); 			// giá trị cho cột thứ 3
    Serial.print(","); 			// chuyển sang cột tiếp theo
    t2 = dht2.readTemperature(); 
    Serial.print(t2); 
    Serial.print(","); 
    h2 = dht2.readHumidity(); 
    Serial.println(h2); 
    if (Count >= 43200) { 		// giới hạn số bộ dữ liệu trong 43200 lần gửi, sau đó lặp lại & lưu chồng lên dữ liệu cũ
        Count = 0;
        Serial.println("ROW,SET,2"); 	// Bắt đầu từ Row 2 của sheet Excel    
    }
    delay(2000); 			// Quyết định tần suất đọc & gửi dữ liệu
}

Với đoạn code này, ta chỉ cần cắm  DHT11 vào chân 2-4 và DHT22 vào chân 11-13 như hình chụp dưới đây.

Bước 2: Cài đặt add-on PLX-DAQ, kết nối và xây dựng đồ thị để hiển thị kết quả

Để cài đặt PLX-DAQ, bạn vào đây (https://www.parallax.com/downloads/plx-daq) để tải & cài đặt add-on này. Khi hoàn tất việc cài đặt, trên desktop sẽ xuất hiện folder “PLX-DAQ”. Trong folder này sẽ có 2 shortcuts:

  • PLX-DAQ Help File sẽ giúp kích hoạt phần trợ giúp vớii tài liệu mô tả chi tiết về add-on này. Ở đây, bạn có thể tìm hiểu thêm các cấu trúc lệnh để lập trình cho Arduino.
  • PLX-DAQ Spreadsheet sẽ giúp mở một file Excel đã nhúng sẵn macro StampDAQ . Add-on này sẽ kích hoạt cổng giao tiếp & sẵn sàng kế nối dữ liệu. Khi mở file này, thông thường thì hệ thống bảo vệ máy tính sẽ cảnh báo (tùy mức security đã đặt). Bạn phải cho phép để sử dụng add-on này.

Khi đã mở file Excel với PLX-DAQ đã được kích hoạt, cửa sổ Data Acquisationfor Excel như hình dưới đây sẽ xuất hiện:

Bạn cần thực hiện lựa chọn cổng giao tiếp (Port) và tốc độ truyền (Baud) tương ứng với kết nối của arduino, sau đó kết nối (Connect) để PLX-DAQ bắt đầu thực hiện việc nhận dữ liệu.

Khi hoàn tất, dữ liệu sẽ được cập nhật vào các Cell tương ứng do Arduino định trước trong Sheet đầu tiên của file Excel. Việc hiển thị dữ liệu này lên các dạng đồ thị hoặc sơ đồ là khá đơn giản, tùy theo ý đồ & trình Excel của bạn. Hình dưới đây minh họa một cách đơn giản kết quả đạt được.

Một số lưu ý

  • Nên thiết lập tốc độ baud ở mức cao nhất cố thể được. PLX-DAQ va Arduino có thể giao tiếp với nhau ở tốc độ 128000bps - có thể truyền hơn 500 bộ dữ liệu (bao gồm độ ẩm, nhiệt độ.) trong 1 giây. Ở tốc độ này ta có thể sử dụng cửa sổ và đồ thị Excel làm thành1 oscillocope tốc độ thấp đơn giản.
  • Dữ liệu gửi về luôn được cập nhật lên sheet đầu tiên của file excel hiện hành. Do đó, nếu ta mở 1 file excel khác hoặc thay đổi thứ tự của các sheet trong lúc đang kết nối thì dữ liệu sẽ được lưu vào sheet đầu tiên của file đó.
  • Một khi Arduino đã được upload chương trình. Việc kết nối là rất đơn giản, máy tính không cần phải có sẵn IDE. Chỉ cần cắm Arduino vào cổng USB (nhớ ghi nhận tên cổng để khai báo cho PLX-DAQ) , kích hoạt PLX-DAQ và chọn Connect trên cửa sổ Data Acquisation for Excel.

Như vậy, các dữ liệu trên Arduino có thể gửi về và lưu trên máy tính mà không cần phải dùng thêm bất cứ 1 chương trình nào khác. Ngoài ra, với các kết nối như vậy, ta hoàn toàn có thể thiết kế & xây dựng các sơ đồ công nghệ & hiển thị các dữ liệu đo đạc được một cách trực tiếp.

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

lên
11 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