Arduino Home Light Dimming

10

La cloison sèche commence tout juste à monter dans le projet de sous-sol de ma famille. J'ai étudié les systèmes de contrôle d'éclairage résidentiels. Certains de ceux que j'ai vus représentent une augmentation de 2 000 $. Je pense qu'il serait beaucoup plus amusant (et rentable!) D'implémenter mon propre système basé sur Arduino.

Le vrai problème réside dans le contrôle réel des lumières. Chaque groupe de lumières devra être contrôlé par un système de gradateur à interrupteur. Ce serait beaucoup plus simple si le microcontrôleur était le seul point de contrôle. Hélas, ce n'est pas le cas. Je suppose que je dois utiliser un gradateur qui laisse une interface d'appareil externe avec lui. Cela éviterait complètement le problème car le commutateur et l'Arduino pourraient tous deux contrôler les lumières, l'Arduino contrôlerait les lumières via le gradateur.

Quelqu'un peut-il recommander une meilleure solution / approche ou suggérer un gradateur doté d'une sorte d'interface «à distance»?

Mise à jour du 1/3/2013: j'ai finalement opté pour une solution basée sur Insteon utilisant un bouclier personnalisé de Good Robot . Il fonctionne très bien et peut être utilisé pour contrôler tout Insteon, pas seulement les lumières. Je posterai une réponse ici quand j'aurai l'occasion d'écrire quelque chose d'utile.

Kevin Mark
la source

Réponses:

4

J'ai installé une maison entière avec X10 il y a environ 10 ans, et pendant que cela fonctionnait, ça pourrait être un peu feuilleté. Si je devais le refaire, je regarderais des produits plus modernes comme Insteon . Insteon est censé résoudre une grande partie de la fragilité du X10.

Je ne prendrais pas la peine d'essayer de construire vous-même les modules de contrôle AC de l'appareil (gradateurs, interrupteurs à distance, etc.) car travailler avec des tensions secteur est très dangereux à moins que vous ne sachiez vraiment ce que vous faites.

ducksauz
la source
Merci pour le lien Insteon. Il semble qu'il existe une sorte de protocole Insteon qui me permettrait d'interfacer avec leurs gradateurs. Est-ce une variation de X10?
Kevin Mark
Après quelques recherches supplémentaires, les gradateurs Insteon ressemblent vraiment à la voie à suivre. Il semble que je puisse au moins leur envoyer des signaux X10. Je suis allé sur Google pour trouver de la documentation ou des exemples de projets. Je n'ai encore rien trouvé.
Kevin Mark
J'ai relu le kit Insteon. Il est compatible X10, en ce sens qu'il coexistera avec X10. Il a un débit de données plus élevé, tous les appareils sont des répéteurs et tous les messages sont reconnus.
ducksauz
Il y a un bon livre blanc ici: insteon.net/about-whitepapers.html
ducksauz
Merci. Cela devrait s'avérer utile dans le cas malheureux dont j'ai besoin pour interfacer manuellement avec le protocole INSTEON. ;)
Kevin Mark
4

Le DMX512 est largement utilisé pour contrôler l'éclairage de la scène. Puisqu'il utilise EIA-485, le matériel et les logiciels devraient être assez faciles à implémenter sur un Arduino avec un bouclier approprié. Voici un projet Arduino DMX.

Des contrôleurs de gradateur DMX à distance à faible coût sont disponibles, en voici un qui utilise un ATmega8515 AVR, un appareil similaire à celui utilisé sur l'Arduino. Je serais enclin à utiliser un contrôleur beaucoup plus petit et moins cher. L'interface du gradateur aux lampes, le "bloc d'alimentation", est également décrite. C'est un projet plutôt sympa.

Leon Heller
la source
bien que cela soit vrai, je ne pense pas que cela réponde à cette question. Kevin aurait besoin d'un "gradateur DMX" qui prend le DMX et émet une forme d'onde de réseau à phase coupée.
Martin
1
J'ai tendance à écrire mes réponses un peu à la fois, en les ajoutant à mesure que je pense à plus de choses.
Leon Heller
DMX est assez cool pour jouer avec, mais se révélera probablement exagéré pour ce que je fais. D'autant plus qu'il s'agit d'un système encastré.
Kevin Mark
4

J'ai joué avec X10 et Insteon - ils fonctionnent, mais mon expérience de les pirater était décevante.

Je construis donc mon système domotique entièrement avec des radios XBee. La domotique ZigBee norme est ouverte et assez facile à implémenter (si vous voulez être compatible avec les matériels existants). Mais vous n'avez pas à suivre cette voie, vous pouvez déployer votre propre protocole (avec json binaire par exemple - c'est ce que je fais). Les radios ne sont pas bon marché (~ 25 $), mais la facilité d'utilisation en vaut la peine, à mon avis. Dans de nombreux cas, vous n'avez même pas besoin d'un microcontrôleur - les XBee ont leurs propres E / S numériques et analogiques. Jusqu'à présent, j'ai construit quelques appareils avec XBee - thermostat, capteur de mouvement, passerelle X10 et assistant de stationnement / capteur de présence de voiture. Les radios ZigBee peuvent former des réseaux maillés, donc la couverture et la consommation d'énergie sont excellentes.

Construire vos propres gradateurs coûterait cher, cependant (la seule option que j'ai pu trouver était d'utiliser le module Velleman K8064 - ~ 35 $), donc si vous avez besoin d'un gradateur, j'irais avec Insteon ou X10. J'ai quelques modules de lampes X10 dans ma maison et pour les contrôler, j'utilise l'interface série X10 PRO PSC04 (pour ~ 10 $ c'est difficile à battre) attachée à Arduino ( bibliothèque X10 pour Arduino ).

sudarkoff
la source
C'est une excellente idée, en général, mais je ne sais pas comment je pourrais implémenter cela dans une solution à mon problème. Malheureusement, j'ai besoin à la fois d'un gradateur physique et d'un contrôle externe. Insteon fait l'affaire, mais c'est assez coûteux. Comme je l'ai déjà dit, je pensais à utiliser des commutateurs Insteon mais à utiliser un Arduino pour intercepter les signaux Insteon. Le contrôleur Insteon que vous pouvez acheter sur leur site Web est primitif et très coûteux.
Kevin Mark
J'ai quelques modules de lampes X10 dans ma maison que je contrôle avec Arduino connecté à un contrôleur série X10. (Voici la bibliothèque Arduino X10 que j'utilise: arduino.cc/en/Tutorial/X10 ) AFAIK, Insteon prend en charge X10, vous devriez donc être en mesure d'obtenir le même résultat.
sudarkoff
En effet. C'est définitivement ce que je vais faire pour commencer. Idéalement, j'utiliserais le protocole Insteon au lieu du X10 vieillissant et peu fiable.
Kevin Mark
2

Si vous allez installer des câbles et de nouvelles lumières de toute façon, j'envisagerais d'installer des luminaires LED. Non seulement vous économiserez de l'argent à long terme en raison de la baisse des coûts d'électricité, mais vous économiserez de l'argent dans l'installation sur le câblage. Parce que les LED utilisent des tensions inférieures à 24V, le code électrique est très laxiste. Vous n'avez pas besoin d'installer des fils de cuivre épais (chers) à chaque sortie, mais plutôt un câblage 20-18 AWG beaucoup moins cher (j'ai même utilisé 23AWG dans un câble CAT6) Il existe de nombreuses options pour la LED haute puissance à partir d'un Arduino. Mon préféré serait celui-ci. Jusqu'à 128 peuvent être contrôlés à partir d'un seul Arduino. Le code pour les contrôler est très simple. Après cela, ajoutez un bouclier Ethernet à l'arduino et du javascript de base, puis contrôler vos lumières sera aussi simple que de visiter une page Web sur un ordinateur ou un smartphone. Vous pouvez même transmettre les demandes du port 80 entrant au bouclier et vous permettre de le contrôler pendant votre absence (peut-être pour effrayer les escrocs). De plus, vous auriez un contrôle de gradation indépendant sur chaque lumière dans le sous-sol (ainsi, par exemple, si vous regardiez un film, vous ne pouviez allumer que deux lumières à l'arrière et les laisser très faibles).

charliehorse55
la source
C'est en fait une très bonne idée. Malheureusement, le câblage est déjà fait, ce qui ne fait plus de l'éclairage LED sélectif une option viable. Je garderai cela à l'esprit pour les futurs projets!
Kevin Mark
Toute la puissance d'un circuit passe par un interrupteur (afin de rendre les lumières contrôlables). Pourriez-vous non seulement mettre l'arduino par le commutateur et utiliser le câblage épais pour les LED (exagéré, mais cela fonctionnerait toujours). À moins que vous ayez déjà acheté des appareils d'éclairage / ampoules?
charliehorse55
Je suppose que ça pourrait marcher. Étant donné que j'ai besoin d'avoir à la fois des gradateurs "traditionnels" et une commande de microcontrôleur, aurais-je besoin de fabriquer mes propres gradateurs muraux qui se raccordent à l'Arduino?
Kevin Mark
Vous voulez faire fonctionner à la fois des lampes à incandescence traditionnelles et des LED de l'arduino? Facile à faire. La plupart de ces gradateurs à 6 $ que vous pouvez acheter à la quincaillerie utilisent un pot de 10k pour le cadran du gradateur. Ouvrez l'unité et remplacez les fils du pot 10k par des fils vers un pot numérique. Le pot numérique peut être contrôlé depuis l'arduino via I2C. Si c'est un simple marche / arrêt, vous pouvez piloter un mosfet 5v avec l'arduino pour piloter une commande 24V pour un solénoïde.
charliehorse55
Bon à savoir. Si j'implémente des lumières LED, j'utiliserai probablement ceci ou une méthode similaire.
Kevin Mark
2

Je travaillais pour une entreprise qui avait des gradateurs commandés par bouton-poussoir. Vous devrez remplacer tous les interrupteurs muraux par des boutons-poussoirs avec un contact NO (normalement ouvert). L'avantage est que vous pouvez simplement placer tous les points de contrôle en parallèle et envoyer un seul signal logique au microcontrôleur. Vous pouvez utiliser la tension d'alimentation du microcontrôleur et une résistance de rappel, mais en particulier sur les fils longs, vous capterez beaucoup de bruit, et peut également avoir une chute de tension. Mieux vaut exécuter les boutons-poussoirs sur une tension plus élevée (par exemple 24 V) et diviser ce niveau pour correspondre au microcontrôleur.

Un mode de fonctionnement possible:
En appuyant sur un bouton pendant un temps plus long que par exemple une demi-seconde, vous relancerez un cycle de variation. Tant qu'un bouton est enfoncé, vous diminuez à une certaine vitesse, attendez une seconde à la valeur maximale et le début de la diminution, jusqu'à l'arrêt, après quoi le cycle redémarre. Le microcontrôleur doit se souvenir non seulement du niveau actuel, mais aussi de la dernière ou de la dernière action.
Appuyez brièvement sur le bouton (moins d'une demi-seconde) pour basculer entre l'arrêt et la dernière valeur atténuée.

Ce n'est qu'une fonctionnalité possible. Vous pouvez y apporter des variations, mais n'oubliez pas que vous n'avez qu'une impulsion (de longueur variable) comme signal.

stevenvh
la source
J'aime l'idée, et c'est une façon intéressante de le faire, mais ce sera un peu trop cher (en termes de temps) pour être utilisé dans mon sous-sol. Les gradateurs traditionnels qui peuvent utiliser X10 ou INSTEON semblent être la solution la plus favorable pour mon projet.
Kevin Mark
@Kevin - franchement, je ne trouve pas moi-même la solution la plus conviviale, mais le produit de mon ancien employeur semble bien se vendre. La raison principale est probablement le simple câblage, et pas besoin d'intelligence en dehors du gradateur.
stevenvh
Je suis d'accord, c'est même loin d'être convivial ou intuitif, mais je le trouve intéressant du point de vue conceptuel. Simplifiez essentiellement le backend en simplifiant l'ensemble de l'opération physique.
Kevin Mark
1

Vous voudrez peut-être regarder X10, je ne l'ai pas utilisé depuis un certain temps, mais depuis que je l'ai utilisé la dernière fois, je sais qu'il y a au moins une interface de port série, peut-être même sans fil, afin que vous n'ayez pas à vous connecter aux lignes électriques avec votre matériel. Il y a (était) des modules où vous fermiez un relais et pouviez tout allumer ou tout éteindre. Pour une luminosité faible ou brillante, vous aurez besoin de plus de contrôle.

old_timer
la source
Je pense que mon meilleur pari est de trouver un interrupteur / gradateur compatible X10.
Kevin Mark