====== @amperka/water-flow======
Библиотека для работы с [[amp>product/water-flow-sensor|датчиком потока воды]].
Функции библиотеки реализуют считывание сырых данных с датчика и представляют результаты в удобном виде. Использует метод скользящего среднего для повышения точности вычислений скорости потока.
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);
func:: connect(pin [, opts])
Создаёт новый объект WaterFlow для датчика на пине ''pin''. Принимает необязательный объект ''opts'' с настройками поведения:
* ''averageLength'' — длина массива скользящего среднего. Значение по умолчанию — 10.
* ''pulsesPerLitre'' — количество пульсов приходящихся на 1 литр прошедшей жидкости. Этот параметр зависти от типа датчика и по умолчанию принимает значение 450.
* ''minimumSpeed'' — минимальная скорость потока жидкости для данного типа датчика. Значение по умолчанию — 1.
class:: WaterFlow
===== Функции и объекты модуля =====
func:: volume([units])
Возвращает объем жидкости, прошедшее через датчик. Единицы измерения ''units'' могут принимать следующие значения:
* ''%%'%%l%%'%%'' — литры
* ''%%'%%cm^3%%'%%'' — кубические сантиметры
* ''%%'%%m^3%%'%%'' — кубические метры
Значение по умолчанию — ''%%'%%l%%'%%''
var litres = flowSensor.volume('l');
func:: reset();
Сбрасывает в 0 значение, получаемое в функции ''volume(units)''.
func:: speed([units])
Возвращает скорость потока жидкости, проходящее через датчик. Параметр ''units'' может принимать следующие значения:
* ''%%'%%l/min%%'%%'' — литры в минуту
* ''%%'%%cm^3/min%%'%%'' — кубические сантиметры в минуту
* ''%%'%%m^3/min%%'%%'' — кубические метры в минуту
Значение по умолчанию — ''%%'%%l/min%%'%%''.
var litresPerMinute = flowSensor.speed('l/min');
=== События, генерируемые модулем ===
event:: on('pulse', function () {...})
функция во втором аргументе будет вызвана каждый раз при обновлении объема жидкости, прошедшей через датчик. Чувствительность датчика позволяет обновить значение на ''1/pulsesPerLitre'' литра.
flowSensor.on('pulse', function () {
var litres = flowSensor.volume('l');
});