S.H.I.E.L.D - Is Someone Watching You?

3,480

49

1

Introduction: S.H.I.E.L.D - Is Someone Watching You?

I saw a lot of videos of embarrassed people when they didn't noticed that their microphone or camera were on, and it gave me the idea to this project.

I've wrote a simple application in C# that detects when the camera or microphone are being used and pop a notification with the program name. In addition, I have a simple board with 2 WS2812B LEDs and buzzer that beeps and light up when it receives notification from the software.

The hardware is Arduino based and the communication is done via serial to keep it simple and let beginners an easy start program to play with.

Please checkout the project GitHub repository for complete source code:
https://github.com/tlevis/S.H.I.E.L.D

Supplies

  • 2 x WS2812B
  • 1 x 5v Buzzer
  • 1 x Micro USB breakout board
  • 1 x Female USB type A breakout board
  • 8 x 3mm x 1.8mm circle neodymium magnet

Step 1: Electronics

The electronics here is very simple
I've used 2 addressable LEDs (WS2812B), buzzer and micro USB connector.
Everything is wired according to the attached schema.

At the Arduino side, it is just a simple USB type A connector that connects to 5v, GND and pins 8 & 9.

Step 2: 3D Printing the Case

I've designed a simple case that contains the electronics with two slits for the acrylic signs.
Around the LEDs I've placed support for the signs so they won't tilt.
In the bottom of the case I've placed 4 magnets so it can fit to the mount on the screen easily.

Print one of each stl file.

Step 3: Acrylic Sings Engraving

I used my desktop CNC machine, SainSmart CNC 3018-PROVer.
I've searched for free icons and convert them to vector with inkview software

Step 4: Programming

Here we have the client side application that is C# (for Windows) and the Arduino code.
You can find them here.

To monitor when the camera or microphone are being used, I'm monitoring the following path in Windows Registry:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam

and

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\microphone

Every time we get change notification we need to search the tree for changes.
When device is being used, the LastUsedTimeStop is 0, so we search for it and parse the key to get the application name to show it in the notification.

The communication between the Arduino and the C# program is via serial.
The messages are JSON so it will be easy to migrate the communication to something else if we want to do so in the future.

Be the First to Share

    Recommendations

    • Lamps and Lighting Contest

      Lamps and Lighting Contest
    • Halloween Contest

      Halloween Contest
    • Pumpkins & Gourds Speed Challenge

      Pumpkins & Gourds Speed Challenge

    Comments

    0
    jbtindie
    jbtindie

    Question 10 months ago

    I like it, this looks like a great project. But it appears to be Windows only. Any plans to make a Mac OSX version?