HyrenMan gửi vào
- 21744 lượt xem
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!