Satura rādītājs:

Kā izveidot sēdēšanas laika izsekotāju: 7 soļi
Kā izveidot sēdēšanas laika izsekotāju: 7 soļi

Video: Kā izveidot sēdēšanas laika izsekotāju: 7 soļi

Video: Kā izveidot sēdēšanas laika izsekotāju: 7 soļi
Video: A $1400 a Month KDP Niche with FREE Keywords and Interior 2024, Novembris
Anonim
Kā izveidot sēdēšanas laika izsekotāju
Kā izveidot sēdēšanas laika izsekotāju

Šajā projektā tiks izmantots Zio Qwiic ultraskaņas attāluma sensors, lai atklātu un izsekotu personu. Ierīce tiks stratēģiski novietota virs ekrāna/monitora, kas vērsts pret sēdošo personu, viņa datora priekšā.

Projekts izsekos, cik ilgi viņi ir sēdējuši stundās/minūtēs. Kad ir sasniegts maksimālais “sēdēšanas” laiks, tas brīdinās viņus piecelties un staigāt apkārt.

1. darbība. Shēma

Shematisks
Shematisks

2. darbība: iestatīšana

Uzstādīt
Uzstādīt

Lai izveidotu šo projektu, jums būs nepieciešami šādi moduļi:

  • Zuino M Uno attīstības padome
  • Zio Qwiic ultraskaņas attāluma sensors
  • Zio Qwiic 0,91 collu OLED displejs
  • Qwiic kabeļi (200 mm)
  • Mikro USB kabelis

3. solis: sasaistiet visus moduļus kopā

Daisy Chain Visi moduļi kopā
Daisy Chain Visi moduļi kopā

4. darbība: konfigurācija un kods

Lejupielādējiet un instalējiet Arduino IDE šādas bibliotēkas:

  • Adafruit GFX bibliotēka
  • Adafruit SSD1306 bibliotēka

Augšupielādējiet savā projektā visu projekta kodu. Pievienojiet Uno datoram. Lejupielādējiet un palaidiet kodu savā Uno, izmantojot Arduino IDE.

Varat arī lejupielādēt kodu no mūsu Github lapas.

5. darbība: koda skaidrojums

No sākuma sensors noteiks cilvēka klātbūtni, kas sēž 75 cm attālumā. Šobrīd visi skaitītāji tiks inicializēti līdz nullei.

uint16_t time_sit1 = 0; uint16_t time_sit2 = 0; uint16_t time_leave1 = 0; uint16_t time_leave2 = 0; uint16_t lim = 75; // Attāluma diapazons no sensora līdz seatuint16_t maxsit_time = 7200000; // Iestatiet maksimālo sēdēšanas laiku ms

Cilpas funkcijas iekšpusē sensors vispirms noteiks cilvēka klātbūtni. Ja neviens objekts nav noteikšanas diapazonā, “atstāšanas skaitītājs” sāks izsekot laiku, kad neviens nav klāt.

ja (attālums*0,1 <lim) {// nosaka, vai persona atrodas noteikšanas diapazonā distance_H = Wire.read (); distance_L = Wire.read (); distance = (uint16_t) distance_H << 8; distance = distance | distance_L; sēdēt (); time_leave1 ++; // izseko laiku, kad neviens nav ap aprēķina laiku ();

Ja viņš/viņa ir sēdējis vairāk nekā 2 stundas, kods parādīs ziņojumu, lai persona varētu pārtraukt.

if (time_sit2> maxsit_time) {maxsit (); laiks_laiks1 = milis ()/1000; time_leave1 ++; aprēķinātais laiks ();

Ja persona nolemj pārtraukt, kods vēlreiz pārbaudīs, vai ir cilvēku klātbūtne. Ja klātbūtne netiek konstatēta, sēdošais skaitītājs tiks atiestatīts uz nulli un sāksies izejas skaitītājs. Sensors izsekos laiku, kad persona ir atstājusi darba vietu, lai atpūstos.

else if (distance*0,1> lim) {// nosaka, vai persona ir ārpus diapazona aprēķina laika (); Serial.print ("Laiks sēdēt:"); Sērijas nospiedums (time_sit2/1000); Serial.println ("sec"); laiks_sit1 = milis ()/1000; Serial.println ("Neviens"); time_sit1 ++; kavēšanās (1000);

6. darbība: demonstrācija

Demo
Demo

Novietojiet Zio Qwiic ultraskaņas attāluma sensoru uz datora monitora.

Piezīme: labāk to novietot virs datora, lai sensors nekonstatētu objektus, kas varētu izkropļot rezultātus.

Sēdēšanas laika rezultātus varat skatīt ierīcei pievienotajā OLED displejā.

7. darbība. Kā tas darbojas

Kā tas strādā
Kā tas strādā
Kā tas strādā
Kā tas strādā
Kā tas strādā
Kā tas strādā

Ultraskaņas attāluma sensors izsekos un atklās sēdošu cilvēku, ja viņš/viņa sēž 75 cm diapazonā (attālums no monitora līdz sēdeklim) no sensora.

Tas izsekos stundu skaitu, ko persona sēdēja, un attālumu no sensora.

Ja viņš/viņa neatrodas noteiktajā 75 cm diapazonā, sensors pieņem, ka persona atstāja savu sēdvietu. OLED ekrānā tiks parādīts laiks, ko persona atstāja pēc sēdēšanas.

Ja sensors ir izsekojis un konstatējis, ka persona ir sēdējusi vairāk nekā 2 stundas pēc kārtas, ekrānā tiks parādīts ziņojums, lai ļautu viņam/viņai atpūsties.

Ieteicams: