Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Dự án này sẽ sử dụng Cảm biến khoảng cách siêu âm Zio Qwiic để phát hiện và theo dõi một người. Thiết bị sẽ được đặt một cách chiến lược trên đầu màn hình / màn hình đối diện với người ngồi xuống, trước máy tính của họ.
Dự án sẽ theo dõi họ đã ngồi trong bao lâu tính bằng giờ / phút. Sau khi đạt đến thời gian ‘ngồi’ tối đa, nó sẽ cảnh báo họ đứng dậy và đi lại.
Bước 1: Sơ đồ
Bước 2: Thiết lập
Bạn sẽ cần các mô-đun sau để xây dựng dự án này:
- Ban phát triển Zuino M Uno
- Cảm biến khoảng cách siêu âm Zio Qwiic
- Màn hình OLED Zio Qwiic 0,91”
- Cáp Qwiic (200mm)
- Cáp Micro USB
Bước 3: Chuỗi Daisy Tất cả các mô-đun lại với nhau
Bước 4: Cấu hình & Mã
Tải xuống và cài đặt các thư viện sau vào Arduino IDE của bạn:
- Thư viện GFX Adafruit
- Thư viện Adafruit SSD1306
Tải mã dự án đầy đủ lên bảng của bạn. Cắm Uno của bạn vào máy tính. Tải xuống và Flash mã vào Uno của bạn bằng Arduino IDE.
Ngoài ra, bạn có thể tải xuống mã từ trang Github của chúng tôi.
Bước 5: Giải thích mã
Ngay từ đầu, cảm biến sẽ phát hiện sự hiện diện của con người đang ngồi trong khoảng cách 75cm. Lúc này, tất cả các bộ đếm sẽ được khởi tạo bằng 0.
uint16_t time_sit1 = 0; uint16_t time_sit2 = 0; uint16_t time_leave1 = 0; uint16_t time_leave2 = 0; uint16_t lim = 75; // Khoảng cách từ bộ cảm biến đến chỗ ngồi16_t maxsit_time = 7200000; // Đặt thời gian ngồi tối đa tính bằng mili giây
Bên trong chức năng vòng lặp, đầu tiên cảm biến sẽ phát hiện sự hiện diện của con người. Nếu không có đối tượng nào nằm trong phạm vi phát hiện, một ‘bộ đếm rời bỏ’ sẽ bắt đầu theo dõi thời gian khi không có ai.
if (distance * 0.1 <lim) {// phát hiện một người có nằm trong phạm vi phát hiện distance_H = Wire.read (); khoảng cách_L = Wire.read (); khoảng cách = (uint16_t) khoảng cách_H << 8; khoảng cách = khoảng cách | khoảng cách_L; ngồi(); time_leave1 ++; // theo dõi thời gian không có ai ở xung quanh Calcultime ();
Nếu người đó đã ngồi hơn 2 giờ, mã sẽ hiển thị thông báo cho người đó nghỉ ngơi.
if (time_sit2> maxsit_time) {maxsit (); time_leave1 = millis () / 1000; time_leave1 ++; thời gian tính toán ();
Nếu người đó quyết định nghỉ giải lao, mã sẽ kiểm tra lại xem có sự hiện diện của con người hay không. Nếu không có sự hiện diện nào được phát hiện, bộ đếm ngồi sẽ đặt lại về 0 và bộ đếm nghỉ sẽ bắt đầu. Cảm biến sẽ theo dõi thời gian mà người đó đã rời khỏi không gian làm việc của họ để nghỉ ngơi.
else if (khoảng cách * 0,1> lim) {// phát hiện một người có nằm ngoài phạm vi không? Tính thời gian (); Serial.print ("Thời gian ngồi:"); Serial.print (time_sit2 / 1000); Serial.println ("giây"); time_sit1 = millis () / 1000; Serial.println ("Không ai cả"); time_sit1 ++; chậm trễ (1000);
Bước 6: Demo
Đặt Cảm biến Khoảng cách Siêu âm Zio Qwiic lên trên màn hình máy tính của bạn.
Lưu ý: Tốt hơn là đặt nó phía trên máy tính để tránh bất kỳ vật thể nào bị cảm biến phát hiện có thể làm sai lệch kết quả.
Bạn có thể xem kết quả thời gian ngồi trên màn hình OLED gắn với thiết bị.
Bước 7: Cách thức hoạt động
Cảm biến Khoảng cách siêu âm sẽ theo dõi và phát hiện một người đang ngồi nếu người đó đang ngồi trong phạm vi 75cm (khoảng cách từ màn hình đến ghế) từ cảm biến.
Nó sẽ theo dõi số giờ mà người đó đã ngồi và khoảng cách từ cảm biến.
Nếu người đó không nằm trong phạm vi 75cm được chỉ định, cảm biến sẽ cho rằng người đó đã rời khỏi khu vực ngồi của mình. Màn hình OLED sẽ hiển thị thời gian một người rời đi sau khi ngồi xuống.
Nếu cảm biến đã theo dõi và phát hiện một người đã ngồi hơn 2 giờ liên tục, màn hình sẽ hiển thị thông báo cho phép người đó nghỉ ngơi.