Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Bu layihə, bir insanı aşkar etmək və izləmək üçün Zio Qwiic Ultrasonik Məsafə Sensorundan istifadə edəcək. Cihaz strateji olaraq oturan şəxslə üzbəüz, kompüterinin qarşısında bir ekranın/monitorun üstünə qoyulacaq.
Layihə nə qədər oturduqlarını saat/dəqiqə ərzində izləyəcək. Maksimum "oturma" vaxtına çatdıqdan sonra, ayağa qalxıb ətrafda gəzməyi xəbərdar edəcək.
Addım 1: sxematik
Addım 2: Quraşdırma
Bu layihəni qurmaq üçün aşağıdakı modullara ehtiyacınız olacaq:
- Zuino M Uno İnkişaf Şurası
- Zio Qwiic Ultrasonik Məsafə Sensoru
- Zio Qwiic 0.91”OLED Ekranı
- Qwiic Kabelləri (200 mm)
- Mikro USB Kabel
Addım 3: Daisy Chain Bütün Modulları Birlikdə
Addım 4: Konfiqurasiya və Kod
Aşağıdakı kitabxanaları Arduino IDE -yə yükləyin və quraşdırın:
- Adafruit GFX Kitabxanası
- Adafruit SSD1306 Kitabxanası
Tam Layihə Kodunu lövhənizə yükləyin. Uno -nu kompüterə qoşun. Arduino IDE -dən istifadə edərək kodu Uno -ya yükləyin və Flash edin.
Alternativ olaraq kodu Github səhifəmizdən yükləyə bilərsiniz.
Addım 5: Kodun izahı
Sensor əvvəldən 75 sm məsafədə oturan bir insanın varlığını algılar. Bu zaman bütün sayğaclar sıfıra sıfırlanacaq.
uint16_t time_sit1 = 0; uint16_t time_sit2 = 0; uint16_t time_leave1 = 0; uint16_t time_leave2 = 0; uint16_t lim = 75; // Sensordan oturacaqa qədər olan məsafə16_t maxsit_time = 7200000; // Maksimum oturma müddətini ms olaraq təyin edin
Döngü funksiyasının içərisində sensor əvvəlcə insan varlığını aşkar edəcək. Heç bir obyekt aşkarlama aralığında deyilsə, "ayrılma sayğacı" heç kimin olmadığı vaxtı izləməyə başlayacaq.
if (məsafə*0,1 <lim) {// bir şəxsin aşkarlama aralığında olub olmadığını müəyyən edir distance_H = Wire.read (); məsafə_L = Wire.read (); məsafə = (uint16_t) məsafə_H << 8; məsafə = məsafə | məsafə_L; oturmaq(); time_leave1 ++; // heç kimin calculatetime () ətrafında olmadığı vaxtı izləyir;
2 saatdan çox oturursa, kodda şəxsin fasilə verməsi üçün bir mesaj göstərilir.
if (time_sit2> maxsit_time) {maxsit (); time_leave1 = milis ()/1000; time_leave1 ++; hesablama vaxtı ();
Şəxs fasilə verməyə qərar verərsə, kod insanın olub olmadığını yenidən yoxlayacaq. Heç bir varlıq aşkar edilmədikdə oturan sayğac sıfıra dönəcək və məzuniyyət sayğacı başlayacaq. Sensor, bir insanın fasilə vermək üçün iş yerini tərk etdiyi vaxtı izləyəcək.
else if (məsafə*0.1> lim) {// bir şəxsin hesablama vaxtı () aralığından kənarda olub -olmadığını algılar; Serial.print ("Vaxt otur:"); Serial.print (time_sit2/1000); Serial.println ("saniyə"); time_sit1 = milis ()/1000; Serial.println ("Heç kim"); time_sit1 ++; gecikmə (1000);
Addım 6: Demo
Zio Qwiic Ultrasonik Məsafə Sensorunu kompüter monitörünüzün üstünə qoyun.
Qeyd: Nəticələri təhrif edə biləcək hər hansı bir obyektin sensor tərəfindən aşkar edilməməsi üçün onu kompüterin üstünə qoymaq daha yaxşıdır.
Oturma vaxtının nəticələrini cihaza qoşulmuş OLED ekranda görə bilərsiniz.
Addım 7: Necə Çalışır
Ultrasonik Məsafə sensoru, oturan şəxsin sensordan 75 sm (monitordan oturacağa qədər olan məsafə) arasında oturmasını izləyəcək və aşkar edəcək.
İnsanın oturduğu saatların sayını və sensordan olan məsafəni izləyəcək.
Göstərilən 75 sm aralığında deyilsə, sensor insanın oturduğu ərazini tərk etdiyini zənn edəcək. OLED ekranda bir insanın oturduqdan sonra qaldığı vaxt göstərilir.
Sensor bir insanın 2 saatdan çox düz oturduğunu izləyib və aşkar etsə, ekranda fasilə verməsinə icazə verən bir mesaj görünəcək.