05 octobre 2014

Une installation domotique est constituée de multiples capteurs et autres objets connectés (buzzword oblige). L’aspect communication est un élément clé de ce type d’installation. J’ai cherché à résoudre ce problème dans l’esprit du DIY et vous restitue dans ce billet la solution que j’ai commencée à mettre en oeuvre.

Réseau RS485

Je n’ai pas retenu les solutions à base de bus "industriels" (KNX par exemple) ou de composants "sans fils" du marché (ZigBee, Wifi, …). En effet, ce type de solution requiert un composant de communication assez couteux. Ce surcoût dépend beaucoup de la technologie. Cela peut aller de 10/15€ à plusieurs dizaines d’euros. Pour du Wifi par exemple, on peut trouver des éléments à base de CC3000 chez SparkFun ou Adafruit pour une trentaine d’euros. Si vous avez juste besoin d’activer un relais ou de récupérer une température, le cout de l'élément de communication devient prépondérant !

Mon choix s’est porté sur une solution à base de RS485. En effet, il s’agit d’un bus série avec les caractéristiques suivantes :

  • 32 "devices" possibles sur le même bus

  • Jusqu'à 100kbits/s sur une longueur d’environ 1000 m

  • Half-duplex (du full-duplex pourrait se faire en RS422)

Sa mise en oeuvre est plutôt aisée :

  • utilisation de cables simples (paires torsadées de cable téléphonique par ex.)

  • "transceiver" bon marché

  • liaisons série UART répandues (Raspbery Pi, Arduino, …)

J’ai choisi les composants MAX485 qui sont très courant :

IC MAX485
Configuration des pins du MAX485

Objets connectés avec Arduino

Arduino Mini Pro

Pour connecter les capteurs, j’ai choisi d’utiliser des arduinos dans la version "mini" pour son coût modique et sa très grosse communauté (et les librairies qui vont avec) !
Les arduinos permettent d’utiliser à peu près n’importe quel capteur en offrant :

  • une dizaine de GPIO (entrée/sorties digitales)

  • des entrées (6) et sorties analogiques (6 PWM)

  • de l’I2C / SPI / UART (utilisée pour la communication sur le bus RS485).

Le choix Arduino ouvre donc pas mal de possibilités.
Le bus RS485 n’apporte cependant que la partie physique du réseau sans aucun protocole de communication. Ce protocole doit donc être implémenté sur les cartes arduino.

Réseau "low cost"

Comme pour beaucoup de projet en DIY, le coût est très faible. Pour la liaison RS485, on peut trouver des MAX485 pour à peine plus d’1 € les 5 sur ebay.

Pour les arduinos, on peut trouver des "mini pro" à moins de 2 €.

Au final, la "stack" pour connecter un objet coute de l’ordre de 2 euros !

La mise en oeuvre d’un POC sera abordée dans mon prochain billet. En voici un aperçu pour vous donner l’eau à la bouche ;-)

IC MAX485