Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Ang proyektong ito ay gagamitin ang Zio Qwiic Ultrasonic Distance Sensor upang makita at subaybayan ang isang tao. Ang aparato ay madiskarteng inilalagay sa tuktok ng isang screen / monitor na nakaharap sa taong nakaupo, sa harap ng kanyang computer.
Susubaybayan ng proyekto kung gaano katagal silang nakaupo sa loob ng mga oras / minuto. Matapos maabot ang maximum na 'nakaupo' na oras, aalerto ito sa kanila na tumayo at maglakad-lakad.
Hakbang 1: Skematika
Hakbang 2: Pag-setup
Kakailanganin mo ang mga sumusunod na modyul upang mabuo ang proyektong ito:
- Zuino M Uno Development Board
- Zio Qwiic Ultrasonic Distance Sensor
- Zio Qwiic 0.91”OLED Display
- Qwiic Cables (200mm)
- Micro USB Cable
Hakbang 3: Daisy Chain Lahat ng Mga Modyul Magkasama
Hakbang 4: Pag-configure at Code
I-download at i-install ang mga sumusunod na aklatan sa iyong Arduino IDE:
- Adafruit GFX Library
- Adafruit SSD1306 Library
I-upload ang Buong Project Code sa iyong board. I-plug ang iyong Uno sa isang computer. I-download at I-flash ang code sa iyong Uno gamit ang Arduino IDE.
Bilang kahalili, maaari mong i-download ang code mula sa aming pahina ng Github.
Hakbang 5: Paliwanag sa Code
Mula sa simula, ang sensor ay makakakita ng pagkakaroon ng isang tao na nakaupo sa loob ng distansya na 75cm. Sa oras na ito, ang lahat ng mga counter ay maisasagawa sa zero.
uint16_t time_sit1 = 0; uint16_t time_sit2 = 0; uint16_t time_leave1 = 0; uint16_t time_leave2 = 0; uint16_t lim = 75; // Saklaw ng distansya mula sa sensor sa seatuint16_t maxsit_time = 7200000; // Itakda ang maximum na oras ng pag-upo sa ms
Sa loob ng pag-andar ng loop, ang sensor ay unang makakakita para sa pagkakaroon ng tao. Kung walang bagay na nasa loob ng saklaw ng pagtuklas, isang 'leave counter' ang magsisimulang subaybayan ang oras kung wala ang tao.
kung (distansya * 0.1 <lim) {// nakita kung ang isang tao ay nasa loob ng saklaw ng saklaw ng detection_H = Wire.read (); distance_L = Wire.read (); distansya = (uint16_t) distansya_H << 8; distansya = distansya | distansya_L; umupo (); time_leave1 ++; // sumusubaybay sa oras na walang sinuman ang nasa paligid ng calcululatetime ();
Kung siya ay nakaupo ng higit sa 2 oras, magpapakita ang code ng isang mensahe para sa pahinga ng tao.
kung (time_sit2> maxsit_time) {maxsit (); time_leave1 = millis () / 1000; time_leave1 ++; calcululattime ();
Kung nagpasya ang tao na magpahinga, susuriing muli ng code kung mayroong pagkakaroon ng tao. Kung walang napansin na presensya, ang sitting counter ay mai-reset sa zero at magsisimula ang leave counter. Susubaybayan ng sensor ang oras na naiwan ng tao ang kanyang workspace upang makapagpahinga.
kung hindi man kung (distansya * 0.1> lim) {// nakita kung ang isang tao ay wala sa saklaw na calcululattime (); Serial.print ("Oras umupo:"); Serial.print (time_sit2 / 1000); Serial.println ("sec"); time_sit1 = millis () / 1000; Serial.println ("Walang Sinuman"); time_sit1 ++; pagkaantala (1000);
Hakbang 6: Demo
Ilagay ang Zio Qwiic Ultrasonic Distance Sensor sa tuktok ng iyong computer monitor.
Tandaan: Mas mahusay na ilagay ito sa itaas ng computer upang maiwasan ang anumang mga bagay na napansin ng sensor na maaaring magpangit ng mga resulta.
Maaari mong tingnan ang mga resulta ng oras ng pag-upo sa display na OLED na nakakabit sa aparato.
Hakbang 7: Paano Ito Gumagana
Susubaybayan at matutukoy ng sensor ng Ultrasonic Distance ang isang nakaupo kung nakaupo siya sa loob ng saklaw na 75cm (ang distansya mula sa monitor hanggang sa upuan) mula sa sensor.
Susubaybayan nito ang bilang ng mga oras na naupo ang tao at ang distansya mula sa sensor.
Kung hindi siya nasa loob ng tinukoy na saklaw na 75cm, ipalagay ng sensor na ang tao ay umalis sa kanyang lugar na inuupuan. Ipapakita ng OLED screen ang oras na natira ang isang tao pagkatapos ng pagkakaupo.
Kung natunton at nakita ng sensor na ang isang tao ay nakaupo nang higit sa 2 oras nang diretso, magpapakita ang screen ng isang mensahe upang pahintulutan siyang magpahinga.