Où sommes nous ?

Retour

Commande d'actionneurs par 1-wire

Lorsque j'ai fait des travaux pour tirer mon bus 1-wire à travers la maison, je me suis rendu compte qu'il faisait très chaud dans les combles dès que le soleil apparaissait ... J'y ai donc mis une sonde de température (ben oui, à un peu plus d'1€ l'unité, pourquoi se priver) et le résultat est plus que probant : journée ensoleillée de décembre, 19°C dehors (aïe aïe aïe pas bon pour ma saison de ski ), 25°C dans les combles !
L'idée m'est donc venue de réinjecter l'air chaud des combles dans le grenier où passe le conduit issu de la cheminée pour chauffer les chambres ... dans le but d'éviter de perdre trop de calories dans ce dernier, le tout évidemment commandé par mon BananaPI à travers le bus 1-wire.

DS2406

Le DS2406 permet d'adresser 1 ou 2 GPIOs depuis un bus 1-wire. Il se présente soit sous la forme

Dans mon exemple, le TO-92 suffira et il sera utilisé en mode "interrupteur open-drain", c'est-à-dire que son GPIO pourra être relié à la masse à la demande sinon, il restera en l'air.

Le brochage est le suivant :

  1. masse
  2. data 1-w
  3. PIO.A (jusqu'à 50mA et 13V)

et uniquement pour la version TSOC

  1. Vcc
  2. Non connecté
  3. PIO.B (jusqu'à 8mA et 6.5V)

Dans la famille des GIOs 1-wire, on trouvera aussi les

Mon interface

Le ventilo M1 provient d'une alimentation défunte de PC, fonctionne en 12v et consomme 400 mA.

Il sera contrôlé par un transistor NPN D667C : pas commun (en tout cas, très peu de références le concernant sur le web), mais il permet de commander de plus grandes puissances que ses homologues et surtout ... c'était lui qui commandait le ventilo dans l'alimentation d'origine.

La diode D1, mise tête-bêche, protège le transistor des courants induits générés par le moteur.

Sa base est polarisée depuis le 12v par la résistance R2 (1,5kΩ) et une LED qui sert de retour lumineux.

L'opto-coupleur 4N35 permet une séparation galvanique entre le 12v et notre bus 1-wire. Sur la toile, on trouvera d'autres schémas où le DS2406 attaque directement l'étage de puissance, mais cette séparation est plus sécurisante ... et comme j'avais cet opto sous la main, récupéré d'un écran HS ...


Côté 1-wire, c'est simplissime : la LED de l'opto-coupleur est alimentée par le 5v de mon bus, à travers une résistance de limitation de 330 ohms. Le circuit est fermé lorsque le GPIO du DS2406 est mis à la masse.

Note

Il est possible de remplacer le ventilo par un relais 12v ce qui permettra de commander des appareils 220v ... avec toutes les précautions que cela implique !

Côté logiciel (avec owfs)

Les composants de la même famille que le 2406 apparaissent sur le réseau sous le numéro 12 (on peut d'ailleurs se demander pourquoi le numéro de famille du composant ne correspond pas au numéro d'exposition sur le réseau, mais bon ...).

laurent@bPI ~ $ cd /var/lib/owfs/mnt/
laurent@bPI /var/lib/owfs/mnt $ ls
12.DF0ED0000000  28.FF3ED8001502  28.FF5EEF001502  28.FF8B0D011502  28.FFD1D6001502  settings    structure  uncached
28.FF0F0D011502  28.FF4B30021503  28.FF7BF0001502  28.FFC5D8001502  bus.0            statistics  system
laurent@bPI /var/lib/owfs/mnt $ cd 12.DF0ED0000000/
laurent@bPI /var/lib/owfs/mnt/12.DF0ED0000000 $ ls
address   family        flipflop.BYTE  latch.B     pages    PIO.BYTE   r_id        sensed.B     TAI8570
alias     flipflop.A    id             latch.BYTE  PIO.A    power      r_locator   sensed.BYTE  type
channels  flipflop.ALL  latch.A        locator     PIO.ALL  present    sensed.A    set_alarm
crc8      flipflop.B    latch.ALL      memory      PIO.B    r_address  sensed.ALL  T8A

Pour plus d'informations sur les autres modes de ce circuit sur cette page.

Pour notre application "ventilo", seuls les pseudo-fichiers suivants nous intéressent  :


Les 2 suivants ne sont vraiment utiles que pour la version TSOC et permettent de contrôler simultanément les 2 GPIOs.

Les premiers essais

On met en marche le ventilo en mettant une valeur non-nulle dans PIO.A

laurent@bPI /var/lib/owfs/mnt/12.DF0ED0000000 $ echo 1 > PIO.A

et on l'éteint, surprise surprise, en y mettant une valeur nulle

laurent@bPI /var/lib/owfs/mnt/12.DF0ED0000000 $ echo 0 > PIO.A

Ce qui donne

Remarques importantes

Ce type de ventilateur et le transistor qui le contrôlent sont conçus pour ... tourner à vide. Si l'arrivée d'air est obstruée, par exemple par un filtre (ce qui est mon cas), le ventilo devra forcer : il faudra donc que vous vérifiez que le D667C et l'alimentation ne chauffent pas trop.

Pour limiter le bruit, les alimentations font varier la vitesse du ventilo en fonction de la température :

Mais surtout, n'oubliez-pas

VOUS et VOUS seul tenez le fer à souder donc l'UTILISATION DE CE MONTAGE SE FAIT SOUS VOTRE ENTIERE RESPONSABILITE.


Visitez :
La liste de nos voyages
Nos sorties Ski et rando
Copyright Laurent Faillie 2001-2024
N'oubliez pas d'entrer le mot de passe pour voir aussi les photos perso.
Contactez moi si vous souhaitez réutiliser ces photos et pour les obtenir avec une plus grande résolution.
Visites durant les 7 derniers jours Nombre de visites au total.

Vous pouvez laissez un commentaire sur cette page.