Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Tento projekt bude využívat ultrazvukový senzor vzdálenosti Zio Qwiic k detekci a sledování osoby. Zařízení bude strategicky umístěno na horní část obrazovky/monitoru čelem k sedící osobě před jeho počítačem.
Projekt bude sledovat, jak dlouho už seděli v hodinách/minutách. Jakmile je dosaženo maximální doby „sezení“, upozorní je, aby se postavily a obešly.
Krok 1: Schéma
Krok 2: Nastavení
K sestavení tohoto projektu budete potřebovat následující moduly:
- Vývojová rada Zuino M Uno
- Ultrazvukový snímač vzdálenosti Zio Qwiic
- 0,91”OLED displej Zio Qwiic
- Kabely Qwiic (200 mm)
- Micro USB kabel
Krok 3: Daisy spojte všechny moduly dohromady
Krok 4: Konfigurace a kód
Stáhněte si a nainstalujte do svého Arduino IDE následující knihovny:
- Knihovna Adafruit GFX
- Knihovna Adafruit SSD1306
Nahrajte celý kód projektu na svou nástěnku. Připojte své Uno k počítači. Stáhněte a Flashujte kód do svého Uno pomocí Arduino IDE.
Alternativně si můžete stáhnout kód z naší stránky Github.
Krok 5: Vysvětlení kódu
Senzor od začátku detekuje přítomnost člověka ve vzdálenosti 75 cm. V tuto chvíli budou všechny čítače inicializovány 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 vzdálenosti od senzoru k sedadlu16_t maxsit_time = 7200000; // Nastavte maximální dobu sezení v ms
Uvnitř funkce smyčky senzor nejprve detekuje přítomnost člověka. Pokud se v dosahu detekce nenachází žádný předmět, „počitadlo opuštění“začne sledovat čas, kdy není nikdo přítomen.
if (vzdálenost*0,1 <lim) {// detekuje, zda se osoba nachází v detekčním rozsahu distance_H = Wire.read (); distance_L = Wire.read (); vzdálenost = (uint16_t) vzdálenost_H << 8; vzdálenost = vzdálenost | vzdálenost_L; sedět(); time_leave1 ++; // sleduje čas, kolem kterého se nikdo nenachází, calculatetime ();
Pokud sedí déle než 2 hodiny, kód zobrazí zprávu pro osobu, aby si dala přestávku.
if (time_sit2> maxsit_time) {maxsit (); time_leave1 = milis ()/1000; time_leave1 ++; calculatetime ();
Pokud se osoba rozhodne udělat přestávku, kód znovu zkontroluje, zda je přítomna osoba. Pokud není detekována žádná přítomnost, počitadlo sezení se vynuluje a počitadlo odjezdu se spustí. Senzor bude sledovat čas, kdy osoba opustila svůj pracovní prostor, aby si udělala přestávku.
else if (vzdálenost*0,1> lim) {// detekuje, zda je osoba mimo rozsah kalkulačního času (); Serial.print ("Time sit:"); Serial.print (time_sit2/1000); Serial.println ("s"); time_sit1 = milis ()/1000; Serial.println („Nikdo“); time_sit1 ++; zpoždění (1000);
Krok 6: Demo
Umístěte ultrazvukový snímač vzdálenosti Zio Qwiic na monitor počítače.
Poznámka: Je lepší umístit jej nad počítač, aby se zabránilo detekci jakýchkoli předmětů senzorem, které by mohly zkreslit výsledky.
Výsledky doby sezení můžete zobrazit na OLED displeji připojeném k zařízení.
Krok 7: Jak to funguje
Ultrazvukový senzor vzdálenosti bude sledovat a detekovat sedící osobu, pokud sedí v dosahu 75 cm (vzdálenost od monitoru k sedadlu) od senzoru.
Bude sledovat počet hodin, které osoba seděla, a vzdálenost od senzoru.
Pokud není ve specifikovaném rozsahu 75 cm, senzor bude předpokládat, že osoba opustila své posezení. Na obrazovce OLED se zobrazí čas, který člověk opustil po usednutí.
Pokud senzor sledoval a zjistil, že osoba sedí více než 2 hodiny v kuse, na obrazovce se zobrazí zpráva, která mu umožní přestávku.