Je cherche à contrôler une lumière alimentée par le secteur à partir d'un simple commutateur de relais connecté via USB à l'ordinateur.
Le commutateur de relais n’est même pas un périphérique USB, c’est un simple commutateur qui nécessite la tension USB pour l’activer. Lorsque la tension tombe en dessous d'un seuil, l'interrupteur éteint la lumière.
Mon problème est que je ne peux pas contrôler la sortie d'alimentation d'un port USB. Je suis heureux de le faire en utilisant n’importe quel langage sous Windows ou Linux (mais de préférence Java parce que j’y suis habitué).
Malheureusement, dans la plupart des cas, vous ne pouvez pas contrôler l’alimentation du port USB. L'alimentation est généralement câblée et non commutable par logiciel. Vous pouvez envoyer une réinitialisation à un périphérique USB , mais cela ne fonctionnera pas dans votre cas.
Un certain nombre de projets sur les instructables ressemblent à ce que vous décrivez, mais malheureusement, ils semblent être assez compliqués ou nécessitent des composants coûteux.
EDIT: Il y a actuellement un produit dans les nouvelles qui vous plairait, mais il ne semble pas encore être disponible: http://www.pwrusb.com/
EDIT (encore): Apparemment vous pouvez le faire avec des hubs USB . Cet article sugggests le Linksys USB2HUB4 est celui qui fonctionne.
EDIT (et encore): Apparemment, il y a un certain nombre de questions similaires, mais il ne semble pas y avoir de réponses plus utiles:
La plupart des convertisseurs USB à série ou USB à RS232 à 10 $ prennent en charge le protocole de transfert matériel. Utilisez l'un de ceux-ci comme un io numérique monocanal.
Connectez votre transistor qui pilotera le relais à DTR sur la carte de convertisseur et commandez DTR ON/OFF avec le pilote du convertisseur.
Un 2N7002 est un bon transistor à utiliser (FET en fait) car il fonctionnera à partir de 3V et n’aura besoin de résistances nulle part.
Voici une solution complète.
Il utilise une carte Arduino, avec une connexion USB, (et Uno par exemple) pour contrôler le relais et le combine avec pfod (protocole pour la découverte des opérations) www.pfod.com.au qui vous permettra de contrôler la carte./relay depuis Arduino IDE SerialMonitor, ou une fenêtre de terminal (TeraTerm) ou un programme Java. Le protocole de message contient des commandes {}, pense au code HTML simplifié pour micros et fournit de nombreux écrans, menus, curseurs, entrées de texte et numériques, etc. Une spécification de protocole détaillée est disponible
Voir Télécommande de porte de garage pour un exemple détaillé, avec le code Arduino complet et un exemple de contrôle du relais de TeraTerm ainsi que du Arduino IDE SerialMonitor.
Il existe également une application Android, pfodApp , qui effectuera un contrôle général via Bluetooth, ou Wi-Fi/Internet avec une sécurité de 128 bits. Le pfodApp fait tout le truc Android, il vous suffit de coder quelques chaînes simples dans votre code Arduino pour obtenir le système de menu que vous voulez. Voir www.pfod.com.au pour de nombreux exemples.
Vous pouvez le faire en combinant ces deux produits de Pololu, pour environ 25 $:
Le Maestro est principalement un contrôleur d'asservissement, mais vous pouvez également définir n'importe lequel de ses canaux pour qu'il s'agisse de simples sorties numériques. La sortie peut être contrôlée à partir du logiciel Maestro Control Center ou vous pouvez écrire votre propre logiciel. Une sortie numérique d'un Maestro convient pour activer le relais sur la porteuse de relais. Le relais pourrait être alimenté par USB via le Maestro; Je pense qu’il consomme environ 100 mA de courant, ce qui ne posera probablement pas de problème pour la plupart des ports USB, même s’il ne serait pas conforme à la norme USB car le courant total consommé par le Maestro et le relais dépasserait 100 mA. Vous pouvez fournir votre propre source d'alimentation pour le relais si cela vous inquiète.
Je suggérerais de placer une unité Raspberry Pi distincte avec une fonction de réveil sur réseau activée afin que vous puissiez envoyer une requête ping.