raspberryGPIOhtmlserver/server.js
server.jsRaw
1/*
2https://www.npmjs.com/package/pi-gpio
3*/
4
5//var gpio = require("pi-gpio");
6
7
8var express=require('express'),
9app=express(),
10server=require('http').createServer(app),
11io = require('socket.io',{transports: ['websocket']}).listen(server);
12server.listen(3000);
13var shortId = require('shortid');
14
15//ip
16var os = require( 'os' );
17var networkInterfaces = os.networkInterfaces( );
18
19//own modules
20var IsPinAlreadyON = require('./IsPinAlreadyON.js');
21
22//poder accedir al server i interactuar
23app.use(express.static(__dirname + '/clientGPIO'));
24
25
26
27var numconnections=0;
28var listPinsON=[];
29io.on('connection', function (socket) {
30 socket.on('newconnection', function (data,callback){
31 numconnections++;
32 console.log("numconnections: " + numconnections);
33 io.sockets.emit('numconnections',{numconnections}); //aqí envia la data
34 });
35 socket.on('pinON', function (data,callback){
36 console.log(data + "--> ON");
37
38 //comprova si el pin està already encès
39 if(IsPinAlreadyON.isit(listPinsON, data)==false)
40 {
41 listPinsON.push(data);
42 console.log("listPinsON: " + listPinsON);
43 gpio.open(data, "output", function(err) { // Open pin per output
44 gpio.write(data, 1, function() { // Set pin high (1)
45 gpio.close(data); // Close pin
46 });
47 });
48 io.sockets.emit('listPinsON',{listPinsON});
49 }else{
50 //pin already encès
51 io.sockets.emit("alreadyON", data);
52 }
53 });
54
55 socket.on('pinOFF', function (data,callback){
56 console.log(data + "--> OFF");
57 for(var i=0; i<listPinsON.length; i++)
58 {
59 if(listPinsON[i]==data)
60 {
61 listPinsON.splice(i, 1);
62 }
63 }
64
65 console.log("listPinsON: " + listPinsON);
66 gpio.open(data, "output", function(err) { // Open pin per output
67 gpio.write(data, 0, function() { // Set pin low (0)
68 gpio.close(data); // Close pin
69 });
70 });
71 io.sockets.emit('listPinsON',{listPinsON}); //aqí envia la data
72 });
73
74
75});
76
77
78
79console.log("------- server is running -------");