Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Dette prosjektet vil bruke Zio Qwiic ultralydavstandssensor til å oppdage og spore en person. Enheten vil bli strategisk plassert på toppen av en skjerm/skjerm vendt mot personen som sitter ned, foran datamaskinen.
Prosjektet vil spore hvor lenge de har sittet ned i timer/minutter. Etter at maksimal "sittetid" er nådd, vil den varsle dem om å stå opp og gå rundt.
Trinn 1: Skjematisk
Trinn 2: Oppsett
Du trenger følgende moduler for å bygge dette prosjektet:
- Zuino M Uno Development Board
- Zio Qwiic ultralydavstandssensor
- Zio Qwiic 0,91”OLED -skjerm
- Qwiic -kabler (200 mm)
- Micro USB -kabel
Trinn 3: Daisy Chain Alle modulene sammen
Trinn 4: Konfigurasjon og kode
Last ned og installer følgende biblioteker til Arduino IDE:
- Adafruit GFX -bibliotek
- Adafruit SSD1306 bibliotek
Last opp hele prosjektkoden til styret ditt. Koble Uno til en datamaskin. Last ned og blits koden til Uno ved hjelp av Arduino IDE.
Alternativt kan du laste ned koden fra vår Github -side.
Trinn 5: Forklaring av kode
Fra starten vil sensoren detektere et menneskes nærvær som sitter innenfor en avstand på 75 cm. På dette tidspunktet vil alle tellere bli initialisert til null.
uint16_t time_sit1 = 0; uint16_t time_sit2 = 0; uint16_t time_leave1 = 0; uint16_t time_leave2 = 0; uint16_t lim = 75; // Avstandsområde fra sensor til seteintensitet16_t maxsit_time = 7200000; // Angi maksimal sittetid i ms
Inne i sløyfefunksjonen vil sensoren først detektere for menneskelig tilstedeværelse. Hvis ingen gjenstander er innenfor deteksjonsområdet, vil en "forlate teller" begynne å spore tiden da ingen er til stede.
if (avstand*0,1 <lim) {// oppdager om en person er innenfor deteksjonsområdet distance_H = Wire.read (); distance_L = Wire.read (); avstand = (uint16_t) avstand_H << 8; avstand = avstand | avstand_L; sitte (); time_leave1 ++; // sporer tiden ingen er rundt calculatetime ();
Hvis han/hun har sittet i mer enn 2 timer, viser koden en melding for personen å ta en pause.
hvis (time_sit2> maxsit_time) {maxsit (); time_leave1 = millis ()/1000; time_leave1 ++; calculatetime ();
Hvis personen bestemmer seg for å ta en pause, vil koden sjekke igjen om det er menneskelig tilstedeværelse. Hvis det ikke oppdages noen tilstedeværelse, vil sitttelleren nullstilles og permisjonstelleren starter. Sensoren vil spore tiden personen har forlatt arbeidsområdet for å ta en pause.
ellers hvis (avstand*0,1> lim) {// oppdager om en person er utenfor rekkevidde (); Serial.print ("Time sit:"); Serial.print (time_sit2/1000); Serial.println ("sek"); time_sit1 = millis ()/1000; Serial.println ("Ingen"); time_sit1 ++; forsinkelse (1000);
Trinn 6: Demo
Plasser Zio Qwiic ultralydavstandssensor på datamaskinens skjerm.
Merk: Det er bedre å sette den over datamaskinen for å unngå at objekter blir oppdaget av sensoren som kan forvride resultatene.
Du kan se resultatene av sittetid på OLED -skjermen som er festet til enheten.
Trinn 7: Slik fungerer det
Ultralydavstandssensoren vil spore og oppdage en sittende person hvis han/hun sitter innenfor området 75 cm (avstanden fra skjermen til setet) fra sensoren.
Det vil spore antall timer personen satt og avstanden fra sensoren.
Hvis han/hun ikke er innenfor det angitte området på 75 cm, vil sensoren anta at personen forlot sitt sitteområde. OLED -skjermen viser tiden en person er igjen etter å ha satt seg.
Hvis sensoren har sporet og oppdaget at en person har sittet i mer enn 2 timer i strekk, vil skjermen vise en melding for å la ham/henne ta en pause.