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 3/N

Reality-check: la confirmation de tous nos espoirs

Pour résumer les épisodes précédents, on a :

  • Un objectif, celui de contrôler l’arrosage du jardin via une carte Raspberry Pi
  • Une installation au fond de ma cabane en Île-de-France avec un boîtier électrique hébergeant un Raspberry Pi et une carte avec 4 relais (et cinq trous de quatre millimètres), le tout connecté au reste du monde via l’isthme d’un µ-dongle WI-FI.

Après avoir eu la confirmation que l’installation pouvait contrôler une lumière alimentée sur 230 VAC, on voudra maintenant voir ce qu’on peut faire avec une électrovanne et de la vraie eau. Cet élément étant généralement plutôt humide, sa maîtrise via un circuit électrique asservi à une commande bash semble, sinon improbable, à tout le moins incongrue.

(intermède dédouanement lexico-sémantique)

On se souviendra qu’avant Mendeleïev, le tableau périodique des éléments n’en contenait que 4 ou 5, soit :

Symbole de l'eau Symbole de feu Symbole de la terre Symbole de l'air Bonus
Eau Feu Terre Air Quintessence (éther)

donc l’eau peut belle et bien être qualifiée d’élément humide, tout n’est qu’une question d’époque. On signalera au passage qu’il fut un temps où les cours de chimie étaient plus simples qu’aujourd’hui.

Validation aqueuse

Validons donc ce qui reste à valider: la mise en mouvement de moles de molécules d’eau grâce à l’installation Raspberry Pi + carte relais

(dédouanement second, c’est le temps)

Relais ou relai ? C’est compliqué et simple. Pour toutes sortes de raisons, l’Académie fait du lobbying pour la forme relai au singulier (comme balai) depuis un bon moment (réforme orthographique de 1990). La même année, Pixies sortait Bossanova et Jane’s Addiction disait Stop! (chacun son truc). C’est dire si ça fait longtemps qu’on peut écrire relai sans s. Comme c’est encore difficile à avaler pour nombre de nos contemporains, on a le droit d’écrire les deux formes. On fait ce qu’on veut. C’est la fête du slip, comme aurait dit Confucius.  Cependant, ce qui un peu plus moins permis, c’est de faire comme l’auteur de ces lignes, à savoir de papillonner d’une forme à l’autre…

Suite

Au rythme où ça va, affirmons tout de suite que N 4…

<– Précédent —  Suivant  –>

Framboise en boîte 2/N

Préambule

Il est commun de noter ℕ l’ensemble des entiers naturels et, par convention, N un élément indéterminé dudit ensemble. Indéterminé prend ici tout son sens puisque cet article,  Framboise en boîte 2/N est le titre d’un second post concernant la mise en boîte d’un Raspberry Pi à des fins d’arrosage automatique d’un jardin francilien dans un ensemble de posts à cardinalité inconnue a priori. Pour l’instant, notons seulement que N 2.

Retour vers le passé

Dans le précédent article, nous avons pu voir qu’il était relativement aisé de rassembler quelques organes basiques afin d’alimenter la carte Raspberry Pi et de mettre la main sur une carte munie de relais contrôlée (la carte, pas les relais quoique contrôlés puisse aussi se justifier) par USB. In fine, seules deux conditions doivent être réunies, à savoir :

  • posséder une adresse postale
  • avoir accès à une carte bleue

Regardons ensemble dans la même direction

Une fois passé le temps de ces mondanités, vient le temps de l’assemblage des différents organes afin de créer un tout qui sera supérieur à la somme de ses parties.

Installation du Raspberry Pi dans le tableau électrique

Comme on est parti sur un boîtier électrique, la Framboise doit trouver un boîtier pour rail DIN pour y faire son nid. Bonne nouvelle, ça existe comme le lien susmentionné le démontre ainsi que les photos ci-dessous.

Boîtier rail DIN pour le Raspberry Pi
Boîtier rail DIN pour le Raspberry Pi

La Framboise dans sa boîte
La Framboise dans sa boîte

Raspberry Pi installé dans le tableu électrique
Raspberry Pi installé dans le tableu électrique

Tableau électrique dans la shed
Tableau électrique dans la shed

Fixation de la carte USB-X440

Par contre, la carte USB-X440 vient toute nue sans possibilité de boîtier. Pas seulement sans boîtier compatible rail DIN; sans possibilité de boîtier tout court. Ni en métal, ni en bois, ni en fantastique plastique ou ni même en cristal de Bohème. Non. Rien. Un échange électro-épistolaire (par ailleurs fort courtois) avec le personnel de GCE Electronics m’a vite fait comprendre que l’objet de mon désir n’existait pas, n’existerais jamais, et que personne n’avait ni l’envie, l’intérêt et/ou les compétences pour m’aiguiller vers une solution alternative. Seule consolation, ce document PDF fort utile à bien des égards mais qui d’un point de vue mécanique ne nous renseigne que d’une chose: la carte a cinq (5) trous de fixations d’un diamètre de 4 millimètres. Cinq trous. La quintessence enfin accessible au commun d’entre nous.  Cinq trous soit ! Mais où sont-ce ces trous ?  Dois-je chercher un pentagone se mariant sur rail DIN?  Comment sont distribués ces cinq trous sur cette carte rectangulaire? On voit poindre le besoin de grand bidouillage…

On trouve, chez des sites Internet près de chez vous, des attaches en plastique. Ce qui permet, grâce à un morceau de plexiglas qui passait par là de réaliser le montage décrit ci-dessous (six images valent-elles six mille mots?)

Tadam !

On arrive à la fin de l’installation électro-mécanique du système. On a maintenant une installation pérenne, un ordinateur connecté en WI-FI, quatre relais (et cinq trous).

Pour vérifier l’installation, on pourra détourner les conducteurs de l’éclairage extérieur vers un des relais de la carte USB-X440.

Pas très pratique comme interrupteur, mais on a une preuve de concept… Les détails sur le contrôle via le driver FTDI et le port USB seront expliqués plus tard.

pi@nsa ~ $ echo S40 > /dev/ttyUSB0 # Lumière ON
pi@nsa ~ $ echo S41 > /dev/ttyUSB0 # Lumière OFF

 Et maintenant?

Les prochaines étapes seront de contrôler les relais de la carte, installer des électrovannes connectées à madame USB-X440, creuser le jardin pour y faire passer le circuit hydraulique et bien sûr, planter des tomates…

je crois donc maintenant pouvoir dire que N 3.

<– 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  –>