SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
@lhuet35#HackingHome
Hacking your Home
@lhuet35
SOFTEAM Cadextan
@lhuet35#HackingHome
Qu'allez-vous voir ?
•Du « Hacking »
•Du Hard
•Du Soft
•… et quelques idées bonus
@lhuet35#HackingHome
Qui suis-je ?
•9 ans de Java/Web chez
•4 ans de développement dans une grosse SSII
•4 ans dans le bâtiment !
https://github.com/lhuet
@YourTwitterHandle#DVXFR14{session hashtag} @lhuet35#HackingHome
H
acking ?
@lhuet35#HackingHome
Hacking - Wikipedia
“ Dans un sens large, le
bidouillage ou hacking concerne
les activités visant à détourner un
objet de sa fonction première. ”
@lhuet35#HackingHome
Hacker - Wikipedia
“ Derrière le terme hacker « se
cachent des utilisateurs à part,
qui préfèrent fouiller dans les
entrailles d’un ordinateur plutôt
que simplement l’utiliser » ”
@lhuet35#HackingHome
Hacker - Wikipedia
“ Les motivations principales du
hacker sont « la passion, le jeu, le
plaisir, l’échange et le partage » ”
@YourTwitterHandle#DVXFR14{session hashtag} @lhuet35#HackingHome
Station
m
étéo
@lhuet35#HackingHome
« Hacking » station météo
Liaison radio
(433 / 868 MHz)
@lhuet35#HackingHome
« Hacking » station météo
Liaison radio
(433 / 868 MHz)
@lhuet35#HackingHome
Passer du hard au soft
HopeRF RFM12b
Bus SPI
@lhuet35#HackingHome
Coté soft
•Arduino / JeeNode
•Code C
•Librairie JeeLabs
•Raspberri Pi
•Code C
•Driver Linux
•Module Node.js
https://github.com/gkaindl/rfm12b-linux
https://github.com/jcw/jeelib
@lhuet35#HackingHome
Montage avec Arduino UNO
http://openenergymonitor.org/emon/buildingblocks/rfm12b-wireless
@YourTwitterHandle@lhuet35#HackingHome
Dém
o
@YourTwitterHandle#DVXFR14{session hashtag} @lhuet35#HackingHome
H
ard
@lhuet35#HackingHome
2 grandes familles de cartes
•Microcontrôleurs
•Programme « flashé »
•Code C le plus souvent
•Cartes avec Linux embarqué
•Souvent avec un SoC ARM
•Langage au choix
@lhuet35#HackingHome
Connecteur Raspberry Pi
•GPIO
•Entrées / Sorties
•PWM
•Liaisons série
•UART
•SPI
•I2C
UART
I2C
SPI
SPI
http://elinux.org/Rpi_Low-level_peripherals
@lhuet35#HackingHome
Arduino « pinout »
UART
GPIO
Entrée
Analogiques
I2C
« Power »
@lhuet35#HackingHome
Multiples « périphériques »
Pression
atmosphérique Température
Affichage Texte
Humidité
Affichage graphique
+« Touch Screen » Caméra
@lhuet35#HackingHome
Pilotage « courant fort »
3,3V
GND
5V
GPIO
Appareils 220 V
(Max 10A)
@YourTwitterHandle#DVXFR14{session hashtag} @lhuet35#HackingHome
Soft
@lhuet35#HackingHome
Arduino IDE
Port série PC
Compilation
Upload
IDE écrit en Java
@lhuet35#HackingHome
/* http://arduino.cc/en/Tutorial/AnalogInput */
int sensorPin = A0;
int ledPin = 13;
int sensorValue = 0;
void setup() {
pinMode(ledPin, OUTPUT); // config. du pin en sortie
}
void loop() {
sensorValue = analogRead(sensorPin);
digitalWrite(ledPin, HIGH); // Led allumée
delay(sensorValue);
digitalWrite(ledPin, LOW); // Led éteinte
delay(sensorValue);
}
/* http://arduino.cc/en/Tutorial/AnalogInput */
int sensorPin = A0;
int ledPin = 13;
int sensorValue = 0;
void setup() {
pinMode(ledPin, OUTPUT); // config. du pin en sortie
}
void loop() {
sensorValue = analogRead(sensorPin);
digitalWrite(ledPin, HIGH); // Led allumée
delay(sensorValue);
digitalWrite(ledPin, LOW); // Led éteinte
delay(sensorValue);
}
Arduino → Langage accessible
@lhuet35#HackingHome
Ecosystème Arduino
•Nombreuses librairies
• Presque une librairie par capteur !
• http://arduino.cc/en/Reference/Libraries
•Firmata « Firmware » prêt à l'emploi→
• Protocole Firmata - http://firmata.org/wiki/Protocol
• Nombreuses implémentations (Java, C, Python, JavaScript, Ruby, ...)
•Couplage aisé avec Raspberry Pi
@lhuet35#HackingHome
Ecosystème Raspberry Pi
•C / C++
• WiringPi
• API bas niveau (gpio.h)
•Java
• Java Embedded
• Pi4J - https://github.com/Pi4J/pi4j/
•JavaScript
• Node.js et de multiples modules
@lhuet35#HackingHome
Nombreux modules Node.js
•Port série → https://github.com/voodootikigod/node-serialport
•Firmata → https://github.com/jgautier/firmata
•GPIO → https://www.npmjs.org/package/onof
•LCD Texte I2C → https://github.com/wilberforce/lcd-pcf8574
•Teleinfo → https://github.com/lhuet/teleinfo-node
•...
@lhuet35#HackingHome
var LCD = require('lcd-pcf8574');
var Gpio = require('onoff').Gpio;
var ledRouge = new Gpio(22, 'out');
var boutonJaune = new Gpio(23, 'in', 'falling');
var lcd = new LCD('/dev/i2c-0', 0x27);
boutonJaune.watch(function(err, value) {
ledRouge.write(0);
lcd.setCursor(0,0).print('-- Devoxx France --');
lcd.setCursor(0,1).print(' Bouton appuyé ! ');
setTimeout(function() {
lcd.setCursor(0,1).print(' ') ;
}
});
var LCD = require('lcd-pcf8574');
var Gpio = require('onoff').Gpio;
var ledRouge = new Gpio(22, 'out');
var boutonJaune = new Gpio(23, 'in', 'falling');
var lcd = new LCD('/dev/i2c-0', 0x27);
boutonJaune.watch(function(err, value) {
ledRouge.write(0);
lcd.setCursor(0,0).print('-- Devoxx France --');
lcd.setCursor(0,1).print(' Bouton appuyé ! ');
setTimeout(function() {
lcd.setCursor(0,1).print(' ') ;
}
});
Exemple Node.js
@YourTwitterHandle#DVXFR14{session hashtag} @lhuet35#HackingHome
Com
pteur
ED
F
@lhuet35#HackingHome
« Hacking » compteur EDF
Rien n'est illégal dans ce montage (hacking != illegal)
UART
Liaison Téléinfo
(Bornier client)
Montage
« custom »
@lhuet35#HackingHome
Montage téléinfo
Réalisation
Prototype
@lhuet35#HackingHome
Cablage sur le compteur
@lhuet35#HackingHome
Protocole Teleinfo
•Liaison série 1200 7E1
• http://www.erdf.fr/medias/DTR_Racc_Comptage/ERDF-NOI-CPT_02E.pdf
ADCO 000028290000 P
OPTARIF BASE 0
ISOUSC 30 9
BASE 002247218 %
PTEC TH.. $
IINST 003 Z
IMAX 030 B
PAPP 00630 *
MOTDETAT 000000 B
ADCO 000028290000 P
OPTARIF BASE 0
ISOUSC 30 9
BASE 002247218 %
PTEC TH.. $
IINST 003 Z
IMAX 030 B
PAPP 00630 *
MOTDETAT 000000 B
Exemple de trame
(Tarif bleu)
@lhuet35#HackingHome
Module Teleinfo sur Node.js
•https://github.com/lhuet/teleinfo-node
var teleinfo = require('teleinfo');
var util = require('util');
// Exemple d'utilisation sur Raspberry Pi
var trameEvents = teleinfo('/dev/ttyAMA0');
// Événement 'tramedecodee' pour chaque trame réçue du compteur
trameEvents.on('tramedecodee', function (data) {
// data : objet avec les données validées (checksum)
console.log(util.inspect(data));
});
var teleinfo = require('teleinfo');
var util = require('util');
// Exemple d'utilisation sur Raspberry Pi
var trameEvents = teleinfo('/dev/ttyAMA0');
// Événement 'tramedecodee' pour chaque trame réçue du compteur
trameEvents.on('tramedecodee', function (data) {
// data : objet avec les données validées (checksum)
console.log(util.inspect(data));
});
@lhuet35#HackingHome
Module Tarifbleu sur Node.js
•https://github.com/lhuet/tarifbleu-node
var tarifbleu = require('tarifbleu');
var util = require('util');
var logger = function (data) {
console.log(util.inspect(data));
};
var infoCompteur = tarifbleu('/dev/ttyAMA0', '00 * * * * *', logger);
setInterval(function() {
console.log(infoCompteur.getPuissanceApparente() + ' VA');
console.log(infoCompteur.getIntensite() + ' A');
console.log(infoCompteur.getIndex() + ' Wh');
}, 2000);
var tarifbleu = require('tarifbleu');
var util = require('util');
var logger = function (data) {
console.log(util.inspect(data));
};
var infoCompteur = tarifbleu('/dev/ttyAMA0', '00 * * * * *', logger);
setInterval(function() {
console.log(infoCompteur.getPuissanceApparente() + ' VA');
console.log(infoCompteur.getIntensite() + ' A');
console.log(infoCompteur.getIndex() + ' Wh');
}, 2000);
@lhuet35#HackingHome
Application
•MongoDB
• Stockage des données (SAAS)
• Aggregation Framework pour la consolidation
•Node.js
• Serveur Express (API REST)
• Liaison Téléinfo
@lhuet35#HackingHome
Frontend Web
•AngularJS
• Rudimentaire pour le moment
•Build avec Gulp.js
• Livereload serveur + client
@lhuet35#HackingHome
Application Web
@YourTwitterHandle@lhuet35#HackingHome
Dém
o
@YourTwitterHandle#DVXFR14{session hashtag} @lhuet35#HackingHome
M
ontages
à
venir
@lhuet35#HackingHome
Chaufage & ECS
•Ballon avec 3 sources d'énergie
• Chauffage bois
• Panneau solaire
• Résistance électrique
•A venir
• Monitoring températures Optimisation conso.→
• Pilotage résistance
@lhuet35#HackingHome
Écran « familial »
•Supervision / Contrôle
• Visualisation des consommations en « live »
• Aide à l'optimisation d'énergie
•Écrans en cours de tests
Ecran 2,2 "
Ecran 3,2 "
tactile
@YourTwitterHandle#DVXFR14{session hashtag} @lhuet35#HackingHome
Q
uelques
pointeurs
@lhuet35#HackingHome
Liens utiles
•« Learn Adafruit » → https://learn.adafruit.com
• Tutoriels Arduino / Raspberry Pi / Beaglebone
•Référence eLinux.org → http://elinux.org/Main_Page
• Nombreux articles Soft & Hard
• Utiles pour le « Troubleshooting »
•Blogs
• Le mien ;-) → http://lhuet.github.io/blog/
• Celui d'Alexandre 
http://alex.thomazo.info/2013/06/16/premiers-pas-avec-un-jeenode/→
@YourTwitterHandle#DVXFR14{session hashtag} @lhuet35#HackingHome
Q
&
A

Mais conteúdo relacionado

Destaque

Hacking your Home @bdx.io
Hacking your Home @bdx.ioHacking your Home @bdx.io
Hacking your Home @bdx.iolaurenthuet
 
Table ronde top tic 2014
Table ronde top tic 2014Table ronde top tic 2014
Table ronde top tic 2014Vaisonet
 
Allô J'écoute
Allô J'écouteAllô J'écoute
Allô J'écoutejtp2626
 
Ute el emprendimiento social como marco de análisis esthela_buenanio_septimon...
Ute el emprendimiento social como marco de análisis esthela_buenanio_septimon...Ute el emprendimiento social como marco de análisis esthela_buenanio_septimon...
Ute el emprendimiento social como marco de análisis esthela_buenanio_septimon...Marisol Buenaño Fonseca
 
Material bibliográfico
Material bibliográficoMaterial bibliográfico
Material bibliográficoRita Ramírez
 
Joyeux Noel
Joyeux NoelJoyeux Noel
Joyeux Noelpetitoi
 
Comité technique et fonctionnel présentation privée notifications & pac 2011 ...
Comité technique et fonctionnel présentation privée notifications & pac 2011 ...Comité technique et fonctionnel présentation privée notifications & pac 2011 ...
Comité technique et fonctionnel présentation privée notifications & pac 2011 ...jguivarch
 
Lettre sfmc n°84_novembre_2015
Lettre sfmc n°84_novembre_2015Lettre sfmc n°84_novembre_2015
Lettre sfmc n°84_novembre_2015Jan-Cedric Hansen
 
PRESENTATION IRRESISTIBLE AUTO
PRESENTATION IRRESISTIBLE AUTOPRESENTATION IRRESISTIBLE AUTO
PRESENTATION IRRESISTIBLE AUTOEliott COLIN
 
TIC TAC TEP CLARET COLABORAR
TIC TAC TEP CLARET COLABORARTIC TAC TEP CLARET COLABORAR
TIC TAC TEP CLARET COLABORARClaret
 
E gane presentación intermediarios de seguros
E gane presentación intermediarios de segurosE gane presentación intermediarios de seguros
E gane presentación intermediarios de segurosJose Leonardo Galvez
 
PortefóLio Joel Mota 8ºG
PortefóLio Joel Mota 8ºGPortefóLio Joel Mota 8ºG
PortefóLio Joel Mota 8ºGguestc5adc9
 

Destaque (20)

Hacking your Home @bdx.io
Hacking your Home @bdx.ioHacking your Home @bdx.io
Hacking your Home @bdx.io
 
Table ronde top tic 2014
Table ronde top tic 2014Table ronde top tic 2014
Table ronde top tic 2014
 
Museo louvre
Museo louvreMuseo louvre
Museo louvre
 
Encuesta exclusivis
Encuesta exclusivisEncuesta exclusivis
Encuesta exclusivis
 
Allô J'écoute
Allô J'écouteAllô J'écoute
Allô J'écoute
 
Stratégie Océan Bleu
Stratégie Océan BleuStratégie Océan Bleu
Stratégie Océan Bleu
 
Ute el emprendimiento social como marco de análisis esthela_buenanio_septimon...
Ute el emprendimiento social como marco de análisis esthela_buenanio_septimon...Ute el emprendimiento social como marco de análisis esthela_buenanio_septimon...
Ute el emprendimiento social como marco de análisis esthela_buenanio_septimon...
 
Material bibliográfico
Material bibliográficoMaterial bibliográfico
Material bibliográfico
 
Joyeux Noel
Joyeux NoelJoyeux Noel
Joyeux Noel
 
Comité technique et fonctionnel présentation privée notifications & pac 2011 ...
Comité technique et fonctionnel présentation privée notifications & pac 2011 ...Comité technique et fonctionnel présentation privée notifications & pac 2011 ...
Comité technique et fonctionnel présentation privée notifications & pac 2011 ...
 
Lettre sfmc n°84_novembre_2015
Lettre sfmc n°84_novembre_2015Lettre sfmc n°84_novembre_2015
Lettre sfmc n°84_novembre_2015
 
PRESENTATION IRRESISTIBLE AUTO
PRESENTATION IRRESISTIBLE AUTOPRESENTATION IRRESISTIBLE AUTO
PRESENTATION IRRESISTIBLE AUTO
 
TIC TAC TEP CLARET COLABORAR
TIC TAC TEP CLARET COLABORARTIC TAC TEP CLARET COLABORAR
TIC TAC TEP CLARET COLABORAR
 
Parasha 35 naaso
Parasha 35 naasoParasha 35 naaso
Parasha 35 naaso
 
Agility
AgilityAgility
Agility
 
Arnaud Calonne, Co-fondateur, agence Adrider, pour Motoblur de Motorola
Arnaud Calonne, Co-fondateur, agence Adrider, pour Motoblur de MotorolaArnaud Calonne, Co-fondateur, agence Adrider, pour Motoblur de Motorola
Arnaud Calonne, Co-fondateur, agence Adrider, pour Motoblur de Motorola
 
Sénégal
SénégalSénégal
Sénégal
 
E gane presentación intermediarios de seguros
E gane presentación intermediarios de segurosE gane presentación intermediarios de seguros
E gane presentación intermediarios de seguros
 
Parasha 38 koraj
Parasha 38 koraj Parasha 38 koraj
Parasha 38 koraj
 
PortefóLio Joel Mota 8ºG
PortefóLio Joel Mota 8ºGPortefóLio Joel Mota 8ºG
PortefóLio Joel Mota 8ºG
 

Semelhante a Hacking your home

Rétro-ingénierie de protocole crypto: Un "starter pack"
Rétro-ingénierie de protocole crypto: Un "starter pack"Rétro-ingénierie de protocole crypto: Un "starter pack"
Rétro-ingénierie de protocole crypto: Un "starter pack"Maxime Leblanc
 
Réalité virtuelle + Open source = <3
Réalité virtuelle + Open source = <3Réalité virtuelle + Open source = <3
Réalité virtuelle + Open source = <3Yannick Comte
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Normandie Web Xperts
 
Colloque cyber 2010 les botnets
Colloque cyber 2010   les botnetsColloque cyber 2010   les botnets
Colloque cyber 2010 les botnetsmichelcusin
 
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...Duyhai Doan
 
L'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objetsL'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objetsThomas Bassetto
 
Elasticsearch - Montpellier JUG
Elasticsearch - Montpellier JUGElasticsearch - Montpellier JUG
Elasticsearch - Montpellier JUGDavid Pilato
 
Industrialiser le contrat dans un projet PHP
Industrialiser le contrat dans un projet PHPIndustrialiser le contrat dans un projet PHP
Industrialiser le contrat dans un projet PHPhalleck45
 
Elasticsearch - OSDC France 2012
Elasticsearch - OSDC France 2012Elasticsearch - OSDC France 2012
Elasticsearch - OSDC France 2012David Pilato
 
Lyon JUG - Elasticsearch
Lyon JUG - ElasticsearchLyon JUG - Elasticsearch
Lyon JUG - ElasticsearchDavid Pilato
 
Kit de survie pour l'IoT façon DIY
Kit de survie pour l'IoT façon DIYKit de survie pour l'IoT façon DIY
Kit de survie pour l'IoT façon DIYlaurenthuet
 
Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Kenny Dits
 
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Benoît de CHATEAUVIEUX
 
.NET Microframework: du code, de l’électronique, de la robotique
.NET Microframework: du code, de l’électronique, de la robotique.NET Microframework: du code, de l’électronique, de la robotique
.NET Microframework: du code, de l’électronique, de la robotiqueMicrosoft
 
Devops rex tales of container security
Devops rex   tales of container securityDevops rex   tales of container security
Devops rex tales of container securityRachid Zarouali
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab ElasticsearchDavid Pilato
 

Semelhante a Hacking your home (20)

Rétro-ingénierie de protocole crypto: Un "starter pack"
Rétro-ingénierie de protocole crypto: Un "starter pack"Rétro-ingénierie de protocole crypto: Un "starter pack"
Rétro-ingénierie de protocole crypto: Un "starter pack"
 
Réalité virtuelle + Open source = <3
Réalité virtuelle + Open source = <3Réalité virtuelle + Open source = <3
Réalité virtuelle + Open source = <3
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
 
Colloque cyber 2010 les botnets
Colloque cyber 2010   les botnetsColloque cyber 2010   les botnets
Colloque cyber 2010 les botnets
 
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...
 
L'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objetsL'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objets
 
Elasticsearch - Montpellier JUG
Elasticsearch - Montpellier JUGElasticsearch - Montpellier JUG
Elasticsearch - Montpellier JUG
 
Presentation
PresentationPresentation
Presentation
 
Hackerspace jan-2013
Hackerspace jan-2013Hackerspace jan-2013
Hackerspace jan-2013
 
Industrialiser le contrat dans un projet PHP
Industrialiser le contrat dans un projet PHPIndustrialiser le contrat dans un projet PHP
Industrialiser le contrat dans un projet PHP
 
Elasticsearch - OSDC France 2012
Elasticsearch - OSDC France 2012Elasticsearch - OSDC France 2012
Elasticsearch - OSDC France 2012
 
Lyon JUG - Elasticsearch
Lyon JUG - ElasticsearchLyon JUG - Elasticsearch
Lyon JUG - Elasticsearch
 
Kit de survie pour l'IoT façon DIY
Kit de survie pour l'IoT façon DIYKit de survie pour l'IoT façon DIY
Kit de survie pour l'IoT façon DIY
 
Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?
 
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
 
.NET Microframework: du code, de l’électronique, de la robotique
.NET Microframework: du code, de l’électronique, de la robotique.NET Microframework: du code, de l’électronique, de la robotique
.NET Microframework: du code, de l’électronique, de la robotique
 
Paris RailsCamp 2009
Paris RailsCamp 2009Paris RailsCamp 2009
Paris RailsCamp 2009
 
Devops rex tales of container security
Devops rex   tales of container securityDevops rex   tales of container security
Devops rex tales of container security
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab Elasticsearch
 
Networxx (intro et fin)
Networxx (intro et fin)Networxx (intro et fin)
Networxx (intro et fin)
 

Hacking your home