Bus One Wire

Cette page explique les bases du bus 1-wire et donne un exemple d'installation (sous Calaos V3 sur Raspberry PI3)

Principe du bus 1-wire

Le bus 1-wire peut être câblé en série ou en étoile.

Il fonctionne sous une tension de 5V.

Les composants principaux utilisés sont :

  • L’interface USB – 1-wire DS9490R
  • Les sondes de températures DS18B20

Ce type de bus est principalement utilisé pour les mesures de température mais beaucoup d'autres composants compatibles existent.

Sondes de température DS18B20

Types de sondes

Une sonde 1-wire possède 3 fils ou 3 pattes, suivant qu’il s’agit d’un modèle câblé ou sous forme d’un composant électronique.

Modèle câblé

La sonde est protégée dans une enveloppe inox étanche. Elle possède 3 fils.

  • Fil Rouge : Power (5v). Indiqué VDD, VCC, V+ suivant les documentations.
  • Fil Jaune : 1-wire data (données).
  • Fil Noir : GND, 1-wire Ground (0v).

Modèle « nu »

Câblage des sondes

Il y a 2 façons de câbler les sondes:

  1. Mode parasite
    On câble avec 2 fils.
    V+ (5v) et GND (0v) sont reliés ensembles.
  2. Mode alimenté
    3 fils sont utilisés.

Identification des sondes

Les sondes ont chacune un identifiant unique du style F603079779927828. Il peut être indiqué sur la sonde, sinon on peut le retrouver grâce :

  • Au logiciel OneWireViewer (Windows):
    Il suffit de l’installer, de connecter l’adaptateur DS9490R dans un port USB du PC et d’y brancher la sonde à tester.
  • Directement sur le serveur CALAOS: Voir plus loin

Connexion des sondes 1-wire au Raspberry

Le bus peut être connecté de 2 façons au Raspberry:

  1. Via les pins GPIO du Raspberry Pi

    Pour accéder au sondes il faudra utiliser les drivers kernel w1-therm et w1-gpio. Ceux-ci sont utilisé uniquement sur RaspberryPi quand on connecte directement à un GPIO.

  2. Via adaptateur USB-1-wire DS9490R

    Le driver utilisé sera un driver OWFS.
    Pour le câblage, voici une vue de face du connecteur femelle de l’adaptateur DS9490R

Exemple d’installation simple

On câble tout en utilisant du câble Ethernet et des fiches RJ45.

On utilise l’adaptateur USB.

Câblage Bus

Même si on n’a besoin que de 3 fils, on utilise du câble Ethernet (8 fils) car pas cher et trouvable facilement. Les sondes seront câblées en étoile. Elles sont reliées par :

Sondes

On connecte une fiche RJ45 mâle sur les 3 fils des sondes. Cela permet des tests faciles et plus tard un remplacement rapide si besoin.

Cable RJ11 vers RJ45 (Connexion du bus à l’adaptateur)

Le but est de faire un câble d’interface entre le module DS9490R qui a un connecteur RJ11 et les sondes qu’on va câbler en RJ45.

Le câble utilisé est un câble style câble téléphone 6 fils avec connecteurs RJ12 sur lequel on remplace un connecteur RJ12 par un connecteur RJ45.

Ajout des sondes dans CALAOS

Une fois que toutes nos sondes sont câblées, il faut les ajouter dans CALAOS.

On va d’abord vérifier que les sondes sont bien détectées sur le bus. Ensuite il faudra les déclarer dans CALAOS Installer.

Détection des sondes

  • S’assurer que l’adaptateur est bien connecté au Raspberry avec au moins une sonde connectée.
  • Se connecter au Raspberry avec Putty
  • Couper le server Calaos: quand le serveur tourne, l'outil 1wire ne fonctionne pas, les 2 ne peuvent pas accéder au driver en même temps.
    La commande pour stopper le serveur est :
    systemctl stop calaos-server
  • L’outil calaos_1wire intégré à Calaos, permet de scanner le bus pour détecter les sondes. Il faut utiliser la commande suivante:

calaos_1wire –scan -u

–scan : scanne le bus

-u : parce qu’on utilise l’adaptateur usb

Résultat :

Les numéros commençant par 28. Sont les sondes, les températures correspondantes sont indiquées à droite.

Pour chaque sonde, il faut noter ce numéro, c’est lui qui sera déclaré dans Calaos Installer.

Le dernier résultat commençant par 81. est l’adaptateur.

Rem1 : Pour savoir quelle sonde se trouve où, nous les avons branchées une par une en relançant le scan à chaque fois.

Rem2 : Le format des numéros de sonde n’est pas le même dans OneWireViewer et dans Calaos. C’est bien ce format Calaos qu’il faut indiquer dans Calaos Installer.

  • Le serveur peut être redémarré avec :
    systemctl start calaos-server

Ajout dans CALAOS Installer (ici version: v3.2)

Dans la pièce où se trouve la sonde, aller dans le menu Ajouter>OneWire>Sonde de Température.

Une sonde est rajoutée dans la pièce. Voici les paramètres à rentrer:

Paramètres principaux

  • ow_id : le numéro d’identification de la sonde relevé précédemment.
  • ow_args : -u si on utilise l’adaptateur usb.
  • name : le nom qui va apparaitre dans Calaos.

Paramètres Optionnels

  • Offset : permet d’ajouter ou de retirer des degrés par rapport à la température envoyée par la sonde
  • Coef_a : doit être à 1 par défaut. Chez moi il était à 0, attention donc.

Il n'y a plus qu'à envoyer le projet au serveur Calaos et la température devrait apparaître dans calaos_home.