// подключаем модуль датчика уровня воды var level = require('@amperka/water-level'); // подключаем датчик на дне бочки var onBottom = level.connect(P1, {debounce: 3}); // подключаем датчик на крышке бочки var onTop = level.connect(P2, {debounce: 3}); // подключаем реле var pump = require('@amperka/relay').connect(P5); // ожидаемая скорость потока воды в литрах в минуту var normalSpeed = 10; // создаем объект датчика потока жидкости var flowSensor = require('@amperka/water-flow').connect(P3); var flowSensorTimer = null; var switchOn = function() { // включаем насос pump.turnOn(); if (flowSensorTimer === null) { // каждые 2000 миллисекунд проверяем скорость воды flowSensorTimer = setInterval(function() { // если скорость потока меньше обычной var speed = flowSensor.speed('l/min'); if (speed < normalSpeed) { // выключаем насос во избежание перегрева switchOff(); print('overheat'); } }, 2000); } }; var switchOff = function() { // выключаем насос pump.turnOff(); // выключаем опрос скорости потока if (flowSensorTimer !== null) { clearInterval(flowSensorTimer); flowSensorTimer = null; } }; // если датчик на дне бочки опустился if (onBottom.read() === 'down') { // включаем устройство switchOn(); print('barrel is empty'); } // событие: датчик на крышке бочки поднялся onTop.on('up', function () { print('water level is high'); // выключаем устройство switchOff(); }); // событие: датчик на дне бочки опустился onBottom.on('down', function () { // включаем устройство switchOn(); print('water level is low'); });