Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
В этом проекте будет использоваться ультразвуковой датчик расстояния Zio Qwiic для обнаружения и отслеживания человека. Устройство будет стратегически размещено поверх экрана / монитора лицом к человеку, сидящему перед его / ее компьютером.
Проект будет отслеживать, как долго они сидели в часах / минутах. По достижении максимального времени «сидения» он будет предупреждать их, чтобы они встали и пошли.
Шаг 1: Схема
Шаг 2: настройка
Для сборки этого проекта вам потребуются следующие модули:
- Совет по развитию Zuino M Uno
- Ультразвуковой датчик расстояния Zio Qwiic
- Zio Qwiic 0,91-дюймовый OLED-дисплей
- Кабели Qwiic (200 мм)
- Кабель Micro USB
Шаг 3. Последовательное подключение всех модулей вместе
Шаг 4: Конфигурация и код
Загрузите и установите в свою Arduino IDE следующие библиотеки:
- Библиотека Adafruit GFX
- Библиотека Adafruit SSD1306
Загрузите полный код проекта на свою доску. Подключите Uno к компьютеру. Загрузите и прошейте код на Uno с помощью Arduino IDE.
Кроме того, вы можете скачать код со страницы Github.
Шаг 5: Пояснение к коду
С самого начала датчик обнаружит присутствие человека, сидящего на расстоянии 75 см. В это время все счетчики будут обнулены.
uint16_t time_sit1 = 0; uint16_t time_sit2 = 0; uint16_t time_leave1 = 0; uint16_t time_leave2 = 0; uint16_t lim = 75; // Диапазон расстояний от датчика до сиденья uint16_t maxsit_time = 7200000; // Устанавливаем максимальное время сидения в мс
Внутри функции петли датчик сначала обнаружит присутствие человека. Если в пределах диапазона обнаружения нет объекта, «счетчик отпуска» начнет отсчитывать время, когда никого нет.
if (distance * 0.1 <lim) {// определяет, находится ли человек в пределах диапазона обнаружения distance_H = Wire.read (); distance_L = Wire.read (); distance = (uint16_t) distance_H << 8; расстояние = расстояние | distance_L; сидеть(); time_leave1 ++; // отслеживает время, в течение которого никого нет calculatetime ();
Если он / она сидел более 2 часов, код отобразит сообщение для человека, чтобы он сделал перерыв.
если (время_зарядки2> максимальное время_время) {макссит (); time_leave1 = миллис () / 1000; time_leave1 ++; Calculatetime ();
Если человек решит сделать перерыв, код снова проверит присутствие человека. Если присутствие не обнаружено, счетчик сидячих мест сбрасывается на ноль и запускается счетчик отпусков. Датчик будет отслеживать время, в течение которого человек покинул рабочее место, чтобы отдохнуть.
else if (distance * 0.1> lim) {// определяет, находится ли человек за пределами диапазона calculatetime (); Serial.print ("Время сидеть:"); Serial.print (time_sit2 / 1000); Serial.println ("сек"); time_sit1 = миллис () / 1000; Serial.println («Никто»); time_sit1 ++; задержка (1000);
Шаг 6: демонстрация
Поместите ультразвуковой датчик расстояния Zio Qwiic на монитор вашего компьютера.
Примечание. Лучше разместить его над компьютером, чтобы датчик не обнаружил какие-либо объекты, которые могут исказить результаты.
Вы можете просматривать результаты времени сидения на OLED-дисплее, подключенном к устройству.
Шаг 7: как это работает
Ультразвуковой датчик расстояния будет отслеживать и обнаруживать сидящего человека, если он находится в пределах 75 см (расстояние от монитора до сиденья) от датчика.
Он будет отслеживать количество часов, в течение которых человек сидел, и расстояние до датчика.
Если он / она находится за пределами указанного диапазона 75 см, датчик будет считать, что человек покинул свое место для сидения. На OLED-экране будет отображаться время, в течение которого человек ушел после того, как сел.
Если датчик отследил и обнаружил, что человек сидел более 2 часов подряд, на экране отобразится сообщение, позволяющее ему / ей сделать перерыв.