Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

UPS compatível com HID com Arduino

Componentes e suprimentos

Arduino Pro Micro
× 1
Breadboard (genérico)
× 1
Fios de jumpers (genérico)
× 1

Sobre este projeto


Tenho jogado com o Arduino recentemente para ver o que ele pode fazer por mim. Eu tenho um antigo no-break “fictício”, que não pode relatar seu status ao computador host, pois não há porta USB nele. Um dos projetos que eu tinha em mente é criar “cérebros” para o UPS fictício com a ajuda da placa Arduino. O objetivo de tais cérebros de UPS seria ler o status interno do UPS medindo a capacidade restante da bateria, estado de carga / descarga, corrente da bateria, tensão, etc. Todas essas leituras devem ser passadas através da interface USB e interpretadas pelo sistema operacional host de o computador da mesma maneira que é feito com no-break inteligente comercial (digamos, da APC).

Eu não queria mexer no desenvolvimento de drivers de hardware para meu no-break personalizado e queria que fosse "plug-and-play", então decidi, após algumas pesquisas, implementar uma interface compatível com HID de acordo com esta especificação. HID significa "Dispositivo de Interface Humana" e foi originalmente projetado para teclados, mouses, joysticks e dispositivos semelhantes para entrada humana; no entanto, foi estendido recentemente para oferecer suporte a dispositivos de energia, como UPS, baterias e carregadores, que podem se beneficiar do uso do HID padrões para comunicação inteligente com o computador host. Meu próximo passo foi aprender que alguns Arduinos como Leonardo, Pro Micro e seus clones podem se apresentar ao hospedeiro como um teclado HID ou um mouse. Depois de algumas análises da biblioteca Arduino HID, biblioteca de teclado e muito pesquisando :) eu escrevi minha própria biblioteca HIDPowerDevice. Você encontrará alguns detalhes sobre como configurá-lo e usar no leiame do GitHub.

Meu laboratório de teste é muito simples e é composto por meu laptop, Arduino Pro Micro conectado ao laptop (Macbook no meu caso, mas funcionará no Windows 10 e no Ubuntu também) através de USB, uma placa de ensaio e um switch (na verdade, usei um em vez disso). Também adicionei alguns LEDs para diagnóstico e um potenciômetro para simular o nível de carga. O esquema está abaixo:

O S1 conecta o pino 4 do Arduino Pro Micro ao solo, simulando o funcionamento da bateria do no-break. Quando S1 ESTÁ DESLIGADO, o Arduino informa ao PC que está "carregando".

Como meu "UPS" é compatível com HID, o Windows 10 também reconhece o Arduino como uma bateria HID e a porcentagem de capacidade restante é mostrada corretamente:

Há uma limitação importante a ser mencionada - o Windows 10 permite várias baterias no sistema e todas elas podem ser exibidas na bandeja. No entanto, as baterias devem relatar seu status no mesmo modo (a especificação HID suporta maH, mwH e porcentagem), mas a maioria dos no-breaks está relatando apenas porcentagem de carga. Se você já tem bateria ACPI em seu sistema (digamos que você esteja testando em um laptop), a porcentagem pode não ser refletida corretamente.

Da mesma forma, o UPS também funciona no Linux, embora algumas configurações adicionais possam ser necessárias, consulte o README.

ATUALIZAÇÃO 12 de junho de 2021 Depois de receber várias perguntas sobre o suporte da Synology (as placas Arduino não foram reconhecidas pela Synology como dispositivos UPS compatíveis com HID), decidi pesquisar um pouco sobre isso. O problema está nas ferramentas de UPS de rede (NUT) usadas pela distro Synology - assume a interface USB 0 por padrão para todos os modelos de UPS compatíveis com HID, mas Arudino Leonardo / Pro Mini se anuncia na porta USB como um dispositivo composto com UPS acessível na Interface 2. Há um problema semelhante com pontos de extremidade de interrupção. Mais detalhes técnicos sobre este problema podem ser encontrados aqui.

A biblioteca NUT modificada com suporte para Arduino está aqui. Você pode compilá-lo a partir da fonte e instalar em sua plataforma de destino (Synology ou qualquer outra distribuição Linux compatível). Leve em consideração que isso ainda é experimental, portanto, é altamente recomendável criar um backup de seus arquivos NUT atuais.

Aproveitar! :)

Código

Código-fonte HIDPowerDevice
https://github.com/abratchik/HIDPowerDevice

Esquemas

arduino_ups_mlvhJQLrSZ.fzz

Processo de manufatura

  1. Controle de um efeito com sensores reais
  2. Monitoramento de CO2 com Sensor K30
  3. Comunicação para surdos-cegos com 1Sheeld / Arduino
  4. Aceitar moeda de controle com Arduino
  5. Arduino com Bluetooth para controlar um LED!
  6. Sensor capacitivo de impressão digital com um Arduino ou ESP8266
  7. Brincando com Nextion Display
  8. Braço robótico controlado por Nunchuk (com Arduino)
  9. Medindo a radiação solar com Arduino
  10. Mini Radar com Arduino