@amperka/water-flow
Библиотека для работы с датчиком потока воды. Функции библиотеки реализуют считывание сырых данных с датчика и представляют результаты в удобном виде. Использует метод скользящего среднего для повышения точности вычислений скорости потока.
var normalSpeed = 10; // создаем объект датчика потока жидкости var flowSensor = require('@amperka/water-flow').connect(P3, {measurePeriod: 5}); // каждые 150 миллисекунд проверяем скорость жидкости setInterval(function() { // если скорость потока меньше обычной if (flowSensor.speed('l/min') < normalSpeed) { // выключаем насос во избежание перегрева pump.turnOff(); } }, 150);
Создаёт новый объект WaterFlow для датчика на пине pin
. Принимает необязательный объект opts
с настройками поведения:
averageLength
— длина массива скользящего среднего. Значение по умолчанию — 10.pulsesPerLitre
— количество пульсов приходящихся на 1 литр прошедшей жидкости. Этот параметр зависти от типа датчика и по умолчанию принимает значение 450.minimumSpeed
— минимальная скорость потока жидкости для данного типа датчика. Значение по умолчанию — 1.
Функции и объекты модуля
Возвращает объем жидкости, прошедшее через датчик. Единицы измерения units
могут принимать следующие значения:
'l'
— литры'cm^3'
— кубические сантиметры'm^3'
— кубические метры
Значение по умолчанию — 'l'
var litres = flowSensor.volume('l');
Сбрасывает в 0 значение, получаемое в функции volume(units)
.
Возвращает скорость потока жидкости, проходящее через датчик. Параметр units
может принимать следующие значения:
'l/min'
— литры в минуту'cm^3/min'
— кубические сантиметры в минуту'm^3/min'
— кубические метры в минуту
Значение по умолчанию — 'l/min'
.
var litresPerMinute = flowSensor.speed('l/min');
События, генерируемые модулем
функция во втором аргументе будет вызвана каждый раз при обновлении объема жидкости, прошедшей через датчик. Чувствительность датчика позволяет обновить значение на 1/pulsesPerLitre
литра.
flowSensor.on('pulse', function () { var litres = flowSensor.volume('l'); });