Поддержка импульсного датчика силы ветра

Привет! Есть WB6 и подключенный к нему через универсальный вход датчик ветра Barani MeteoWind. На выходе у него импульсы.
2 импульса = 1 вращение (1 Гц)
Вижу, что WB поддерживает импульсные устройства (расход воды и энергии). Настроил чисто для дебага соответствующий входу GPIO как watt_meter. Вижу по mqtt, что импульсы успешно рассчитываются, но не понял из документации и исходников, с какой частотой рассчитывается кол-во импульсов. Подскажите, куда смотреть, чтобы понять, как правильно поддержать такой девайс в wb-homa-gpio.

Добрый день.
Для воды, например - есть переметр “поток”, то есть объем/время.
Для определения скорости ветра надо ввести не количество импульсов на оборот, а количество импульсов на единицу скорости. То есть если введете количество импульсов в секунду для скорости 1 м/сек - то и результат будет в этих единицах.

Спасибо! То есть я правильно понял, ПО по дефолту рассчитывает исходя из частоты 1с?

Здравствуйте. С какой максимальной частотой работают дискретные входы и таймер?
Установлены настройки :
“name”: “wind_speed”,
“gpio”: 110,
“direction”: “input”,
“type”: “water_meter”,
“decimal_points_current”: 2,
“multiplier”: 1,
“decimal_points_total”: 0

На вход подаем импульсы с генератора. Если подаем 1Гц то в топике видно значение 1. При увеличении частоты, показания увеличиваюся, но начинают плавать и занижаются.

Значит на A3 подключен генератор. А выход генератора какой амплитуды?

У генератора выход открытый колллектор на землю с подтяжкой к 5 вольтам через 10к.
Амплитуда получается соответственно 5 вольт.
Нам необходимо измерять частоту в пределах 0-50 Гц. Какую максимальную частоту позволяют измерять дискретные входы?

Воспроизведу - проверю сегодня, чуть попозже.

А теоретических данных у вас нету? С какой частотой могут работать эти входы? А какой физический смысл чисел в топике current, Гц?

Теоретически - до 50 герц, где-то. Практически (для уверенной обработки в правилах) - 5 герц.
Для счетчика период - не меньше 250 мсек. То есть 4 Гц.
Потому что обрабатывается программно, службой wb-homa-gpio.

Да, практически. Импульсов (после делителя) в секунду.
Нужно более “быстрый”?

Понятно. Нам необходимо измерять частоту до 50 Гц. Есть ли способы как это можно реализовать? Возможно использовать аппаратный таймер?

Устройства с поддержкой измерения часторты (реле WB-MRM2-mini например) поддерживают до 10 гц.
Вообще - возможно, если написать “свой” драйвер и использовать его. Или, как вариант, - если именно период не особо важен - сделать внешний делитель на счетчике.
Если для датчика - то это как мне кажется решит проблему.

Может у вас есть какие то примеры как можно ускорить работу счетчика? Я посмотел gpio_counter.cpp и не понял чем ограничивается частота работы счетчика. TGpioCounter::HandleInterrupt - Это же обработчик внешнего прерывания с ноги контроллера, правильно?

Подключу разработчика.

Добрый день!
Попробуйте новую версию wb-mqtt-gpio 2.0.8. Здесь рассказано, как установить. Подключайте на входы контроллера A1-A4. В MQTT в топике XXX_current выдаётся значение, расчитанное из интервала между последними импульсами, оно будет немного плавать. Можно также использовать внешние устройства, например, MR6C, которые имеют функцию подсчёта частоты в требуемом диапазоне.

2 лайка

Спасибо, все заработало.