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

16/06/2019
do-dac-hien-thi-ket-qua-truc-tiep-len-do-thi-excel

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.

  1. #include "DHT.h" // Thư viện cho cảm biến DHT
  2. int DHT1Type = DHT22; // Loại cảm biến DHT22
  3. int DHT1_Data = 11; // Pin Data kết nối với chân 11
  4. int DHT1_GND = 13; // Pin GND kết nối với chân 13
  5. int DHT1_VCC = 12; // Pin VCC kết nối với chân 12
  6. int DHT2Type = DHT11; // Loại cảm biến DHT11
  7. int DHT2_Data = 3; // Pin Data kết nối với chân 3
  8. int DHT2_GND = 2; // Pin GND kết nối với chân 2
  9. int DHT2_VCC = 4; // Pin VCC kết nối với chân 4
  10.  
  11. float t1 = 0; // Các biến dùng để chứa dữ liệu nhiệt độ & độ ẩm
  12. float h1 = 0;
  13. float t2 = 0;
  14. float h2 = 0;
  15. int Count = 0; // Biến Count dùng để xác định số bộ dữ liệu gửi trong 1 vòng
  16.  
  17. DHT dht1(DHT1_Data, DHT1Type); // Khai báo các cảm biến DHT
  18. DHT dht2(DHT2_Data, DHT2Type); //
  19.  
  20. void setup()
  21. {
  22. pinMode(DHT1_GND, OUTPUT); // Set & connect Pin_GND của DHT1 = GND
  23. digitalWrite(DHT1_GND, LOW);
  24. pinMode(DHT1_VCC, OUTPUT); // Set & connect Pin_VCC của DHT1 = 5V
  25. digitalWrite(DHT1_VCC, HIGH);
  26. pinMode(DHT2_GND, OUTPUT); // Set & connect Pin_GND của DHT2 = GND
  27. digitalWrite(DHT2_GND, LOW);
  28. pinMode(DHT2_VCC, OUTPUT); // Set & connect Pin_VCC của DHT2 = 5V
  29. digitalWrite(DHT2_VCC, HIGH);
  30.  
  31. dht1.begin(); // Khởi động cảm biến DHT22
  32. dht2.begin(); // Khởi động cảm biến DHT11
  33. Serial.begin(128000);
  34. Serial.println("CLEARDATA"); // xóa dữ liệu trên sheet đầu tiên của file excel
  35. 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
  36. }
  37. void loop() {
  38. Count++;
  39. Serial.print("DATA,TIME,"); // Gán giá trị cho cột đầu tiên = thời gian hiện hành
  40. t1 = dht1.readTemperature(); // Đọc nhiệt độ trên DHT1
  41. Serial.print(t1); // giá trị cho cột thứ 2
  42. Serial.print(","); // chuyển sang cột tiếp theo
  43. h1 = dht1.readHumidity(); // Đọc độ ẩm tren DHT1
  44. Serial.print(h1); // giá trị cho cột thứ 3
  45. Serial.print(","); // chuyển sang cột tiếp theo
  46. t2 = dht2.readTemperature();
  47. Serial.print(t2);
  48. Serial.print(",");
  49. h2 = dht2.readHumidity();
  50. Serial.println(h2);
  51. 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ũ
  52. Count = 0;
  53. Serial.println("ROW,SET,2"); // Bắt đầu từ Row 2 của sheet Excel
  54. }
  55. delay(2000); // Quyết định tần suất đọc & gửi dữ liệu
  56. }

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 nhấn vào đây để 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!

Bình luận
Nội dung này chưa có bình luận, hãy gửi bình luận đầu tiên của bạn.
VIẾT BÌNH LUẬN CỦA BẠN