Mouse As Door Alarm




Introduction: Mouse As Door Alarm

A friend of mine who own a shoes store, since he had some missing articles,   asked me a way to monitor the door of the stock.
He just want a cheap system, connected to a pc, which will be able to send emails alarm when the stock door will be open during the days-off.

I decided to hack a old usb mouse and use the existing reed switch as click emulator.

A piece of python on a linux box will detect the mouse click as a open/close door alarm, and send a email.

Step 1: Prerequisites

You will need :

 - a old wired usb mouse
 - a linux box using Xorg/X11 (tested on Linux Mint and Ubuntu)
 - a reed switch (not on the photo) or a other mecanical switch
 - an iron solder
 - terminal blocks
 - some cables

Step 2: Hack the Mouse

Open your mouse carrefully, take care about all screws.

Next, identify the mouse buttons. Depending on the mouse, you can have 2 to 5 or 6 buttons.

Next, bypass the button switch. You can  desolder the switch or solder directly the cable on the mouse board.
Here, i've decided to solder directly, to be able to reuse the mouse later.
Also, i've only used one switch, but the python script can handle 3 switches.

Once completed, the mouse up and get out the cable to the outside.

Solder the cable to the terminal blocks. These blocks will be used to connect the alarm switch (reed switch or mecanic switch).

Step 3: Setup Python Script

The python script will do :

 - disable the mouse from X11, to prevent bad inputs
 - listen mouse events from raw inputs
 - detect mouse click (simulate by the alarm switch)
 - check if the click occurs during the days-off
 - if yes, it sent a email

Before to run the script, you need to edit it, and customize it. All configuration variables are on the beginning.

device_name : the mouse name from X11
xinput_id : the id of mouse from X11

$ xinput list | grep "slave  pointer"
    Virtual core XTEST pointer               id=4 [slave  pointer  (2)]
    SynPS/2 Synaptics TouchPad               id=10 [slave  pointer  (2)]
    PS/2 Generic Mouse                       id=11 [slave  pointer  (2)]
Kensington Kensington PocketMouse Pro    id=13 [slave  pointer  (2)]

When done, just run the script with sudo, to have read access on mouse raw input.

$ sudo python

Step 4: Connect Your Alarm Sensor

Just connect your alarm sensor to the blocks.

Your sensor should be passive, act as a mecanic switch, it's could be a reed switch, a microswitch, a mercury switch.

Thanks for reading.

Be the First to Share


    • Go Big Challenge

      Go Big Challenge
    • Digital Fabrication Student Design Challenge

      Digital Fabrication Student Design Challenge
    • Electronics Contest

      Electronics Contest



    7 years ago on Introduction

    project is very interesting,but i couldn't understand from where the sound comes and how to interface it with ubuntu.

    If some one helps me it would be great.


    Reply 7 years ago on Introduction


    The interfacing is done by the python script. It don't manage sound alarm yet, but it could be done using pygame lib.