WebUSB API позволяет веб-приложениям взаимодействовать с USB-устройствами напрямую из браузера. Однако поддерживаются не все устройства.
Какие устройства можно использовать?
WebUSB работает с USB-устройствами, для которых нет стандартных драйверов в операционной системе. Например:
- Периферийные устройства без стандартных драйверов:
- Кастомные USB-устройства (например, программируемые микроконтроллеры: Arduino, ESP32, STM32 с кастомным firmware).
- USB-устройства с собственными протоколами (например, специализированные датчики, HID-устройства нестандартного типа).
- Устройства, поддерживающие классы интерфейсов USB, разрешенные WebUSB:
- HID (Human Interface Device) – но не все, так как клавиатуры/мыши обычно блокируются из соображений безопасности.
- CDC (Communication Device Class) – например, некоторые USB-UART адаптеры (но многие используют стандартные драйверы ОС).
- Vendor-specific классы – устройства с собственными протоколами.
- Примеры конкретных устройств:
- Разработка и прототипирование:
- Arduino (с поддержкой WebUSB, например, Arduino Leonardo в режиме WebUSB).
- ESP32, Raspberry Pi Pico (с прошивкой, поддерживающей WebUSB).
- STM32 (с кастомной USB-реализацией).
- Специализированные устройства:
- USB-осциллографы, логические анализаторы (если нет стандартного драйвера).
- 3D-принтеры, ЧПУ-станки (если используют прямой USB-протокол).
- USB-устройства для IoT (датчики, реле и т. д.).
Какие устройства не поддерживаются?
- Устройства с зарезервированными классами USB (например, веб-камеры, USB-накопители, принтеры, Bluetooth-адаптеры).
- Устройства, для которых ОС автоматически загружает драйверы (например, COM-порты, клавиатуры, мыши).
- Защищённые устройства (например, YubiKey, банковские токены).