Project showcase
ThiDom Home Automation

ThiDom Home Automation © GPL3+

This project uses Arduino, Raspberry and Attiny, it allows you to control and monitor your home.

  • 35 respects

Components and supplies

Necessary tools and machines

09507 01
Soldering iron (generic)

Apps and online services

About this project

This project uses Arduino, Raspberry and Attiny, it allows you to control nd monitor your home (AC outlet, shutters, heater, light, opening detector, temperature ...).

The Raspberry is the web server allowing control all Arduino. These can be controlled from any web browser around the world. You can use your cell phone, tablet, or computer to turn on or off the outputs.

Arduino Network is a Mesh Network.

If you like this, Please vote in the competitions - top right - Thank here.

Parts List

Many parts I used were salvaged from old electronics, It is possible to find them at a low price

  • 1 Raspberry Pi 1 B+ ~ $39.95
  • 1 Arduino ~ $7.41
  • 1 Reed Switch ~ $1.10
  • 1 RF 433 Mhz ~$1.3
  • 1 relayTemperature sensor ( sample )
  • 3 NRF24L01


I have write all program, Raspberry (web server, Python) and Arduino which allows me:

  • Manage all rooms in the house
  • Manage Arduino module
  • Manage planning for execute action automatic
  • Create scenario
  • Manage user
  • Have Log

Python scripts allow:

  • Execute plannings
  • Execute scenarios

The Raspberry is used like web server for the home automation and like Media center with Kodi. I started my project by decoding the frame of an outdoor temperature sensor (433 Mhz). Next I developed the web interface (100% responsive).


The communication happens between Raspberry and Arduino:

  • An Arduino (master) (which allows to communicate with all the modules) is connected in USB to the Raspberry which allows to record the information received by the Arduino.
  • This master allows me to recover the temperature of the room in which it is both to light on/off light and communicate with the rest of Arduino.
  • The other arduino's, communicate with the master using module nrf24l01 +, retrieve the temperature of all the rooms, manage the lamps, know if the mailman has deposited mail, know when someone sounds, if someone crossed the portal, ...
  • Using the module nrf24l01 +, I was able to set up a network of mesh type which allows an arduino even remote from the master to be able to communicate with him, by way of the arduino that is between them.

Inside Box

Inside box we find:

  • 1 Raspberry (web server and kodi)
  • 1 Arduino Uno
  • 1 NRF24L01+
  • 1 RF 433Mhz
  • 1 Hub USB
  • 1 HDD
  • 1 Relai
  • 1 Temperature sensor

NRF24L01 And RF 433 Mhz Module

Module to recover the state of the doorbell

Relay (12V) made concat when someone rings, the Arduino sends this action to Master and it's view on the web site. Many action is possible with the scenario system.

Here I have used:

  • 1 Arduino Uno
  • 1 Relay
  • 1 NRF24L01

MailBox Module

This module functions as an opening sensor. When mail is inserted a contact is made.

Here I have used:

  • 1 Trustfire de 3.7v 900 Mh
  • 1 Switch Reed $
  • 1 Attiny84
  • 1 Resistor
  • 1 Capacitor
  • 1 NRF24L01+

Price : $3

Arduino Bell

This bell ring when the first doorbell ring.

When doorbell ring, the master receive the action and with the scenario system and order is send to the bell for ring.

Web Interface

Home page with all module, when the user click on icons an action is send to the raspberry who send to the master with the USB and sent to the right module.

Graph history

All data is stored in the database, which allows me to draw graphs of different data.


It's possible to manage planning for all Arduino module sensors.

Manage Sensors/Module:

Manage scenario

Example of scenario who send notification on my smartphone (Android app developed by myself) when Temperature is between 0° and 3° or when Temperature is less 0°.

Show Log

It's possible to see all logs.

Example of network communication:

You can see my blog for more information (it's in french, you can translate with Google):


Opening detectorArduino
#include <RF24Network.h>
#include <RF24.h>
#include <PinChangeInterrupt.h> 
#include <init_variable_attiny.h>
#include "check_btn.h"

const byte this_node = 1;
const byte other_node = 0;

void setup() { 
	pinMode(csn_pin, OUTPUT); 
	network.begin(95, this_node);

void check_btn(void)
  detectchange = true; 

void loop() {   
	if (detectchange) {    
		detectchange = false; 


Opening detector
Schema aqzjhgzhuv


Similar projects you might like

Android App-Based Home Automation System Using IOT

Project tutorial by Team Autoshack

  • 174 respects

Octopod: Smart IoT Home/Industry Automation Project

Project tutorial by Saksham Bhutani

  • 56 respects

Smart Home Automation

by Team Kamakshi's Smart Team

  • 20 respects

HBus Home Automation And Artik

Project tutorial by Vincenzo

  • 6 respects

Home Automation Control Panel

Project in progress by Jay

  • 148 respects

Complex Signs Recognition & Person Counter for Automation

Project in progress by Jean Perardel

  • 13 respects
Add projectSign up / Login