Côté matériel, le raspberry est équipé de la carte d'extension piFace qui comporte des relais.
Tout d'abord, quelques liens et tutos qui m'ont aidés à réaliser ce projet:
http://fr.openclassrooms.com/informatique/cours/des-applications-ultra-rapides-avec-node-js
http://nodejs.developpez.com/tutoriels/javascript/node-js-livre-debutant/
http://blog.rueedlinger.ch/2013/03/raspberry-pi-and-nodejs-basic-setup/
http://fr.openclassrooms.com/informatique/cours/des-applications-ultra-rapides-avec-node-js/socket-io-passez-au-temps-reel
https://npmjs.org/package/piface-node
code de l'application principale app.js:
var http = require('http');
var fs = require('fs');
var pfio = require('piface-node');
pfio.init();
// Chargement du fichier index.html affiché au client
var server = http.createServer(function(req, res) {
fs.readFile('./index.html', 'utf-8', function(error, content) {
res.writeHead(200, {"Content-Type": "text/html"});
res.end(content);
});
});
// Chargement de socket.io
var io = require('socket.io').listen(server, { log: false});
// Quand on client se connecte, on le note dans la console
io.sockets.on('connection', function (socket) {
socket.emit('message', 'Vous êtes bien connecté !');
socket.on('allume', function (message) {
console.log('Allumer la lampe');
pfio.digital_write(0, 1);
});
socket.on('eteint', function (message) {
console.log('Eteindre la lampe');
pfio.digital_write(0,0);
});
});
server.listen(8080);
Code de index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>PiFace</title>
</head>
<body>
<h1>Commande de la lampe</h1>
<p><input type="button" value="Allumer" id="RelaisOn" /></p>
<p><input type="button" value="Eteindre" id="RelaisOff" /></p>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://192.168.1.10:8080');
socket.on('message', function(message) {
alert('Le serveur a un message pour vous: ' + message);
})
var bouton1 = document.getElementById('RelaisOn');
var bouton2 = document.getElementById('RelaisOff');
bouton1.addEventListener('click', function() {
socket.emit('allume', 'Allumer');
}, false);
bouton2.addEventListener('click', function() {
socket.emit('eteint', 'Eteindre');
}, false);
</script>
</body>
</html>

Aucun commentaire:
Enregistrer un commentaire