Pour essayer de rendre la chose un peu plus compréhensible... mais non, SVP pas

trop fort si ce n'est pas clair.
Vocabulaire Dimmer, dimming, dimmage, par le driver : n'est rien d'autre que la "gradation" (genre variateur) de la lumière produite par les LED et réduisant l'intensité du courant dans les LED par une consigne envoyée au driver "dimmable" (alimentation en courant constant) et lui demandant de fournir x% de son nominal
PWM : Pulse Width Modulation : une manière de communiquer au driver la consigne (quel %age du nominal fournir en sortie). La manière PWM d'y parvenir est simple. En gros, on découpe chaque secondes, par exemple, en 1000 mini tranches d'un millième de seconde. Si 1 tranche sur 5 est à une tension de xV et (et 0V pendant les autres, soit en 1 seconde 200 tranches à x V et 800 tranches à 0V) cela veut dire une consigne de 20% (pour 75% ce serait 3 tranches sur 4 à x V)
relai : ni plus ni moins qu'un interrupteur télécommandé
Les drivers que j'utilise demandent que la consigne soit passée par un signal PWM à 10 V.
Les cartes Arduino savent générer des signaux PWM à 5V. Les cartes Raspberry des signaux PWM à 3.3V. Dans les deux cas il faut un petit montage pour élever le signal produit par le contrôleur au niveau attendu par le driver. Avec le montage réalisé par dwarfy, il est apparu qu'il faut dans ce montage une résistance d'un certain niveau (qui reste à déterminer précisément) pour pouvoir envoyer au driver des consignes qui aillent bien de 0 à 100%. Je ne saurai en dire plus.
__
Dans le cas du raspberry, les valeurs de consignes PWM sont codées sur 10 bits, ce qui permet 1024 valeurs (2
10) de 0 à 1023. Pour la commande qui fait passer la consigne d'une sortie PWM à, par exemple, 25% de la puissance, il faut
i) lui indiquer quelle sortie doit être modifiée, par exemple la sortie 1
ii) lui donner la valeur de consigne, par exemple 256 (qui est bien 25% de 1024)
ce qui conduit aux commandes (si ma mémoire ne me trahit pas)
- Code:
gpio mode 1 pwm -- indique que la sortie 1 devra être gérée en mode PWM ; à faire une seule fois
gpio pwm 1 256 -- demande de produire, sur la sortie 1, un signal PWM pour une consigne de 25 % du nominal
Envoyer un tel signal PWM à un driver LED dimmable, va conduire celui-ci à délivrer aux LED 25% de la puissance nominale (par exemple en début ou fin de journée)
Envoyer un tel signal à un ventilateur acceptant le PWM, va le conduire (en gros) à tourner au 1/4 de sa vitesse max.
Dans les 2 cas un programme avec des commandes très simples, permet donc de "piloter" la puissance de l'éclairage ou la vitesse du ventilateur.
exemple de montée en puissance progressive le matin
- Code:
gpio pwm 1 128 -- demande de produire, sur la sortie 1, un signal PWM pour une consigne de 12.5 % du nominal
sleep 900 -- attendre 15 minutes
gpio pwm 1 256 -- demande de produire, sur la sortie 1, un signal PWM pour une consigne de 25 % du nominal
sleep 900 -- attendre à nouveau 15 minutes
gpio pwm 1 384 -- demande de produire, sur la sortie 1, un signal PWM pour une consigne de 37.5 % du nominal
...
__
Pour demander par programme de mettre en marche ou d’arrêter un driver, une pompe, un ventilateur, on peut mettre un relai (interrupteur commandé) entre son alimentation et l'appareil (le 230V pour un driver, le 12 V pour une pompe d'essuie-glace).
En supposant que l'appareil en question est sur la sortie 2, on dispose des commandes
- Code:
gpio write 2 1 -- activer le relai, par exemple mettre la pompe en marche
et
- Code:
gpio write 2 0 -- couper le relai, par exemple arrêter la pompe
Ainsi la suite de commande suivante
- Code:
gpio write 2 1
sleep 17
gpio write 2 0
permet de faire fonctionner l'appareil en question (par exemple la pompe) pendant 17 secondes
___
Un Raspberry possède également des entrées sur lequel on peut brancher des capteur, par exemple une sonde de température et/ou une sonde d'hygrométrie.
Par d'autres commandes d(u même type que les précédentes), on va pouvoir périodiquement lire les valeurs fournies par les capteurs.
Ainsi par exemple un programme, toutes les 10 minutes, l
i) lit la valeur de température et la compare à 23 et 27°C : si elle est plus forte que 27 °C, il va augmenter de 10% la consigne du ventilateur (cf. commande précédente) ; si la température est inférieure à 23°C, il va réduire la consigne du ventilateur de 10¨%
ii) lit la valeur de l'hygrométrie et la compare par exemple à 35% ; si elle est plus faible il fait tourner la pompe 30 secondes (cf. commandes précédentes)
Avec cela nous disposons bien d'un mini
pilotage automatisé de la température/ventilation et de l'hygrométrie arrosage.
Avec un programme qui gère allumage/extinction et variation de puissance de l'éclairage, on dispose du pilotage automatisé du cycle quotidien d'éclairage.
Ce n'est franchement pas compliqué du tout.
Ensuite on peut y ajouter d'autres choses comme :
i) d'autres relais , par exemple pour activer ou non un câble chauffant, en fonction de la température du terreau dans les godets
ii) des alertes : par exemple si on arrive au maximum de consigne de vitesse du ventilateur et que la température reste au dessus de 28°C le programme pourra envoyer une alerte pour signaler au jardinier qu'il doit intervenir d'une manière ou d'une autre
etc...
Notre ambition (est elle réaliste ?) est de mettre cela au point cette année afin, d'ici un an, de pouvoir proposer du "clé en main" à ceux qui voudraient disposer de ce "pilotage" sans avoir à plonger eux-même dans la programmation.
____________
Est ce un peu plus clair comme ça ?