Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Tento projekt bude využívať ultrazvukový snímač vzdialenosti Zio Qwiic na detekciu a sledovanie osoby. Zariadenie bude strategicky umiestnené na obrazovke/monitore tvárou k sediacej osobe pred jeho počítačom.
Projekt bude sledovať, ako dlho už sedia, hodiny/minúty. Keď sa dosiahne maximálny čas „sedenia“, upozorní ich, aby sa postavili a prešli sa.
Krok 1: Schéma
Krok 2: Nastavenie
Na zostavenie tohto projektu budete potrebovať nasledujúce moduly:
- Vývojová rada Zuino M Uno
- Ultrazvukový snímač vzdialenosti Zio Qwiic
- 0,91”OLED displej Zio Qwiic
- Káble Qwiic (200 mm)
- Micro USB kábel
Krok 3: Daisy spojte všetky moduly dohromady
Krok 4: Konfigurácia a kód
Stiahnite si a nainštalujte do svojho Arduino IDE nasledujúce knižnice:
- Knižnica Adafruit GFX
- Knižnica Adafruit SSD1306
Nahrajte celý kód projektu na svoju nástenku. Pripojte svoje Uno k počítaču. Stiahnite si a Flashujte kód do svojho Uno pomocou Arduino IDE.
Prípadne si môžete stiahnuť kód z našej stránky Github.
Krok 5: Vysvetlenie kódu
Senzor od začiatku detekuje ľudskú prítomnosť vo vzdialenosti 75 cm. V tomto čase budú všetky počítadlá inicializované na nulu.
uint16_t time_sit1 = 0; uint16_t time_sit2 = 0; uint16_t time_leave1 = 0; uint16_t time_leave2 = 0; uint16_t lim = 75; // Rozsah vzdialenosti od senzora k sedadlu16_t maxsit_time = 7200000; // Nastavte maximálnu dobu sedenia v ms
Vo funkcii slučky senzor najskôr zistí prítomnosť človeka. Ak sa v dosahu detekcie nenachádza žiadny predmet, „počítadlo dovoleniek“začne sledovať čas, keď sa nikto nenachádza.
if (vzdialenosť*0,1 <lim) {// zistí, či sa osoba nachádza v dosahu detekcie distance_H = Wire.read (); distance_L = Wire.read (); vzdialenosť = (uint16_t) vzdialenosť_H << 8; vzdialenosť = vzdialenosť | vzdialenosť_L; sedieť (); time_leave1 ++; // sleduje čas, okolo ktorého sa nikto nenachádza, calculatetime ();
Ak sedí viac ako 2 hodiny, kód zobrazí osobe, ktorá si má urobiť prestávku, správu.
if (time_sit2> maxsit_time) {maxsit (); time_leave1 = milis ()/1000; time_leave1 ++; vypočítaný čas ();
Ak sa osoba rozhodne urobiť prestávku, kód znova skontroluje, či je prítomná osoba. Ak nie je zistená žiadna prítomnosť, počítadlo sedenia sa vynuluje a začne sa počítadlo odchodu. Senzor bude sledovať čas, ktorý daný človek opustil, aby si urobil prestávku.
else if (vzdialenosť*0,1> lim) {// zistí, či sa osoba nachádza mimo rozsah vypočítaný čas (); Serial.print ("Time sit:"); Serial.print (time_sit2/1000); Serial.println ("s"); time_sit1 = milis ()/1000; Serial.println („Nikto“); time_sit1 ++; oneskorenie (1000);
Krok 6: Demo
Umiestnite ultrazvukový snímač vzdialenosti Zio Qwiic na monitor počítača.
Poznámka: Je lepšie ho umiestniť nad počítač, aby sa predišlo tomu, že senzor detekuje akékoľvek objekty, ktoré by mohli skresliť výsledky.
Výsledky doby sedenia si môžete prezrieť na OLED displeji pripojenom k zariadeniu.
Krok 7: Ako to funguje
Ultrazvukový senzor vzdialenosti bude sledovať a detekovať sediacu osobu, ak sedí v dosahu 75 cm (vzdialenosť od monitora k sedadlu) od senzora.
Bude sledovať počet hodín, ktoré daná osoba sedela, a vzdialenosť od snímača.
Ak sa nenachádza v určenom rozsahu 75 cm, senzor bude predpokladať, že osoba opustila svoje sedenie. Na obrazovke OLED sa zobrazí čas, ktorý človeku zostal po sedení.
Ak senzor sleduje a zistí, že osoba sedí viac ako 2 hodiny v kuse, na obrazovke sa zobrazí správa, ktorá mu umožní prestávku.