Have you ever been

robbed? Are you thinking about protecting yourself before this happens? We all have in our entourage a person who has been the victim of a burglary or we have already heard about it ... A burglar who enters by the door of the garden and steal the jewels of Mom in his room, It's pretty unpleasant, isn’t it? So, this project is for you!

The protected house will allow you to limit the impact of an undesired intrusion into your home by blocking the thief in the room where he entered. Thanks to the electro-magnets, he won’t be able to progress in the house and the jewels in the mom’s room will remain in peace.

Step 1: Command Devices

Program materials will allows us to program the anti-intrusion system and the GSM transmission system. These were essentially an Arduino Mega and a Raspberry Pi 3.

o Arduino MEGA

The link to buy the Arduino: https://www.gotronic.fr/art-carte-arduino-mega-2560-12421.htm#complte_desc

The price is 39,90 €.

Other equipment to buy (not delivered with Arduino):

o A female cable

o A male cable

o A USB cable à To connect the Arduino to the Raspberry PI 3

The link to buy the cable: https://www.amazon.fr/imprimante-scanner-QUALITE-SUPERIEURE-Longueur/dp/B002JV4MMA

o Raspberry PI 3

The Raspberry is the interface between the user and the alarm system. Thanks to it, the user is able to visualize the state (open/close) of the magnetics contacts of doors and windows. It also allow the user to lock/unlock the alarm system and activate/deactivate the electromagnets room by room.

The Raspberry send orders to the Arduino to do some actions like: lock/unlock electro-magnets, activate/deactivate alarm system, …

The Raspberry is wired to the Arduino by a serial cable. It is supplied by a micro-usb cable with a 5V voltage.

The link to buy the Raspberry PI 3: https://www.gotronic.fr/art-carte-raspberry-pi3-b-1-gb-24532.htm#complte_desc

The price is 44,95 €.

o The Relay

For our project, we decided to control the electro-magnets used to lock the doors of the house thanks to some 24V relays.

For this, we retrieved eight relays from an electrical cabinet. The relays allows to separate the control part (Arduino) and the power unit.

We wired the inputs of the relays to two pins: a pin to 24V and the other to link to the mass. The outputs are wired on a 12V power supply connected to the electro-magnets.

In addition, we placed the relays on a mounting base, fixed on the model.

Practically, when a magnetic contact is in open state (a thief try to enter in the house and open a door or a window), the Arduino receive this information and supply the relays. Those activate the 12V supply of the electro-magnets and all the doors are locked.

Step 2: The Screen

Through the screen, the user can visualize all the actions made via the Rapsberry.

The screen is simply connected to the raspberry by a VGA or HDMI cable.

Step 3: Power Supply

For power supply, we used a 12 volt power supply for the electromagnets and a 24 volt for the relays. Indeed, we have connected the electromagnets to relays to control the opening and closing of the doors. On the other hand, the magnetic contacts were connected to a terminal block and then connected to the Arduino.

Step 4: The Anti-intrusion Material

The anti-intrusion material will allows to simulate realistically the operation of the system. These were essentially magnetic contacts and magnetic retainers.

o Electro-magnets

The electro-magnets are made by ourselves. We used nails, isolated with insulation strip. Then we rolled electric wire around the nails.

When electro-magnets will be supplied, they will attract a metal piece placed on the doors and lock all the access to the other rooms of the house.

The electro-magnets will be supplied with the 12V power supply.

This kind of electro-magnet is only useful if you want to create a model like us. If you want to reproduce this system at real scale, for your house, you will need real electro-magnets like this (the way to wire it to the Arduino is the same):

Example of wiring:

o The magnetic contacts :

The magnetic contacts are used to detect an intrusion through a door or a window. It’s divided in two parts:

The top part is composed by a cut wire. The bottom part is a magnet. When the two parts are near enough, the cut wire is attracted and the current is able to flow through it.

When the two parts of the magnetic contact are not near enough (a door or a window is opened by a thief), the cut wire isn’t attracted anymore so the current can’t flow.

This information is sent to the Arduino and the Rapsberry. If the intrusion is detected, the electromagnets are activated and the horn ring.

Example of wiring:

o The horn :

The horn is useful to warn the owner of the building and the neighbourhood that somebody try to enter.

The horn is connected to the Arduino by electrical wire.

Example of wiring:

Step 5: Programming

Our program is separated in 2 part, the first part is programmed on the raspberry pi and the second part on the Arduino. The main function on the raspberry pi consist to generate a graphic interface for the user. For the Arduino, it sends the states of sensors and electromagnets to the raspberry. It activate or deactivate the electromagnets.

o Raspberry

When we run the program, the interface automatically open. We see buttons, lights, and the password location.

Here is the code to create a graphic interface window and buttons, the bleu part is the action of button in the program.

fenetre = Tk()


label = Label(fenetre, text="MAIN")


bouton = Button(fenetre, text="Fermer", command=fenetre.quit)

bouton.grid(row =20, column= 4)

For the lights indicator, we generate the sub-window with indication and specific colour.

#txt1 = Label(fenetre, text ='etat capteur 1',bg ="blue")
#txt1.grid(row = 1, column = 3)

The most functions are same way, it sends a message to the Arduino, thanks to the command “Serial”.

def serialPrint6():

if text =='test':



mdpVar='veuillez entrer le MDP'

txt20 = Label(fenetre, text =mdpVar,bg ="red")

txt20.grid(row = 17, column = 4)

Code1 is a character strings, it is defined like that, in same time we position it in the interface.


entr1=Entry(fenetre, textvariable=code1)

entr1.grid(row = 18, column = 4)

The SerialRead function is more complex that the others. Indeed, it send a message to the Arduino but it receives the state of all sensors and electromagnet. These states are store in a list “capteur”.

def serialRead1():


print("début affichage")


while var<19:



Next, we change the colour of light indicator according to the state.

if capteur[1] =='1\r\n':

txt2.config(bg ="green")


txt2.config(bg ="red")

o Arduino

We begin to define the variables used in the program, the inputs, and outputs.

The first function activates all the electromagnets. The output become “high”.


The second is the reverse.


The third function, reads the all sensors state.


The fourth and fifth function, sends to the raspberry pi the state of sensors and electromagnets.




Now we are in the main loop. The Arduino wait the instruction from the Raspberry. All actions are due in a “switch case”.

To the case 0, the Arduino will deactivate all the electromagnets and the siren.

To the case 1, the Arduino will activate all the electromagnets, but if nothing sensors detect an intrusion, the electromagnets and siren are turn off. When an intrusion is detected the electromagnets and siren are turn on.

To the case 2, the Arduino will read the sensors state and sends it to the Raspberry, next it sends the electromagnets state.

To the case between 3 and 8, the Arduino will deactivates the electromagnets room by room, according in the request of the user.

To the case 9, the Arduino will deactivates the siren only.

Step 6: Smartphone Application

A smartphone application is also used as an interface

between the user and the alarm system. It plays same role than the screen but it allows to do it remotely via the wifi connection.

The user has to install Tiny VNC on his smartphone and VNC player on the raspberry.

To control remotely your raspberry, you need to install the application VNC and change some settings in Raspberry.

In first time, you need to install hostapd:

Open the command windowand tape:

Sudo apt-get update

Sudo apt-get upgrade

Be careful about this point: You need to connect your raspberry on the internet to make the updates and installations.

After a few minutes, you can install hostapd with the following command

Sudo apt-get install hostapd

You must accept the installation.

The installation take approximately 10 minutes.

Now we must manage the wireless IP:

Sudo nano /etc/dhcpcd.conf

You must write the following code at the end of the file:

Denyinterfaces wlan0

After that you must go out of the file and save settings: CTRL+C / y / enter

Now we are going to change the IP address.

Open the file with the command :

sudo nano /etc/network/interfaces

You must change the Wlan0 code to the following code

allow-hotplug wlan0

#iface wlan0 inet manual

# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

iface wlan0 inet static



you can choose your IP address but you must be careful to not use not private address.

If you use the same IP address as your computer, your internet router or other you probably will have some problem.

Save the file and restart with the following command:

Sudo service dhcpcd restart

Sudo ifdown wlan0; sudo ifup wlan0

We need to change the Hostapd settings. Therefore you must change the hostapd config.

To open the hostapd config tape :

sudo nano /etc/hostapd/hostapd.conf

The command window open a new file. You need to write the following code
















Go out of the file and don’t forget to save it.

Now we can test if Pi is connected to wi-fi

Tape the command line :

sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf

And check with your smarphone or digital tablet if Pi3-AP is online.

Tape : CTRL+C to go out of hostapd

You can see the Wi-fi of the raspberry but for now you can’t connect your smartphone with the Pi wi-fi.

We need to add some parameters therefore.

Sudo nano /etc/default/hosapd

Find the line # DAEMON_CONF = ""

Fill in the line to have : DAEMON_CONF = "/etc/hostapd/hostapd.conf"

You need to install DNSmasq

sudo apt-get install dnsmasq

That can need a little time to be installed.

Open the dnsmasq configuration file with the command :

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.org

sudo nano /etc/dnsmasq.conf

In that file you need to write this code:

interface=wlan0 # Utiliser l interface wlan0







Restart the hostapd and dnsmasq

sudo service hostapd start

sudo service dnsmasq start

Now you need to ad vnc :

open the raspberry parameters and activate the VNC and SSH interfaces:

(see picture above - In the beginning of step 6)

Now you can open the VNC application on raspberry.

You need to install VNC application on your smartphone or digital tablet.

For the first connection, you need to be connected with the Pi3-AP wi-fi, write the Ip address and other password.

If that is not so clear, look at the video in the following address.


About This Instructable




More by GeoffreyH24:The Protected House 
Add instructable to: