Drawing App with Nodejs, Socket.io and Expressjs

This is my first nodejs app created with express.js 4 and socket.io 1.
Download it on GitHub

A demo is to: drawing.francescopantisano.it

The app permit to draw on a map in real time with other people in a specified “room”, so only who know the name of the room can access.

DrawingAppFirstScreen

You can choose to show/hide the write on the map of the other member, with a “layer system” applied on the canvas.
The canvas is managed with the library jcanvas is very useful.

The room are managed with socket.io, the client connected to are managed by a caching system (node-cache) and a linq library node-linq.

If someone enter on the room after that someone have drawn, the system recover all the written and update the last client connected.

All the drawing action where saved on a buffer to server.

DrawingAppSecondScreen

 

Basic version on github => Download it

Nodemcu Light Control using Nodejs SSDP

LightControl con Nodejs SSDP

questo pacchetto ha una parte di script Arduino da poter lanciare su tutte le vostre NodeMcu e una parte applicativa realizzata con nodejs che gestisce le periferiche ed interagisce con loro utilizzando il protocollo SSDP che trovo veramente interessante per l’aspetto iot, evita di utilizzare/conoscere gli ip delle schede, ogni device connessione in rete espone una propria scheda identificativa, tramite le quale potete riconoscerlo e quindi interagirci:

SSDP.setSchemaURL("description.xml"); 
SSDP.setHTTPPort(80); 
SSDP.setName("NodemcuLightOne"); 
SSDP.setSerialNumber("0001"); 
SSDP.setURL("index.html"); 
SSDP.setModelName("nodemcu"); 
SSDP.setModelNumber("0001"); 
SSDP.setDeviceType("upnp:nodemculight"); 
SSDP.begin();

Il client nodejs è in ascolto sulla porta 3000.
Il device nodemcu viene interrogato sulla porta 80.

##NodeMCU
per configurarlo bisogna prima scaricare i driver https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers e poi, per comodita’, abbiamo utilizzato l’ide di Arduino, debitamente onfigurato così come indicato nelle numerose guide on line. Per installare il mio script su nodemcu ho utilizzato Arduino IDE, se avete bisogno di maggiori informazioni contattatemi pure.

##Node.js
va installato su una macchina e messo in ascolto sulla porta 3000, così come indicato nel pacchetto. 

##INSTALLAZIONE per avviare il server bisogna procedere nel seguente modo:

  1. Scaricare e installare la versione idonea di node ed npm: https://nodejs.org/it/download/
  2. installare il framework express tramite il gestore dei pacchetti: npm intall express

è possibile anche configurare tutto tramite npm install, a patto che il file package.json sia aggiornato nelle dipendenze necessarie. a questo punto si potrà avviare il server:

node app.js

Da notare che su sistemi Debian Node viene avviato con nodejs app.js, in quanto node è un altro applicativo presente sui repository.

 

Come configurare NodeJs SSDP

SSDP la cui definizione è Simple Service Discovery Protocol, viene utilizzato per la ricerca dei device connessi nella rete locale, ho utilizzato la libreria node-ssdp-js semplice da installare e da utilizzare. Bisogna definire una firma nei nostri device da poter successivamente “cercare”.

#JAVASCRIPT NODEJS

var Client = require('node-ssdp-js').Client, client = new Client();

client.on('response', function (response) {
    console.log('Response ssdp device:', response);
    var ipNodeMcuLight = response.referrer.address;
    console.log('IP:', ipNodeMcuLight);
});

client.browse('upnp:nodemculight');

#ARDUINO SCRIPT

SSDP.setDeviceType("upnp:nodemculight");

Progetto “LightControl” di Francesco Pantisano realizzato utilizzando come progetto di base “Plant” di Diomede Mazzone con la collaborazione di Fabio Z Tessitore (@FabioZTessitore) che ringrazio per la pazienza avuta a rispondere alle mie domande.

Tag: NodeJS, ExpressJS, HTML 5, client/server, Simple Service Discovery Protocol (SSDP)

Licenza: GPL 3.0 o successive