Подключение ультразвуковых датчиков движения HC-SR04, HC-SR04+, US-015, US-025A, US-026, JSN-SR04T (герметичный) |
Содержание
Ультразвуковые датчики движения (расстояния)
Ультразвуковые датчики движения (расстояния)Ультразвуковые датчики расстояния широко применяются для определения расстояния до преграды или для регистрации факта нахождения объекта в зоне обнаружения. Работа ультразвуковых датчиков основана на принципе сонара – посылая пучок ультразвука, и получая его отражение с задержкой, устройство определяет наличие объектов и расстояние до них. Ультразвуковые сигналы, генерируемые передатчиком, отражаясь от препятствия, возвращаются к нему через определенный промежуток времени. Данный временной интервал является характеристикой, помогающей определить расстояние до объекта. Для того чтобы инициализировать отправку сигнала дальномером, необходимо подать высокий сигнал длительностью 10 μs на вывод «Trig». После получения высокого сигнала длительностью 10 μs на вывод «Trig», модуль генерирует пучок из восьми сигналов частотой 40 кГц и устанавливает высокий уровень на пине «Echo». После получения отраженного сигнала, модуль устанавливает на выводе «Echo» низкий уровень. Ультразвуковые датчики расстояния Зная продолжительность высокого сигнала на пине Echo можем вычислить расстояние, умножив время, которое потратил звуковой импульс, прежде чем вернулся к модулю, на скорость распространения звука в воздухе (340 м/с).
Описание ультразвуковых датчиков (datasheet):
Схема подключенияВ качестве используется сенсор HC-SR04. Подключение ультразвукового датчика расстояния HC-SR04 WiFi-модуль и сенсор HC-SR04 установлены на макетной плате для проектирования (Breadboard), позволяющей собирать проекты без пайки. Резисторы R1 и R2 необходимы для согласования логических уровней сенсора HC-SR04 и WiFi-модуля. В качестве внешнего источника используется адаптер питания для зарядки сотовых телефонов, смартфонов, планшетов, с выходным током не менее 500мА. Для автономного питания контроллера можно использовать портативные аккумуляторы (Power Bank) емкостью от 2000мА*ч и выше. В качестве соединительного кабеля между макетной платой (Breadboard) и адаптером используется кабель для зарядки сотовых телефонов. Подготовка модуля к работеПодготовка модуля к работе заключается в выполнении следующих шагов. Шаг 1. Программирование модуляПрограммирование модуля (запись программы (прошивки) «Smacont-ESP») осуществляется в соответствии с инструкцией «Программирование модулей ESP и отладочных плат». Шаг 2. Настройка сетевого соединения с модулемВыполнить настройку сетевого соединения с модулем в соответствии с инструкцией «Первое включение». Шаг 3. Настройка WiFi-сети (при необходимости)При необходимости выполнить настройку WiFi-сети в соответствии с инструкцией «Настройки WiFi-сети». Конфигурация модуляGPIOДля формирования управляющего сигнала, подаваемого на вывод «Trig» сенсора HC-SR04, используется «GPIO5» («D1»), настроенный как выход («OUTPUT»). Для обеспечения возможности управления данным выходом, необходимо привязать «GPIO5» («D1») к одному из «Vx», например, к «V10». Конфигурирование «GPIO» Для подсчета длительности импульса с вывода «Echo» сенсора HC-SR04, используется «GPIO4» («D2»), настроенный как «Измерение длительности импульса». Для обеспечения возможности дальнейшей обработки значений измерения, необходимо привязать «GPIO4» («D2») к одному из «Vx», например, к «V11». Конфигурирование «GPIO» Назначим имена переменным «V10» («ultrasonicTrig») и «V10» («ultrasonicEcho»). Конфигурирование «GPIO» TIMERДля периодического опроса ультразвукового датчика будем использовать «TMR0».
На вкладке «TIMER» необходимо произвести конфигурирование таймера «TMR0»:
Для обеспечения возможности дальнейшей обработки события от таймера, необходимо привязать параметр «Состояние» таймера «TMR0» к одному из «Vx», например, к «V12». Присвоим имя переменной «V12» («ultrasonicTrig_Start»). Конфигурирование «TIMER» Действия и сценарии
Создаем два действия.
Действие формирования управляющего импульса на вход «Trig» сенсора HC-SR04 Действие вызова функции «sens_ultrasonic()» На вкладке «Сценарии (Задачи)» создаем сценарий (задачу, триггер) «Сценарий N0», который будет вызываться по событию обновления переменной «ultrasonicTrig_Start» («V12»). В качестве действия выберем «Действие N0», по которому будет формироваться импульс на «GPIO5» («D1»). Создаем еще один сценарий «Сценарий N1», который использует событие обновления переменной «ultrasonicEcho» («V10»). В качестве действия выберем «Действие N1», по которому происходит пересчет длительности сигнала («ultrasonicEcho») в сантиметры.
Получаем следующий алгоритм работы:
В дальнейшем, полученное значение расстояния от сенсора HC-SR04 до объекта, можно использовать в других сценариях, например, для реализации проекта включения освещения в коридоре. Цифровая фильтрация значений расстоянияЧтобы исключить резкие выбросы в рассчитанных значениях и для получения плавной характеристики можно использовать цифровую фильтрацию значений расстояния. Для цифровой фильтрации любой переменной используются первые 8-мь переменных: V0,V1,V2,V3,V4,V5,V6,V7. В нашем случае, данные о расстоянии находятся в переменной «V10». Нам необходимо тлько задать уровень фильтрации: 2,4,8 (например, 4); Результат работы цифрового фильтра можно наблюдать на рисунке ниже (сенсор HC-SR04 направлен в стену). Значение расстояния «до» и «после» цифрового фильтра Заключение• Так как в основу принципа действия положен ультразвук, то такой датчик не подходит для определения расстояния до звукопоглощающих объектов. • При перемешивании горячего и холодного воздуха, датчик может выдавать неверные результаты. • При высоком уровне шума, датчик может выдавать неверные результаты. |
Программы
Прошивка «Smacont-ESP»:
«Программа Настройки»:
Телеграм каналНовостиЭнергонезависимая память (EEPROM) Переменные «Vx» (карта переменных «Vx») Действие «wifi_CheckConn()». После подключения к WiFi-сети, выполнить действие с задержкой Обмен данными. Open Monitoring Датчики температуры и влажности AHT10/AHT15/AHT20/AHT21/AHT25 Датчик температуры и влажности SHT30 (SHT31/SHT35) Действие «valueToVx()», «valueToArrVx()». Отслеживание заданного уровня в диапазоне значений Действие «termostat()». Термостат ESP-NOW. Датчик температуры и влажности с питанием от батареек Последовательные интерфейсы (UART, I2C, SPI) Управление одноканальным модулем реле |