Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

UPS compatible HID avec Arduino

Composants et fournitures

Arduino Pro Micro
× 1
Planche à pain (générique)
× 1
Câbles de raccordement (générique)
× 1

À propos de ce projet

J'ai récemment joué avec Arduino pour voir ce qu'il peut faire pour moi. J'ai un vieil onduleur "factice", qui ne peut pas signaler son état à l'ordinateur hôte car il n'y a pas de port USB dessus. L'un des projets que j'avais en tête est de créer des « cerveaux » pour l'onduleur factice à l'aide d'une carte Arduino. Le but de ces cerveaux d'UPS serait de lire l'état interne de l'UPS en mesurant la capacité restante de la batterie, l'état de charge/décharge, le courant de la batterie, la tension, etc. Toutes ces lectures devraient ensuite passer par l'interface USB et être interprétées par le système d'exploitation hôte de l'ordinateur de la même manière qu'avec les onduleurs intelligents du commerce (par exemple, par APC).

Je ne voulais pas déranger le développement de pilotes matériels pour mon onduleur personnalisé et je voulais qu'il soit "plug-and-play", j'ai donc décidé, après quelques recherches, de mettre en œuvre une interface compatible HID selon cette spécification. HID signifie "Human Interface Device" et a été conçu à l'origine pour les claviers, les souris, les manettes de jeu et les appareils similaires pour l'entrée humaine, mais il a été récemment étendu pour prendre en charge les appareils d'alimentation tels que les onduleurs, les batteries et les chargeurs, qui peuvent bénéficier de l'utilisation du HID normes de communication intelligente avec l'ordinateur hôte. Ma prochaine étape consistait à apprendre que certains Arduinos comme Leonardo, Pro Micro et leurs clones peuvent se présenter à l'hôte comme un clavier HID ou une souris. Après quelques analyses de la bibliothèque Arduino HID, de la bibliothèque Keyboard et de nombreuses recherches sur Google :) J'ai écrit ma propre bibliothèque HIDPowerDevice. Vous trouverez quelques détails sur la façon de le configurer et de l'utiliser dans le fichier readme de GitHub.

Mon laboratoire de test est très simple et comprend mon ordinateur portable, Arduino Pro Micro connecté à l'ordinateur portable (Macbook dans mon cas mais cela fonctionnera également sur Windows 10 et Ubuntu) via USB, une maquette et un commutateur (j'ai en fait utilisé un cavalier à la place). J'ai également ajouté quelques LED pour le diagnostic et un potentiomètre pour simuler le niveau de charge. Le schéma est ci-dessous :

Le S1 connecte la broche 4 de l'Arduino Pro Micro à la terre simulant ainsi le fonctionnement de l'onduleur sur batterie. Lorsque S1 EST ÉTEINT, Arduino signale au PC qu'il est en train de "charger".

Étant donné que mon "UPS" est compatible HID, Windows 10 reconnaît également l'Arduino comme une batterie HID et le pourcentage de capacité restante s'affiche correctement :

Il y a une limitation importante à mentionner - Windows 10 autorise plusieurs batteries dans le système et toutes peuvent être affichées dans le bac. Cependant, les batteries doivent signaler leur état dans le même mode (la spécification HID prend en charge le maH, le mwH et le pourcentage), mais la plupart des onduleurs ne signalent que le pourcentage de charge. Si vous avez déjà une batterie ACPI dans votre système (disons que vous testez sur un ordinateur portable), le pourcentage peut ne pas être reflété correctement.

De même, l'UPS fonctionne également sous Linux bien qu'une configuration supplémentaire puisse être nécessaire, voir README.

MISE À JOUR 12 juin-2021 Après avoir reçu plusieurs questions concernant la prise en charge de Synology (les cartes Arduino n'étaient pas reconnues par Synology comme des onduleurs compatibles HID), j'ai décidé de faire des recherches à ce sujet. Le problème se trouve dans les outils Network UPS (NUT) utilisés par la distribution Synology - il suppose l'interface USB 0 par défaut pour tous les modèles d'onduleurs compatibles HID, mais Arudino Leonardo/Pro Mini s'annonce sur le port USB en tant que périphérique composite avec UPS accessible sur l'interface 2. Il y a un problème similaire avec les points de terminaison d'interruption. Plus de détails techniques sur ce problème peuvent être trouvés ici.

La bibliothèque NUT modifiée avec prise en charge Arduino est ici. Vous pouvez le construire à partir de la source et l'installer sur votre plate-forme cible (Synology ou toute autre distribution Linux compatible). Veuillez prendre en compte que cela est encore expérimental, il est donc fortement recommandé de créer une sauvegarde de vos fichiers NUT actuels.

Profitez! :)

Code

Code source HIDPowerDevice
https://github.com/abratchik/HIDPowerDevice

Schémas

arduino_ups_mlvhJQLrSZ.fzz

Processus de fabrication

  1. Contrôler un effet avec de vrais capteurs
  2. Surveillance du CO2 avec le capteur K30
  3. Communication sourds-aveugles avec 1Sheeld/Arduino
  4. Contrôler l'accepteur de pièces avec Arduino
  5. Arduino avec Bluetooth pour contrôler une LED !
  6. Capteur d'empreintes digitales capacitif avec un Arduino ou ESP8266
  7. Jouer avec Nextion Display
  8. Bras robotique contrôlé par Nunchuk (avec Arduino)
  9. Mesure du rayonnement solaire avec Arduino