Оглавление
Общее описание прибора UZ_URmeTR
В этой статье я бы хотел рассказать о своей собственной разработке — ультразвуковом уровнемере UZ_URmeTR. Прибор предназначен для измерения расстояния до объекта, при помощи эхолокации (измерения уровня жидкостей в баке или резервуаре, уровня сыпучих материалов, при условии отражения ультразвука от них). Прибор имеет излучатель и приемник ультразвуковых излучений, а также датчик температуры для расчета скорости ультразвука в воздухе. Управляется прибор UZ_URmeTR при помощи специальных UZ-команд. Список всех команд уровнемера с описанием будет в конце статьи. На сайте уже был обзор на ультразвуковой дальномер типа hc-sr04. Датчик типа hc-sr04 не является влагозащищенным, то есть в условиях влажной среды не проработает и месяца(проверено). Есть также датчик типа JSN-SR04T, он работает с таким же влагозащищенным датчиком как и мой прибор, но имеет практически ту же схемотехнику и тот же управляющий контроллер что и hc-sr04. Уровнемер UZ_URmeTR в отличии от hc-sr04 имеет ряд преимуществ: во первых измерение он производит автономно, т.е микроконтроллер или компьютер который с ним работает не занимается генерацией импульса для излучения и не измеряет время пролета. То есть в отличии от hc-sr04, уровнемер UZ_URmeTR задействует меньше ресурсов микроконтроллера. Ну и наконец, что самое главное — это другой алгоритм поиска отраженного сигнала. Датчик hc-sr04 срабатывает на первый отраженный импульс который пришел. То есть если на пути пролета ультразвукового сигнала есть какой то предмет, то такой датчик будет работать не стабильно. UZ_URmeTR измеряет в два этапа: сначала он ищет максимальную амплитуду, анализируя всю полосу, а затем определяет время пролета ультразвукового сигнала.
Технические характеристики:
Напряжение питания, В | 5 |
Потребляемый ток, мА | 25 (40 версия с Bluetooth) |
Минимальная дистанция определения, см | 5 |
Максимальная дистанция определения, см | 450 |
Диапазон измеряемых температур °C, | -20…+80 |
Встроенный медианный фильтр | Да |
Возможность коррекции скорости ультразвука | Да |
Возможность коррекции порога захвата сигнала | Да |
Возможность установки скорости работы интерфейса (для приборов с RS485) | Да |
Габаритные размеры прибора (Ш*В*Д), мм | 68*32,7*88 (длина указана без учета крепежных фланцев) |
Прибор производиться в пластиковом корпусе с гермовводом под провода и крепежными фланцами. На передней панели прибора расположены ультразвуковой излучатель и приемник. Датчик температуры встроенный. На данный момент существует две модификации прибора: с интерфейсом связи Bluetooth, и RS485.
Подключение уровнемера
Для подключения прибора с интерфейсом Bluetooth, необходимо снять заднюю крышку и подключить питание к соответствующим клеммам. Для прибора с интерфейсом RS485 помимо питания еще необходимо подключить пару интерфейсных проводов «А» и «В». Схема подключения содержится на задней крышке с обратной стороны.
Работа с уровнемером UZ_URmeTR
Прибор работает при помощи специальных UZ-команд, список в конце статьи. Прибор с интерфейсом связи Bluetooth, был разработан для применения со смартфонами и планшетами на базе ОС Android. Опрашивать датчик можно при помощи терминала («Serial Bluetooth Terminal» скачивание и установка из Play Market), либо приложения UZ_URmeTR, скачать которое вы можете по QR-коду ниже(для установки приложения в настройках Android устройства необходимо разрешить установку из неизвестных источников). При работе с тем или иным приложением необходимо произвести сопряжение устройств. Процедура эта выполняется однократно. Для этого подаем питание на уровнемер, берем Android устройство, идем в настройки Bluetooth, включаем его и запускаем сканирование. Должен найтись наш уровнемер:
Уровнемер имеет имя «UZ_URmeTR», пин код для сопряжения – «1234». При сканировании Android устройство показывает физический адрес Bluetooth, однако после сопряжения в списке уровнемер отображается с именем. Далее идем уже в саму программу «UZ_URmeTR». Там все просто: запускаем, жмем на иконку «Bluetooth», выбираем из списка наш уровнемер. Далее устанавливается связь и программа циклически опрашивает прибор. Можно поставить галочку «Параметры» и произвести чтение или запись параметров уровнемера (в это время автоматический опрос не производиться). При работе через «Serial Bluetooth Terminal» необходимо подключиться к уровнемеру, и вручную писать и отправлять команды, на которые устройство будет давать ответ. Самые часто используемые команды можно установить на специальные макросы и подавать одним касанием.
Прибор с интерфейсом RS485 подключается к ПК при помощи USB->RS485 переходника. Есть много разновидностей подобных переходников. При первом подключении переходника необходимо установить драйвер для него. После установки в диспетчере устройств появиться еще один COM-порт. Запоминаем его, запускаем терминал (например «Terminal v1.9b»), выбираем наш COM-порт, и скорость (по умолчанию «9600») и жмем «Connect». Ну а дальше все просто — пишем команды, отправляем и получаем ответы.
Также прибор c интерфейсом RS485 можно подключить к Arduino. Для этого понадобиться переходник UART->RS485. К Arduino он подключается следующим образом:
Вывод переходника | Вывод Arduino |
DO | TX |
DI | RX |
RE, DE | Соединяться вместе и подключаются к любому GPIO выходу. |
При передаче команды, Arduino на RE, DE формирует лог. «1», все остальное время — лог. «0».
Установка уровнемера
При установке уровнемера UZ_URmeTR необходимо стараться разместить его так, чтобы перед ним не было никаких препятствий. Не допускается размещать прибор вплотную к боковым стенкам бака. Место установки подбирается экспериментально. Необходимо убедиться в наличии отраженного сигнала, а также стабильных и верных показаниях.
Тесты ультразвукового уровнемера UZ_URmeTR
Ну и конечно же тесты, куда же без них. Приборы тестировались на столе в жилой комнате. Результаты на скринах ниже.
Далее уровнемер UZ_URmeTR я направил в потолок. От потолка до стола расстояние 180 см.
Далее я спустил уровнемер на пол. Высота потолков у меня 253 см.
Далее я установил уровнемер на шкафу, на расстоянии около 4 м. до стены. Результаты теста на скрине ниже:
Команды управления ультразвуковым уровнемером UZ_URmeTR
Информационные команды:
UZ+DIST?\r – узнать текущее расстояние до цели, в сантиметрах.
UZ+AMP?\r – запрос значения уровня принятого сигнала.
UZ+TIME?\r – запрос времени пролета импульса до цели и обратно, в микросекундах.
UZ+TEMP?\r – запрос температуры, в °C.
UZ+DELAY?\r – узнать текущее установленную задержку между измерениями, в миллисекундах.
UZ+LRANGE?\r – узнать минимальную уставку расстояния до цели, в сантиметрах.
UZ+HRANGE?\r — узнать максимальную уставку расстояния до цели, в сантиметрах.
UZ+THRESHOLD?\r – запрос значения порога измерения (чем выше порог тем ниже чувствительность и наоборот).
UZ+MDFILT?\r – запрос значения медианного фильтра (0 – фильтр отключен, 3-9 возможные значения уставки фильтра).
UZ+CONT?\r – запрос наличия отражения сигнала от цели (возвращает «Yes» или «No»).
UZ+SPEED?\r – запрос значения текущей скорости распространения ультразвука в воздухе(скорость вычисляется прибором, на основании температуры).
UZ+MYSPEED?\r – запрос значения текущей скорости распространения ультразвука в воздухе(это скорость которую можно задавать самостоятельно. По умолчанию она равна «0». Если она не равна «0», то прибор при расчете дистанции использует именно ее, а не вычисленную на базе температуры).
UZ+BAUND?\r – запрос текущей скорости работы интерфейса RS485 (для приборов с интерфейсом RS485).
UZ+VERS?\r – запрос версии ПО прибора (версия ПО на момент создания обзора — 1.09).
UZ+GROUP?\r – групповой запрос, возвращает время пролета (в мкс), уровень принятого сигнала АЦП, температуру (в °C), дистанцию до цели (в см), и наличие отражения от цели (Yes/No). Разделитель «!». Пример ответа:
«10333!2933!177!23!Yes\r»
Команды установки параметров(прибор отвечает «Ok» или «Error»):
UZ+DELAY = хххх\r, — установить время между измерениями (400 – 10000 мс). Значение по умолчанию 400.
UZ+LRANGE = ххх\r, — установить минимальное фиксируемое расстояние (может быть от 5 см, но не выше чем максимальное фиксируемое расстояние минус 10). Значение по умолчанию 5.
UZ+HRANGE = ххх\r, — установить максимальное фиксируемое расстояние (может быть до 450 см, но не ниже чем минимальное фиксируемое расстояние плюс 10). Значение по умолчанию 450.
UZ+MDFILT = x\r, — установить значение медианного фильтра (0 – фильтр отключен, 3-9 диапазон значений фильтра). Значение по умолчанию 3.
UZ+BAUND = xxxx\r, — (для приборов с интерфейсом RS485) установить значение скорости для RS485 (9600, 19200, 38400, 57600, 115200 бит/с. Остальные параметры порта такие: Бит данных(WordLength)=8; Бит проверки(Parity)=Нет; Стоп бит(StopBits)=1). Значение по умолчанию 9600.
UZ+MYSPEED = xxx\r, — установить свое значение скорости распространения ультразвука в воздухе. (По умолчанию 0 м/с. Если значение не «0» то дистанция до цели считается с применением этой скорости, а не вычисленной на базе температуры. Диапазон перестройки от 0 до 2000 м/с). Значение по умолчанию 0.
UZ+THRESHOLD = xxxx\r, — установить порог срабатывания прибора (1000 – 3000 ед.) Чем выше порог тем ниже чувствительность, но при этом лучше отсекаются помехи, и наоборот. Подбирается экспериментально. Значение по умолчанию 2300.
UZ+RESET!!!\r, — сброс всех параметров.
Если устройство Вас заинтересовало напишите нам на почту:
[email protected]
ИНФОРМАЦИЯ О ПРИОБРЕТЕНИИ UZ_URmeTR