Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Я видел много видео, на которых смущенные люди не замечали, что их микрофон или камера включены, и это натолкнуло меня на идею этого проекта.
Я написал простое приложение на C #, которое определяет, когда используется камера или микрофон, и выдает уведомление с названием программы. Кроме того, у меня есть простая плата с 2 светодиодами WS2812B и зуммером, который издает звуковой сигнал и загорается при получении уведомления от программного обеспечения.
Аппаратное обеспечение основано на Arduino, а связь осуществляется через последовательный порт, что упрощает работу и позволяет новичкам легко запускать программу.
Полный исходный код можно найти в репозитории GitHub проекта:
Запасы
- 2 х WS2812B
- 1 х 5 В зуммер
- 1 x переходная плата Micro USB
- 1 x гнездовой разъем USB типа A
- Круглый неодимовый магнит 8 x 3 x 1,8 мм
Шаг 1. Электроника
Электроника здесь очень простая, я использовал 2 адресных светодиода (WS2812B), зуммер и разъем micro USB, все подключено по прилагаемой схеме.
Со стороны Arduino это простой разъем USB типа A, который подключается к 5 В, GND и контактам 8 и 9.
Шаг 2: 3D-печать корпуса
Я разработал простой корпус, в котором находится электроника с двумя прорезями для акриловых вывесок. Вокруг светодиодов я разместил опоры для вывесок, чтобы они не наклонялись. В нижней части корпуса я разместил 4 магнита, чтобы он легко помещается на крепление на экране.
Распечатайте по одному из каждого файла stl.
Шаг 3: Гравировка на акриле
Я использовал свой настольный станок с ЧПУ SainSmart CNC 3018-PROVer. Я искал бесплатные иконки и конвертировал их в векторные с помощью программы inkview.
Шаг 4: Программирование
Здесь у нас есть клиентское приложение C # (для Windows) и код Arduino. Вы можете найти их здесь.
Чтобы контролировать использование камеры или микрофона, я отслеживаю следующий путь в реестре Windows: HKEY_CURRENT_USER / SOFTWARE / Microsoft / Windows / CurrentVersion / CapabilityAccessManager / ConsentStore / webcam
а также
HKEY_CURRENT_USER / SOFTWARE / Microsoft / Windows / CurrentVersion / CapabilityAccessManager / ConsentStore / микрофон
Каждый раз, когда мы получаем уведомление об изменении, нам нужно искать изменения в дереве. Когда устройство используется, LastUsedTimeStop равен 0, поэтому мы ищем его и анализируем ключ, чтобы получить имя приложения, чтобы отобразить его в уведомлении.
Связь между Arduino и программой C # осуществляется через последовательный порт. Сообщения представляют собой JSON, поэтому будет легко перенести связь на что-то еще, если мы захотим сделать это в будущем.