Communication + Alimentation avec 3 fils seulement ?

Salut à tous !

Je travaille actuellement sur un projet de domotique à destination des fourgons aménagés.

Mon objectif c’est de pouvoir proposer un système très modulaire avec un maître (qui gère une connexion Bluetooth + un affichage LCD) et tout un tas de modules esclaves (niveaux d’eau, températures, détecteur de présence, niveau de charge des batteries …)

Je souhaite faire un système plug & play : On branche un nouveau module et il directement intégré au reste du système, la seule configuration possible (optionnel) sera de donnée un nom au module (ex : Réservoir arrière plutôt qu’un nom automatique Réservoir #1)

tout le système reposera sur des connexion filaire, parce que les distances ne sont pas très importante (< 4/5mètres maximum)

J’aimerais également n’avoir qu’un seul câble pour la communication et l’alimentation (pour simplifier l’installation) et que la configuration du réseau supporte une architecture de type bus.

L’idéal pour moi serait de pouvoir utiliser des câbles Jack, parce que c’est souple, peu encombrant, pas chère et qu’on trouve aussi des “splitter” qui permettent de brancher 2 câbles sur un seul et qui serait PARFAIT pour relier plusieurs modules de capteur proche ensemble avant de relier un seul câble au maître. En plus les câbles sont relativement faciles à fabriquer (quelques soudures) pour en faire sur mesure.

MAIS, les câbles / prises Jack les plus courants n’ont que 2 ou 3 pôles, il en existe avec 4 pôles, mais l’offre est rare et plutôt chère (et je ne trouve pas vraiment ce que je veux pour les prises femelles à mettre directement sur le PCB).

Du coup, je me suis dit, pourquoi ne pas utiliser un protocole qui n’utilise qu’un fil, pour se retrouver avec trois fils au total : 1 de donnée + 2 d’alimentation ?

Ma première idée était d’utiliser le protocole OneWire qui me semblait plutôt simple en apparence, mais j’ai découvert que le protocole de Dallas est propriétaire et qu’ils n’autorisent pas à créer des périphériques esclaves et en plus il n’existe pas beaucoup de docs / code là dessus, donc même si c’est techniquement faisable, ça me semble assez long et ça reste pas vraiment légale.

J’ai également songé à utiliser du RJ45 pour la communication + alimentation ce qui avait en plus l’avantage de pouvoir utilisé des câbles plus ou moins blindés afin de limiter les problèmes d’interférence. Le problème, c’est que c’est quand même vachement gros le RJ45 aussi bien au niveau du câble (en comparaison avec du jack) qu’au niveau des prises et à faire passer dans une gaine ce n’est pas vraiment envisageable (il faut faire passer le câble puis mettre la prise, ce qui nécessite une pince spécifique et de pas se planter dans l’ordre des fils). Bref, le RJ45 j’ai mis de côté.

Donc je suis à la recherche d’un protocole de communication qui supporte l’architecture BUS et qui utiliserait qu’un seul fil (pour avoir 3 fils en tout avec l’alimentation) ou bien d’une idée de câbles pratiques, fins et pas chers avec 4 voies ou plus.

Merci d’avance pour vos idées / suggestions.

Virtual::Spirit

Il existe des capteurs de température/humidité qui fonctionnent en liaison bidirectionnelle sur 1 fil (+masse évidement): DHT22 (ou DHT11 ou DTH21).
Peut-être pourrait-tu t’inspirer du principe pour créer ton propre protocole.
La datasheet en pj.

AM2302.pdf (570 KB)

Merci, c'est une super idée !

Je ne sais pas si je suis prêt pour créer mon propre protocole et en faire quelques chose de fonctionnel et stable, mais je pense quand je vais quand même tenté si je ne trouves pas d'autre solution.

virtual_spirit: Du coup, je me suis dit, pourquoi ne pas utiliser un protocole qui n'utilise qu'un fil, pour se retrouver avec trois fils au total : 1 de donnée + 2 d’alimentation ?

Je dirais plutot : - un fil de référence (ground) - un fil de synchro (clock) - un fil de données.

Le + n'a pas besoin d'être relié à condition que chaque extrémité dispose d'une alimentation autonome.

Le fil "horloge" n'est pas obligatoire , tout dépend du choix de faire de la transmission synchrone ou asynchrone.