Archives par mot-clé : USB

Framboise en boîte 4/N

Le futur

Dans cet article, nous aborderons les technologies futuristiques (à ne pas confondre avec futuristes) des drivers FTDI qui permettent à notre sympathique framboise de communiquer avec ses relais (là, le s s’avère nécessaire réforme ou pas1 ).

Retour sur l’Arros-o-tron

La dernière fois, nous avons testé l’ensemble de contrôle des relais avec de la vraie eau, tout à fait vraiment vraie (et humide). Malencontreusement, quelques digressions annexes nous ont fait perdre le focus (qui a la fâcheuse propriété d’être évanescent) et la conclusion s’en est allée. Cette conclusion, je vous la donne donc directement en introduction du l’article N+1 (N est ici tout à fait déterminé, il s’agit du nombre 3.  À ne pas confondre avec N, le nombre total d’articles sur le sujet qui nous occupe, qui lui n’est pas encore déterminé. Ou peut-être que si, dans l’hypothèse où vous liriez cet article dans le futur par rapport à maintenant. Peut-être  n’avons-nous pas le même maintenant. Nous verrons d’ailleurs plus loin comment FTDI  a répondu à cet opaque problème. Mais enfin, je m’égare).

Donc oui, ça marche. On contrôle très bien l’électrovanne à partir de l’alimentation 12V et du relai. L’eau jaillit et se tarit à souhait à partir de simples commandes (connexion ssh sur le Rapsbperry Pi et quelques commandes UNIX).

Ce ne sera pas la configuration finale, mais pour ce premier test arrosatoire, j’ai utilisé une électrovanne 24 VAC. Je l’ai commandée à partir de mon alimentation 12 VDC (voir article premier). Pas très orthodoxe, mais je suis parti de l’hypothèse que les tensions nominales sur n’avait pas à être franchement respectées. Selon notre ami Maxwell (rien à voir avec le café), s’il y a du courant dans la bobine, on pourra faire bouger un truc en utilisant la force du champ magnétique induit par le passage des électrons enivrés par les enroulements de notre conducteur. Jamais dans ses équations est dit qu’on doive respecter les tensions nominales de notre fournisseur de solénoïdes. Je fais sans doute quelques raccourcis, mais toujours est-il que ça marche (d’ailleurs pour ce test, j’ai bien appliqué 12 volts en courant continu alors que nominalement on requérait du courant alternatif, na!)

Contrôleur du travail

Les électrovannes en tant que telles pourront d’ailleurs être l’objet d’un article ultérieur tant il y a à dire sur cet objet contrôlant le travail. En effet, en autorisant ou interdisant le déplacement de masses d’eau, la vanne contrôle le travail (on se souviendra qu’il y a vaguement un lien entre la force (qui peut elle-même être liée à la masse) et le déplacement). Les joyeux jaillissements de l’eau à travers mon tuyau sont donc du travail. Et comme toute peine mérite salaire, Veolia ne manque pas de se faire rétribuer à chacune de mes saillies.

 Le contrôle de la carte à relais

Nous avons déjà dit que la carte USB-X440 était munie d’un connecteur USB (et de cinq trous de quatre millimètres, mais ce dernier constat n’intervient que très peu, ou pas du tout, sur le sujet précis qui nous occupe dans cette section). En fait, la carte USB-X440 communique en série. Oui, oui, ce bon vieux port série, le RS-232, les stop bit et start bit, la parité, le baud, et tout et tout. A priori, rien de très sexy. C’est là que la technologie du future entre en jeu.

FTDI produit des chips qui permettent d’émuler une communication de type RS-232 à travers un support USB.

Petit mot sur le futur

On se souviendra que dans les années 1990, et même avant, plusieurs entreprises ajoutaient le suffixe 2000 à leur raison sociale ou à leurs produits. Du système d’exploitation au plombier du coin, tous étaient résolument tournés vers l’avenir et la modernité. Tout le monde voulait son 2000. C’était dans l’air du temps, et si l’on a moins de 20 ans, on ne s’en souvient guère. Cette bohème ne pouvait pas durer éternellement parce qu’elle avait un défaut intrinsèque: le temps passe, les années changent, et le futur d’hier devient le passé d’aujourd’hui. Si Windows 2000 n’est plus qu’un (plus ou moins bon) souvenir, tous les chauffagistes 2000, les menuisiers 2000 et autres assureurs 2000 qui ont survécus sont passés de visionnaires à passéistes, tournés à jamais vers une époque de plus en plus lointaine.

FTDI a trouvé la solution. Bien qu’issue des années 1990, cette entreprise est à jamais tournée vers l’avenir, puisque son point de fuite n’est pas une année déterminée, mais bien le futur en personne. Ce futur qui dès maintenant et pour toujours sera invariablement devant. FTDI est en effet l’acronyme de Future Technology Devices International ce qui se traduit (assez librement) par: « Bidules internationaux basés sur la technologie du futur ». Le problème de la relativité temporelle est donc résolu. Peu importe le point de vu, FTDI sera toujours devant.

Le port série automagique

Quoi qu’on en dise, les circuits FTDI on plusieurs atouts :

  1. Ils permettent une communication simple à travers une connectique standard (USB était encore répandu au moment d’écrire ces lignes, bien que cela paraisse incongru au lecteur d’un certain futur)
  2. Les spécifications sont ouvertes et il est donc aisé d’écrire les pilotes idoines
  3. Ils sont supportés nativement par tous les bons noyaux près de chez vous

Ce troisième point est particulièrement intéressant. C’est la pierre d’achoppement du l’automagicité. En effet, il suffit de relier la carte munie du chip FTDI  à son ordinateur (en l’occurrence, un Raspberry Pi faisant tourner une distribution Raspbian) pour n’avoir rien à faire… En fait le pilote papote avec le chip. Chacun fait sa tambouille de son côté. On finit par s’entendre sur un truc du genre 9600 8N1. Et hop, on se retrouve avec un device dans /dev/ttyUSB0

pi@nsa ~ $ ls /dev/ttyUSB0
/dev/ttyUSB0
pi@nsa ~ $

On a donc une émulation de port série, installée en quelques millisecondes, sans aucune configuration. C’est à ce demander à quoi sert de faire un blog pour en parler tellement l’opération est sans douleur.

Du coup, de façon tout à fait classique, pour envoyer une commande à la carte, on écrit dans /dev/ttyUSB0 et, symétriquement, on lit dans /dev/ttyUSB0 pour recevoir des messages (le zéro (0) pouvant bien entendu être incrémenté si plus d’un port USB émulé est présent).

D’après la documentation, la relais se commandent ainsi:

Sxb

S veut dire relai (switch?)

x, le numéro du relai

b, une valeur booléenne (0 ou 1) pour changer l’état du relai.

Il suffit donc d’écrire dans sa commande dans le tty pour pour commander une action, en utilisant echo par exemple.

Cela donne donc, comme on l’a vu précédemment:

Relai #1 au repos:

pi@nsa ~ $ echo S10 > /dev/ttyUSB0

Relai #1 actif:

pi@nsa ~ $ echo S11 > /dev/ttyUSB0

Pour écouter ce que nous dit la carte, on utilisera cat :

pi@nsa ~ $ cat /dev/ttyUSB0

La suite

On se rendra donc bien entendu à N 5 puisque nous n’avons pas encore abordé l’installation du circuit hydraulique, le creusage dans le jardin ni la plantation de tomates.

<– Précédent   Suivant –>

Framboise en boîte (1/N)

Retour sur le projet d’arrosage automatique

N’ayant pas réussi à communiquer avec ma station météo via différents modules RF et ayant le Raspberry Pi qui prend la poussière, j’ai modifié le plan de match.

L’objectif ultime étant de contrôler l’arrosage du jardin, j’ai laissé en plan la partie collecte de données pour rentrer dans le vif du sujet: le contrôle d’électrovanne pour l’arrosage. Après tout, je trouverai bien une API RESTful pour accéder à la météo locale et déterminer le moment d’arrosage idoine.

Mise en place d’un circuit sommaire de distribution d’eau

Avant de lancer un gros chantier, j’ai d’abord installé un petit circuit basé sur du tuyau 16mm pour micro-arrosage, en vente chez le Bricomerlin près de chez vous. On peut y accrocher de petits goutteurs stratégiquement placés pour arroser le pied des plantes. J’épargne ici les détails: la plomberie de jardin est un monde en soi, avec différentes technologies et sa propre terminologie. Dans tous les cas, pour l’automatiser ça prend: une source d’eau, des électrovannes, et un module de contrôle. Notons au passage qu’on trouve dans le commerce des vannes à minuteries et d’autre programmables. Certes moins souples, ces solutions sont sans doute plus économiques en investissement (temps et argent).

Une solution se dessine

En fouillant un peu sur la toile des solutions d’arrosage, je suis tombé sur des articles vantant les mérites de ce module de CGE Electronics (fabriqué en France, à Nantes). Effectivement, les services rendus sont intéressants (connexion TCP/IP, serveur Web intégré, 8 relais, des convertisseurs A/D, des timers, etc.).  Il y a même un boîtier compatible avec les rails DIN (pour l’intégration dans un tableau électrique).

J’avais cependant quelques réserves: la connexion Ethernet se fait via une prise RJ-45 (pas de WI-FI ce qui n’est pas l’idéal pour l’installation dans un cabanon de jardin), le prix est relativement élevé et le contrôle sur les relais et plutôt sommaire (site web, quelques timers et c’est tout). Je crois que ça peut être une solution intéressant dans plusieurs cas, mais ça m’a amené à la constatation suivante: mon Raspberry Pi est équipé en WI-FI en j’en ai le contrôle total. En plus, il est déjà à la maison. Il ne lui manque qu’un accès facile à des relais (et éventuellement des entrées avec convertisseurs A/D pour plus tard).

Carte avec 4 relais contrôlée par portUSB
Carte avec 4 relais contrôlée par portUSB

J’ai trouvé la solution sur le même site: des petites cartes avec des relais et entrées A/D, le tout communiquant via un port série à travers un port USB (merci FTDI). J’ai opté pour la carte USB -X440 / 4 entrées AD – 4 sorties relais.

La framboise en boîte

Ainsi la solution devenait maintenant évidente: une carte avec des relais, le Raspberry Pi, un peu de câblage, des électrovannes et puis c’est parti.

Boîtier électrique avec alimentation avec disjoncteur différentiel, alimentation 12V et 5V.
Boîtier électrique avec alimentation avec disjoncteur différentiel, alimentation 12V et 5V.

J’ai d’abord récupéré un petit boîtier électrique vide et commandé différentes alimentations sur rail DIN. On trouve facilement du 5V, 12V et 24V.

Boîtier électrique avec un disjoncteur différentiel et deux alimentation en courant continu
Boîtier électrique avec un disjoncteur différentiel et deux alimentation en courant continu

Les électrovannes sont généralement alimentées en 24V, quoique certaines fonctionnent avec une tension nominale de seulement 9V.  Le 5V est nécessaire pour alimenter la carte Raspberry Pi via la prise USB. La carte USB-X440 est quant à elle alimentée par la prise USB du Raspberry Pi. Cela ne nécessite donc pas une alimentation spécifique, mais il faut veiller à ce que l’alimentation du Raspberry Pi puisse fournir les 300 milliampères de la carte USB-X440 en plus des ~700 ma nécessaires à la révision B de la Framboise (contre ~400 ma pour la révision A).

J’ai sacrifié un câble USB pour alimenter la framboise à partir de module 5V sur le rail DIN (après vérification sur multimètre, le code couleur est tout ce qu’il a de plus classique: noir => 0V et rouge =>+5V). Bonne nouvelle, ça correspond à la norme (j’en déduis que mon fabriquant de câble connait la norme et qu’il n’est pas daltonien). Les deux autres conducteurs (data+ et data-, respectivement vert et blanc) n’ont pas d’utilité dans le montage actuel.

Câble USB sacrifié sur l'hôtel de l'irrigation
Câble USB sacrifié sur l’hôtel de l’irrigation
Câble USB servant à mettre sous tension le Raspberry Pi, connecté sur l'alimentation 5V rail DIN.
Câble USB servant à mettre sous tension le Raspberry Pi, connecté sur l’alimentation 5V rail DIN.

Il ne reste plus qu’à mettre tout ça ensemble dans la boîte. Il faudra donc remplacer le boîtier du Rapsberry Pi par quelque chose qui peut se mettre sur un rail DIN.

Raspberry Pi alimenté dans un tableau électrique
Raspberry Pi alimenté dans un tableau électrique

Il faudra aussi trouver une solution pour la carte avec les relais comme les photos suivantes le démontent…

Carte USB-X440 pendouillant au bout du tableau électirque
Carte USB-X440 pendouillant au bout du tableau électirque

Tableau électrique alimentant le Raspberry Pi et contrôllant une carte de relais via le port USB.
Tableau électrique contenant les éléments de contrôle

 

Donc mis à part la pérennité de l’installation, on a maintenant un boîtier fonctionnel, alimenté en 5V et 12V, comprenant une unité centrale via la carte Raspberry Pi et des relais via la carte USB-X440.

Pour la suite il nous faudra:

  • Pérenniser l’installation des différentes cartes dans le boîtier électrique
  • Contrôler les relais via le port série du Raspberry Pi
  • Brancher des électrovannes et un circuit hydraulique
  • Planter des tomates

à bientôt pour la suite…

|– Suivant  –>