Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Acest proiect va utiliza senzorul de distanță cu ultrasunete Zio Qwiic pentru a detecta și urmări o persoană. Dispozitivul va fi plasat strategic deasupra unui ecran / monitor orientat către persoana care stă jos, în fața computerului său.
Proiectul va urmări cât timp stau așezat în ore / minute. După atingerea timpului maxim de „ședere”, acesta îi va alerta să se ridice și să se plimbe.
Pasul 1: Schematic
Pasul 2: Configurare
Veți avea nevoie de următoarele module pentru a construi acest proiect:
- Consiliul de Dezvoltare Zuino M Uno
- Senzor de distanță cu ultrasunete Zio Qwiic
- Afișaj OLED Zio Qwiic de 0,91”
- Cabluri Qwiic (200mm)
- Cablu micro USB
Pasul 3: Daisy Chain Toate modulele împreună
Pasul 4: Configurare și cod
Descărcați și instalați următoarele biblioteci pe IDE-ul dvs. Arduino:
- Biblioteca Adafruit GFX
- Biblioteca Adafruit SSD1306
Încărcați codul complet al proiectului pe tablă. Conectați-vă Uno la un computer. Descărcați și introduceți codul pe Uno utilizând ID-ul Arduino.
Alternativ, puteți descărca codul de pe pagina noastră Github.
Pasul 5: Explicarea codului
De la început, senzorul va detecta prezența unui om așezat la o distanță de 75 cm. În acest moment, toate contoare vor fi inițializate la zero.
uint16_t time_sit1 = 0; uint16_t time_sit2 = 0; uint16_t time_leave1 = 0; uint16_t time_leave2 = 0; uint16_t lim = 75; // Distanța de la senzor la seatuint16_t maxsit_time = 7200000; // Setați timpul maxim de ședere în ms
În interiorul funcției de buclă, senzorul va detecta mai întâi prezența umană. Dacă niciun obiect nu se află în intervalul de detectare, un „contor de părăsire” va începe să urmărească timpul în care nimeni nu este prezent.
if (distanță * 0,1 <lim) {// detectează dacă o persoană se află în intervalul de detecție distance_H = Wire.read (); distance_L = Wire.read (); distance = (uint16_t) distance_H << 8; distanță = distanță | distanță_L; sta(); time_leave1 ++; // urmărește timpul pe care nimeni nu îl are în calcul ();
Dacă el / ea a stat mai mult de 2 ore, codul va afișa un mesaj pentru ca persoana să ia o pauză.
if (time_sit2> maxsit_time) {maxsit (); time_leave1 = millis () / 1000; time_leave1 ++; calculatetime ();
Dacă persoana decide să facă o pauză, codul va verifica din nou dacă există prezență umană. Dacă nu este detectată nicio prezență, contorul de ședere se va reseta la zero și va începe contorul de concediu. Senzorul va urmări timpul în care persoana a părăsit spațiul de lucru pentru a face o pauză.
else if (distanță * 0,1> lim) {// detectează dacă o persoană este în afara intervalului de calcul (); Serial.print ("Time sit:"); Serial.print (time_sit2 / 1000); Serial.println ("sec"); time_sit1 = millis () / 1000; Serial.println („Nimeni”); time_sit1 ++; întârziere (1000);
Pasul 6: Demo
Așezați senzorul de distanță cu ultrasunete Zio Qwiic deasupra monitorului computerului.
Notă: Este mai bine să îl puneți deasupra computerului pentru a evita detectarea de către senzor a obiectelor care ar putea distorsiona rezultatele.
Puteți vizualiza rezultatele timpului de ședere pe afișajul OLED atașat dispozitivului.
Pasul 7: Cum funcționează
Senzorul de distanță cu ultrasunete va urmări și detecta o persoană așezată dacă se află în raza de 75 cm (distanța de la monitor la scaun) de la senzor.
Acesta va urmări numărul de ore pe care a stat persoana și distanța de la senzor.
Dacă el / ea nu se încadrează în intervalul specificat de 75 cm, senzorul va presupune că persoana a părăsit zona de ședere. Ecranul OLED va afișa timpul lăsat de o persoană după ce s-a așezat.
Dacă senzorul a urmărit și a detectat că o persoană a stat mai mult de 2 ore consecutive, ecranul va afișa un mesaj pentru a-i permite să ia o pauză.