Christophe Nowicki

November 7, 2010

Lancement du projet HOMESENSE à Paris

HomeSense Logo

EDF R&D, Tinker London et l’ Université de Lancaster ont lancer le projet HomeSense.

L’objectif de celui-ci, est de mettre à disposition de plusieurs maisons réparties en Europe un kit de développement électronique basé sur la carte Arduino et un expert référent.

L’idée de projet est d’accompagner des personnes sans compétences particulières dans le domaine de l’électronique et la domotique dans une démarche de maison intelligente.

La démarche m’a beaucoup plus et j’ai donc décidé de participer au projet pour les raisons suivantes :

  • Je m’intéresse un peu à la domotique ;
  • Le matériel libre me passionne ;
  • J’aime beaucoup le rapprochement interdisciplinaire créé par la communauté Arduino, en effet, ce n’est pas simplement encore une carte de prototypage électronique rapide créée par l’industrie, mais bel et bien un rapprochement entre les “gens” du hardware, du software et du design ;
  • Cela me fait une excuse officielle pour bidouiller ;-)

Le Kit

L’Université de Lancaster a mis au point un Kit électronique basé sur la carte Arduino, il s’agit d’un kit sans soudure, un peu comme dans une boite de LEGO, l’ensemble des connections se font très simplement.
Le kit est très semblable à l’Electronic Brick de SeeedStudio

Le kit contient les briques suivantes :

  • carte Arduino ;
  • alimentation ;
  • “sensor shield” ;
  • un émulateur de clavier ;
  • des câbles ;
  • des boutons poussoirs ;
  • des capteurs de pression ;
  • des potentiomètres ;
  • des LEDs ;
  • servomoteur ;
  • un écran LCD.

Le kit est fourni avec des nombreux exemples pour exploiter ces composants.

Les Projets

Durant les trois mois du projet, nous nous sommes mis d’accord avec Maëlle pour réaliser des projets suivants :

  • La gestion des différentes radios de l’appartement pour “Écoutez la différence” ;-)
  • Le système d’illumination de l’appartement.

Nous documenterons notre démarche et l’avancement des travaux sur les différents blogs.

Références

Voici quelques références intéressantes :

October 6, 2009

Authentification à l’aide d’un lecteur RFID Phidgets

PhidgetRFID 1023

J’ai découvert les modules Phidgets dans botmag. Il s’agit d’un ensemble de modules électroniques (capteurs, relais, servomoteurs) qui fonctionnent sur la plupart des systèmes d’exploitation et sont programmable à l’aide de nombreux langages.

Je vais décrire dans cet article l’utilisation du Kit RFID pour l’authentification PAM sur une machine Debian GNU/Linux.

Présentation du PhidgetRFID Kit

Spécifications

L’interface lit les badges qui se trouvent à proximité et est équipée de 2 sorties (une commande de Led et une commande de relais). . Elle se raccorde sur un port USB et renvoie le numéro d’identification de badge.
Voici les spécifications du lecteur :

  • Consommation maxi: 100 mA ;
  • Portée (5 à 11 cm) ;
  • Sortie commande TTL ou CMOS (relais) ;
  • Sortie 5 Vcc/250 ohms (pour led) ;
  • Protocole de communication: EM4102 ;
  • Fréquence: 125KHz
  • Échantillonnage: 30 lectures/sec ;
  • Dimensions: 81 x 68 x 16 mm.

Où trouver le kit?

Le Kit est disponible chez :

Installation

Matériel

Rien de spécial, il suffit de brancher le module, et vérifier la détection à l’aide de lsusb :
# lsusb
Bus 002 Device 005: ID 06c2:0031 Phidgets Inc. (formerly GLAB)

Logiciel

L’ensemble des composants Phidgets utilisent un SDK unique, qui fourni une bibliothèque d’accès; dont voici la procédure d’installation :
# cd /usr/src
# wget http://www.phidgets.com/downloads/libraries/Phidgetlinux_2.1.6.20090928.tar.gz
# tar xzvf Phidgetlinux_2.1.6.20090928.tar.gz
# cd Phidgetlinux/phidget21
# make
# make install

Test de fonctionnement du lecteur

La 1ère étape consiste à tester le fonctionnement du lecteur à l’aide du programme mhc_rfid :
# cd /usr/src
# wget http://www.cmatthew.net/mhc_rfid/mhc_rfid.c
# gcc -o mhc_rfid mhc_rfid.c -g -O0 -Wall -lphidget21 -lm
# ./mhc_rfid
Waiting for RFID to be attached....Phidget RFID 2-output 78185 attached!
Output: 0 > State: 0
Output: 1 > State: 0
PhidgetRFID
Serial Number: 78185
Version: 206
# Outputs: 2
Antenna Status: 1
Onboard LED Status: 0
Press any key to start.....
Antenna ON Reading.....
Press any key to end.....
Got: 0107759322
Output: 1 > State: 1
Lost: 0107759322
Output: 1 > State: 0
Closing...

L’identifiant de la carte est 0107759322.

Gestion des droits

Par défaut l’accès aux périphériques USB est limité à l’utilisateur root. Pour donner l’accès à un utilisateur simple. Il faut configurer udev à l’aide du fichier fourni dans le kit de développement :
# cd /usr/src/Phidgetlinux/phidget21/udev
# cp 99-phidgets.rules /etc/udev/rules.d/

Débrancher et rebrancher le lecteur. Vous pourrez ensuite l’utiliser en tant que simple utilisateur.

Configuration de PAM

Pour utiliser ce lecteur comme système d’authentification, il faut installer et configurer un module PAM spécifique : PAM mhcrfid

Installation du module


# apt-get install libpam-dev
# cd /usr/src
# wget http://www.cmatthew.net/pam_mhcrfid/0.1.4/pam_mhcrfid.c
# gcc -Wall -fPIC -c pam_mhcrfid.c
# gcc -shared -o pam_mhcrfid.so pam_mhcrfid.o -lpam -lm -lphidget21
# mv pam_mhcrfid.so /lib/security

Configuration d’un service

Voici un exemple de configuration pour xscreensaver :
$ cat /etc/pam.d/xscreensaver
#
# /etc/pam.d/xscreensaver - PAM behavior for xscreensaver
#
auth sufficient pam_mhcrfid.so

L’utilisateur qui lance le service doit avoir un fichier .authtag contenant l’identifiant du tag :
$ cat -e ~/.authtag
0107759322$

Et voilà ;-)

Conclusion

Le système d’authentification n’est pas très solide, il n’y a aucune protection contre le rejeux et il est possible de sniffer l’identifiant du tag, etc…
Si vous cherchez une solution d’authentification plus forte, il faut regarder du côté du projet OpenPCD.
Mais cela peut être utile et très pratique dans certaines configurations, comme l’accès à certaines ressources de mon réseau domotique ;-)

Filed under: Debian,Do it yourself — Tags:, , — cscm @ 10:28

September 6, 2009

Communication à l’aide du protocole ZigBee entre un PC et une carte Arduino

L’objectif de ce montage est de faire communiquer un PC avec une carte Arduino à l’aide du protocole ZigBee
Voici l’architecture de montage :

Cette article décrit la mise en place d’une topologie réseau simple, permettant de communiquer entre un PC et une carte Arduino à l’aide de modules XBee série 1 de chez Digi.

Les composants

Le montage nécessite les composants suivants :

  • un PC, fonctionnant sous Debian GNU/Linux pour ma part ;
  • une carte Arduino ou bien un adaptateur USB relié au PC ;
  • deux modules de communication XBee ;
  • une carte Arduino avec un adaptateur XBee.

A propos du protocole ZigBee

ZigBee est un protocole de haut niveau permettant la communication de petites radios, à consommation réduite, basée sur la norme IEEE 802.15.4 pour les réseaux à dimension personnelle (WPANs).

C’est vraiment un très bon protocole, qui est bien plus simple à mettre en œuvre que le protocole Bluetooth. Je ne sais pas si vous avez déjà vu la stack du protocole. Il y a de quoi avoir peur ;-)

xBee, ZigBee et beeee?

Si vous êtes perdus avec tous ces sigles, c’est normal. Moi aussi ;-) Voici ce que j’ai compris :

  • ZigBee : est le nom du protocole ;
  • XBee : est le nom du produit chez le constructeur Digi ;
  • IEEE 802.15.4 : c’est le nom du standard qui définit le communication dans un WPAN ;

Ok, c’est vraiment pas plus claire ;-) Mais c’est dit.

Liste des composants

Vous avez besoin des composants suivants :

Nom du composant Archeter chez Quantité Prix
Platine d’interface USB pour modules “XBEE” Lextronic 1 (optionnel) 23€ TTC
Module xBee Matlog 1 (optionnel) 20€ TTC
Arduino Duemilanove Libelium 2 24€ TTC
Arduino Xbee ZB 2mW + UFL Antenna Libelium 2 50€ TTC

Partie PC

La connexion entre le module Xbee et un PC peut se faire de deux manières :

  • à l’aide d’un adaptateur USB ;
  • à l’aide d’une carte Arduino et d’un Shield XBee ;

L’objectif pour la partie PC du montage est de communiquer avec le module XBee, à fin de lui envoyer des commandes.
Cette communication se fait à l’aide d un convertisseur USB-Serial, ce rôle est joué par l’adaptateur USB ou bien par la carte Arduino + Shield.

Connexion à l’aide de l’adaptateur USB

L’adaptateur XBee se connect directement sur le port USB du PC :

Un fois branché, le module est visible à l’aide de la commande lsusb :

Bus 002 Device 013: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Communication à l’aide d’une carte Arduino + XBee Shield

L’adaptateur XBee se connecte directement sur la carte Arduino :

Il est nécessaire de modifier la configuration par du shield pour mettre la carte en mode USB-Serial.
Pour cela, il faut mettre les deux jumper à droite (éloigner du port USB), comme sur cette photo : Configuration mode USB-serial
Vous pouvez ensuite brancher la carte Arduino et voir le module XBee à l’aide de la commande lsusb :

Bus 002 Device 013: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Connexion à l’aide d’un gestionnaire de terminal

Une fois que le module XBee est connecté au PC, il doit être disponible sur /dev/ttyUSB0 :

[31016.280327] ftdi_sio 2-8.3:1.0: FTDI USB Serial Device converter detected
[31016.280354] /build/buildd/linux-2.6.24/drivers/usb/serial/ftdi_sio.c: Detected FT232RL
[31016.280449] usb 2-8.3: FTDI USB Serial Device converter now attached to ttyUSB0

Pour communiquer avec le module, il faut utiliser un programme de gestion de terminal ( gtkterm, minicom ou bien l’IDE de la carte Arduino).
Voici la configuration pour gtkterm :

Configuration du module XBee

Une fois que vous etes connecté au module XBee, vous pouvez lui envoyer des commandes à l’aide du gestionnaire de terminal.
Le module dispose de deux mode de fonctionnement : normal et configuration.
Pour passer en mode configuration, il faut saisir +++ (sans CR, retour à la ligne).
Si le module a compris la commande, alors il retourne OK.
Voici un exemple de session :
.

Configuration d’un réseau bidirectionnelle simple

Voici les différentes instructions pour configurer un réseau simple, c’est à dire une communication bidirectionnelle entre deux cartes Arduino ou bien entre un PC et une carte Arduino

Configuration sur la carte reliée au PC


+++OK
ATMY1234
OK
ATDL5678
OK
ATDH0
OK
ATID1111
OK

Configuration du module Arduino


+++OK
ATMY5678
OK
ATDL1234
OK
ATDH0
OK
ATID1111
OK

Les commandes importantes sont :

  • ATMY : adresse source ;
  • ATDL : adresse de destination (bite de poids faible) ;
  • ATDH : adresse de destination (bite de poids fort) ;
  • ATID : identifiant du réseau ;

Utilisation au niveau de la carte Arduino

Il faut inscrire le programme suivant dans la mémoire de la carte :

void setup() {
Serial.begin(9600);
Serial.print("+++");
Serial.print("ATDH0\r");
Serial.print("ATDL1234\r");
Serial.print("ATMY5678\r");
Serial.print("ATID1111\r");
Serial.print("ATCN\r");
}
void loop() {
delay(1000);
Serial.print("42\n");
}

La programmer et changer le sens des deux “jumper” pour faire communiquer le module avec la carte.

Référence

Si vous voulez vous simplifier la vie, il existe une bibliothèque pour la programmation des modules xbee : xbee-arduino.

Filed under: Do it yourself,Home automation,Robotics — Tags:, , — cscm @ 19:43

August 3, 2009

Refroidir un PC avec de l’huile, la suite

Voici les photos du montage final.

J’ai acheté mes aquariums sur mesure chez Aqua distribution.

Il s’agit des photos de ma nouvelle gateway et du switch dans les aquariums.

Et si vous pouvez voir les photos, c’est que tout fonctionne parfaitement ;-)

oil cooling oil cooling
oil cooling oil cooling
switch linksys SRW2024 switch linksys SRW2024
switch linksys SRW2024 oil cooling switch linksys SRW2024 oil cooling
Filed under: Do it yourself,Hardware — Tags:, — cscm @ 21:35

June 22, 2009

Refroidir un PC avec de l’huile

C’est une technique de refroidissement pour PC très peu connue qui dispose de nombreux avantages.
Il existe plusieurs techniques pour refroidir un PC et/ou des composants informatiques :

Dans cette article, je vais vous présenter cette dernière technique.

De l’huile?

Oui, lorsqu’on parle de l’huile tout le monde pense à l’huile de friture ou bien l’huile de vidange.

Mais il existe de très nombreuses familles / types d’huiles et dont chacune dispose de ses propres caractéristiques.
Il suffit de faire un tour sur la page Wikipedia de l’Huile pour se rendre compte de ses nombreuses possiblités.

Le plus gros avantage de ce produit pour le refroidissement d’un PC est qu’il n’est pas conducteur d’électricité.

Il est donc possible d’immerger les composants d’un PC dans l’huile sans créer de court-circuit.

Les inconvénients

Les principaux désavantages de cette méthode sont :

  • la nécessité de vider le boîtier/cuve pour changer un composant ;
  • il faut nettoyer les composants si vous voulez les revendre ;
  • déplacement difficile.

Les avantages

Les principaux avantages de cette méthode sont :

  • performance supérieure à l’air ;
  • passif, le système n’utilise pas d’énergie ;
  • silence absolu ;
  • le prix ;

Choix de l’huile

Pour le choix du type d’huile, mes critères sont les suivants :

  • pas d’odeur ;
  • pas d’émission de vapeur dangereuse pour la santé ;
  • pas de risque en cas de contact avec la peau / indigestion ;

L’huile qui correspond parfaitement à cette définition est ce que les anglais appellent le “White Mineral Oil”.
Pour ma part, j’ai pris du Primo 352 du producteur ESSO chez Lubexcel.

Composant incompatible

Il faut faire attention à ne pas immerger un disque dur dans l’huile, en effet c’est le seul type de composant qui n’est pas compatible avec ce système de refroidissement.
Il faut donc remplacer le disque dur de la machine, par une carte compact flash, un disque onchip ou bien un disque dur flash (SSD).

Boîtier pour le PC

Il vous faut un boîtier étanche pour l’immersion du PC, une boîte en plastique à 2 euros chez IKEA fait largement l’affaire ;-)

Pour ma part, j’ai fait faire des petits Aquariums sur mesure par un Artisan.

Performances

Avant l’immersion dans l’huile :
Chip Temp: +46.0 C (low = -127 C, high = +127 C)
CPU Temp: +63.0 C (low = +96 C, high = -104 C)
Sys Temp: +50.0 C (low = -127 C, high = +127 C)

Après :
Chip Temp: +26.0 C (low = -127 C, high = +127 C)
CPU Temp: +42.0 C (low = +96 C, high = -104 C)
Sys Temp: +29.0 C (low = -127 C, high = +127 C)

Un petit 42.0 C, température idéale pour un processeur ;-)
Grâce à l’immersion dans l’huile, on gagne en moyenne vingt degrés Celsius.

Photos

Voici les photos de mes 1ers testes d’immersion avec une carte mère Mini-ITX passive, qui chauffe vraiment beaucoup :


oil cooling mini-itx

oil cooling mini-itx

oil cooling mini-itx

Budget

Voici un exemple de budget pour une installation “Oil Cooling” :

Produit Commentaire Fournisseur Prix
E-PRIMOL 352 l’Huile Lubexcel 100€ TTC
SAMLA Boîte IKEA 1,99€ TTC

Thermomètre pour aquarium ou baignoire
Thermomètre Conrad 14.50€ TTC

Conclusion

Si cette technique vous intéresse, je vous conseille de faire un tour sur les liens suivants :

Pour ma part, je vais mettre à jours les photos de l’installation une fois que j’aurais reçu mes aquariums ;-)

Filed under: Do it yourself,Hardware — Tags:, — cscm @ 17:46

February 4, 2009

Présentation de la plateforme de développement éléctronique Arduino

Un ami m’a fait découvrir la plate-forme de développement Arduino.
J’en cherchais justement une, un peu plus avancée que la plate-forme Mindstorms de LEGO pour la robotique.

Celle d’Arduino est composée d’une carte élétronique qui se branche à l’aide du port USB sur un PC et d’une suite de logiciels pour développer des programmes sur la carte.
L’ensemble du matériel et des logiciels sont libres. (OpenHardware)

Lors des mes études, j’ai été introduit à la programmation sur Microcontrôleur PIC.
J’en garde quelque mauvais souvenir lié à la manipulation d’un environnement de développement intégré propriètaire et d’une grande complexité.

Du coup lorsque, j’ai branché ma carte Arduino Diecimila, compilé et éxécuté mon 1er programme en moins de 5 minutes, le tout sous Debian GNU/Linux.
Ce fut un gros choc! ;-)

Alors c’est vrai, je vais pouvoir faire des montages éléctroniques facilement ? ;-)

Pour être honnête, non, je ne vais pas me transformer en éléctronicien de génie en 5 minutes, chacun son métier et si l’on ne comprend pas les fondamentaux de l’éléctronique tout ne va pas fonctionner comme par miracle.

Néanmoins, je trouve cette plate-forme très intéressante, car elle permet de réaliser beaucoup de choses et manière très simple.
Je vous laisse juger par vous même :

Caractèristiques techniques de la carte

Arduino Duemilanove
  • Microcontroller : ATmega168
  • 14 Entrées/ Sorties Digital (dont 6 capables de réaliser une Modulation de largeur d’impulsion)
  • 6 Entrées Analogiques
  • 16KB de mémoire Flash
  • 1KB de SRAM
  • 512 bytes EEPROM
  • Cadence de l’horloge : 16 MHz
  • Alimentation via le port USB ou par une alimentation externe.

Cartes additionnelles

Il existe de très nombreuses possiblités d’extensions :

  • Bluetooth ;
  • Ethernet ;
  • Zigbee ;
  • GPRS ;
  • GPS ;
  • Carte MicroSD ;
  • Lecteur RDIF ;
  • Ećrans LCD ;
  • Accéléromètre ;
  • Gestion des servo moteurs ;
  • 1-wire
  • etc…

Les possiblités offertes par la carte sont très nombreuses, il y a une importante communauté de passionné autour de ce projet.

Premiers pas

Pour commencer, il existe une très bonne documentation en Français : Initiation à la mise en oeuvre matérielle et logicielle de l’Arduino (au format PDF).

Il y a de très nombreux revendeurs pour la carte, ansi que pour les extensions dans le monde.
Chaque magasin propose les cartes standards et parfois ses propres extensions.

Pour ma part, j’ai passé mes commandes de matériel chez Lextronic,Libelium et InMotion.

Je publierai bientôt quelques montages.

Enfin si mon chat est encore vivant ;)

Filed under: Do it yourself,Hardware,Home automation,Robotics — Tags: — cscm @ 21:37

Powered by WordPress