-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathactuator.js
More file actions
99 lines (92 loc) · 2.74 KB
/
actuator.js
File metadata and controls
99 lines (92 loc) · 2.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
(function() {
'use strict';
const Gpio = require('onoff').Gpio;
const mqtt = require('./mqtt');
var pump1 = new Gpio(global.pump1.PIN, 'out');
var pump2 = new Gpio(global.pump2.PIN, 'out');
var valve1 = new Gpio(global.valve1.PIN, 'out');
var valve2 = new Gpio(global.valve2.PIN, 'out');
function togglePump(pumpID, mode) {
if(pumpID == 1) {
if(mode == "on") {
if(global.tank2 == "FULL") {
global.logger.log("Cannot turn ON Pump1: Tank2 is " + global.tank2);
} else if(global.tank1 == "EMPTY") {
global.logger.log("Cannot turn ON Pump1: Tank1 is " + global.tank2);
} else {
global.pump1.state = mode;
pump1.writeSync(1);
global.logger.log("Pump1 turned ON");
mqtt.sendMsg("Pump1", true);
}
} else if(mode == "off") {
global.pump1.state = mode;
pump1.writeSync(0);
global.logger.log("Pump1 turned OFF");
mqtt.sendMsg("Pump1", false);
}
} else if(pumpID == 2) {
if(mode == "on") {
if(global.turbiditySensor <= 500) {
if(global.tank2 != "EMPTY") {
if(global.valve1.state == "on" || global.valve2.state == "on") {
setTimeout(function() {
global.pump2.state = mode;
pump2.writeSync(1);
global.logger.log("Pump2 turned ON");
}, 500);
} else {
global.logger.log("Cannot turn ON Pump2: Valve1 and Valve2 are both OFF");
}
} else {
global.logger.log("Cannot turn ON Pump2: Tank2 is " + global.tank2);
}
} else {
global.logger.log("Cannot turn ON Pump2: Tank2 is dirty (" + global.turbiditySensor + " NTU)");
}
} else if(mode == "off") {
global.pump2.state = mode;
pump2.writeSync(0);
global.logger.log("Pump2 turned OFF");
}
}
};
exports.togglePump = togglePump;
function toggleValve(valveID, mode) {
if(mode == "on") {
if(valveID == 1) {
global.valve1.state = mode;
valve1.writeSync(1);
global.logger.log("Valve1 turned ON");
//mqtt.sendMsg("Valve1", true);
} else if(valveID == 2) {
global.valve2.state = mode;
valve2.writeSync(1);
global.logger.log("Valve2 turned ON");
//mqtt.sendMsg("Valve2", true);
}
togglePump(2, "on");
} else if (mode == "off") {
if(global.pump2.state == "on") {
if(valveID == 1) {
if(global.valve2.state == "off") {
togglePump(2, "off");
}
global.valve1.state = mode;
valve1.writeSync(0);
global.logger.log("Valve1 turned OFF");
//mqtt.sendMsg("Valve1", false);
} else if(valveID == 2) {
if(global.valve1.state == "off") {
togglePump(2, "off");
}
global.valve2.state = mode;
valve2.writeSync(0);
global.logger.log("Valve2 turned OFF");
//mqtt.sendMsg("Valve2", false);
}
}
}
};
exports.toggleValve = toggleValve;
}());