산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 프로 마이크로로 구현한 HID UPS: 더미 전원장치를 USB 호환 스마트 UPS로 업그레이드

부품 및 소모품

부품 수량 비고
아두이노 프로 마이크로(Pro Micro) 1
브레드보드(일반) 1
점퍼 와이어(일반) 1

프로젝트 소개

최근 아두이노로 무엇을 할 수 있는지 실험해 보았습니다. USB 포트가 없어 호스트 컴퓨터에 상태를 보고할 수 없는 오래된 '더미(Dummy) UPS'가 하나 있습니다. 아두이노 보드로 이 더미 UPS에 '두뇌'를 만들어 주는 프로젝트를 구상했습니다. 목적은 UPS 내부 상태(잔여 배터리 용량, 충전/방전 상태, 배터리 전류, 전압 등)를 읽어 USB 인터페이스를 통해 호스트 컴퓨터의 운영체제가 상용 스마트 UPS(예: APC)와 똑같이 인식하게 하는 것입니다.

커스텀 UPS용 하드웨어 드라이버를 개발하고 싶지 않았고 '플러그 앤 플레이(Plug-and-play)' 방식을 원했습니다. 조사 끝에 HID(Human Interface Device) 규격에 맞춘 인터페이스를 구현하기로 했습니다. HID는 본래 키보드, 마우스, 조이스틱 등 사람 입력 장치를 위해 설계되었으나, 최근 UPS, 배터리, 충전기 같은 전원 장치도 지원하도록 확장되어 호스트 컴퓨터와 지능적으로 통신할 수 있게 되었습니다.

레오나르도(Leonardo), 프로 마이크로(Pro Micro) 및 그 클론 보드들이 호스트에 HID 키보드나 마우스로 인식될 수 있다는 사실을 알았습니다. 아두이노 HID 라이브러리, 키보드 라이브러리 등을 분석하고 검색한 끝에 나만의 HIDPowerDevice 라이브러리를 작성했습니다. 설정 및 사용법은 깃허브 README에 자세히 적혀 있습니다.

테스트 환경은 매우 간단합니다: 노트북, USB로 연결된 아두이노 프로 마이크로(맥북 사용했지만 윈도우 10, 우분투에서도 작동), 브레드보드, 스위치 하나(실제로는 점퍼 와이어 사용). 진단용 LED 두 개와 충전 레벨 시뮬레이션용 포텐셔미터도 추가했습니다. 회로도는 아래와 같습니다:

아두이노 프로 마이크로로 구현한 HID UPS: 더미 전원장치를 USB 호환 스마트 UPS로 업그레이드

스위치 S1은 아두이노 프로 마이크로의 4번 핀을 그라운드에 연결해 UPS가 배터리 모드로 전환된 상황을 시뮬레이션합니다. S1이 OFF면 아두이노는 PC에 '충전 중'이라고 보고합니다.

아두이노 프로 마이크로로 구현한 HID UPS: 더미 전원장치를 USB 호환 스마트 UPS로 업그레이드

이 'UPS'는 HID 규격을 준수하므로 윈도우 10에서도 아두이노를 HID 배터리로 인식하며, 남은 용량 백분율이 올바르게 표시됩니다.

아두이노 프로 마이크로로 구현한 HID UPS: 더미 전원장치를 USB 호환 스마트 UPS로 업그레이드
아두이노 프로 마이크로로 구현한 HID UPS: 더미 전원장치를 USB 호환 스마트 UPS로 업그레이드

중요한 제한사항 하나: 윈도우 10은 시스템에 여러 배터리를 허용하고 트레이에 모두 표시할 수 있습니다. 하지만 모든 배터리가 같은 모드(HID 규격은 mAh, mWh, 백분율 지원)로 상태를 보고해야 합니다. 대부분의 UPS는 충전 백분율만 보고합니다. 이미 ACPI 배터리(노트북 내장 배터리 등)가 시스템에 있다면 백분율이 올바르게 반영되지 않을 수 있습니다.

리눅스에서도 비슷하게 작동하지만 추가 설정이 필요할 수 있습니다. README를 참조하세요.

업데이트 (2021-06-12) 시놀로지(Synology) 지원 문의가 여러 건 들어와 조사해 보았습니다. 문제는 시놀로지 배포판에서 사용하는 NUT(Network UPS Tools)에 있었습니다. NUT는 모든 HID 준수 UPS 모델이 기본적으로 USB 인터페이스 0을 사용한다고 가정하지만, 아두이노 레오나르도/프로 마이크로는 복합 장치로 인식되어 UPS 기능이 인터페이스 2에 있습니다. 인터럽트 엔드포인트 관련 문제도 비슷합니다. 기술적 세부사항은 여기에서 확인할 수 있습니다.

아두이노 지원이 추가된 수정된 NUT 라이브러리는 여기에 있습니다. 소스에서 빌드해 대상 플랫폼(시놀로지 또는 호환 리눅스 배포판)에 설치하면 됩니다. 아직 실험적이므로 현재 NUT 파일을 백업한 후 적용하시길 강력 권장합니다.

즐거운 제작 되세요! :)

코드

HIDPowerDevice 소스 코드

https://github.com/abratchik/HIDPowerDevice

회로도

arduino_ups_mlvhJQLrSZ.fzz

제조공정

  1. Satellite CCRMA 키트로 센서 구동 오디오 이펙트 만들기
  2. K30 CO2 센서: 실시간 실내 공기질 모니터링
  3. 1Sheeld와 아두이노로 시각/청각 장애인 간 소통 돕기
  4. 스마트 저금통 만들기: 아두이노 나노로 동전 인식기 제어하기
  5. 아두이노 블루투스로 LED 제어하기 - HC-05 & MIT App Inventor 입문 가이드
  6. DFRobot 정전식 지문 인식 센서 아두이노/ESP8266 연동 가이드
  7. 아두이노 메가와 센서를 활용한 인터랙티브 넥시온 HMI 프로젝트
  8. 아두이노 메가 기반 닌텐도 눙크 컨트롤 6자유도 로봇 암 키트
  9. 아두이노 우노와 이더넷 실드로 정확한 태양광 복사량 측정하기
  10. 컴팩트 아두이노 레이더 시스템: HC-SR04 초음파 센서 & 1.8인치 디스플레이