Lätt Node.JS + WebSockets LED-Controller för Raspberry Pi (3 / 6 steg)
Steg 3: Skriva skriptet servern
Skapa en ny fil som heter 'main.js' i mappen node_led, den kommer att innehålla all kod som behövs för att köra servern. Använda din favorite textredaktör (jag föredrar Notepad ++ med NppFTP plugin).
Ställa in servern webserver och websocket
snabb = require('express'); webbserver
app = express();
Server = require('http').createServer(app);
IO = require('socket.io').listen(server); socket webbserver
Server.listen(8080); Starta webbserver på port 8080
app.use(Express.static('public')); tala om för servern att ./public/ innehåller den statiska webbsidor
Öppna den seriella porten
var SerialPort = require("serialport"). SerialPort
var serialPort = nya SerialPort ("/ dev/ttyACM0", {baudvärde: 115200});
Definiera WebSocket beteendet
var ljusstyrka = 0; statisk variabel att hålla nuvarande ljusstyrka
IO.Sockets.on ("anslutning", funktion (socket) {//gets anropas när en klient ansluter
socket.Emit ("ledde", {värde: ljusstyrka}); Skicka den nya klienten nuvarande ljusstyrka
socket.on ("led", funktion (data) {//makes uttaget reagerar på "ledde" paket genom att anropa funktionen
ljusstyrka = data.value; uppdateringar ljusstyrka från dataobjektet
var buf = nya Buffer(1); skapar en ny 1-bytes buffert
buf.writeUInt8 (ljusstyrka, 0); skriver pwm-värde till bufferten
serialPort.write(buf); överför bufferten till arduino
IO.Sockets.Emit ("ledde", {värde: ljusstyrka}); skickar uppdaterad ljusstyrkan till alla anslutna klienter
});
});
Detta är alla nödvändig koden till kör och websocket-webbservern, kan du lägga till raden "console.log("running");" för att ange att startproceduren är klar.