Un module node.js pour lire les données du port série

Serialport est un module node.js qui permet de lire les infos du port série, ce qui ouvre pas mal de possibilité au javascript comme...  allumer la lumière du salon ou communiquer avec des drones.

Pour l'utiliser c'est assez simple

npm install serialport

L'installation de serialport nécessite python 2.X et les "xcode command line tools" Pour les "command line tools" pas besoin de télécharger les quelques gigas de Xcode on peux les trouver ici

On va ensuite créer un serveur qu'on appelera server.js et y copier le code ci-dessous en précisant le bon "baudrate" et en remplaçant tty.usbserial-A6023L0J par l'adresse du port avec lequel on veux communiquer. ls /dev/tty.*  pour voir les port actifs

var io = require('socket.io').listen(server); 
io.sockets.on('connection', socket);

var serialport = require("serialport");
var SerialPort = serialport.SerialPort;
var sp = new SerialPort("/dev/tty.usbserial-A6023L0J", {
parser: serialport.parsers.readline("n"),
baudrate: 57600
});

sp.on("open", function() {
console.log('open');
sp.on('data', function(data) {
console.log('data received: ' + data);
});
});

Puis on lance le serveur

node server.js

En admettant qu'un appareil soit branché sur un port série de votre ordinateur et qu'il envoi des données, le terminal devrait maintenant afficher le console.log qui ressemble à ça :

node.js serialport

Serialport permet de lire mais aussi d'écrire sur le port série, ce qui laisse envisager de nombreuses d'utilisations, si ça vous intérresse voici deux articles intéressant, le premier sur le controle d'un arduino avec node.js et le deuxième sur le javascript et la robotique par l'auteur du module serialport.

http://brandontilley.com/2012/03/02/controlling-an-arduino-from-nodejs.html

http://voodootikigod.com/nodebots-the-rise-of-js-robotics