====== @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'); });