This document describes how to set up a Raspberry Pi-based home automation system that allows devices to be controlled remotely over the internet. It uses a Raspberry Pi with a relay circuit to control appliances connected to it. A PHP-based web interface runs on a server and stores state in text files. A Python script on the Pi reads the text files over HTTP to control the relay and devices accordingly. Setting up the system involves preparing HTML, PHP and text files on the server, building the relay circuit, and configuring the Raspberry Pi to run the Python script to interface with the server files and control the relay.
1 of 13
Downloaded 11 times
More Related Content
Raspberry pi home automation idea
2. It is a concept where devices in our home or wherever
they are , have the capability to communicate with each
other via the internet web based using normal HTTP
protocols , you will be able to control any appliance in
your home from anywhere.
3. 1.Raspberry Pi model B with memory card preloaded with
an OS.
2.WiFi dongle .
3.USB keyboard.
4.HDMI monitor.
5.Device Controller module
6. Here,the server is the web interface consisting of buttons
and UI (User Interface) that will allow you to turn ON/OFF a
device.
It consists of PHP files, Html files and a .txt file (to store
data).
The server usually stores information regarding the button
press on the page (ON/OFF) on a .txt file.
7. his is a simple Html file called main.html ,consisting of two
buttons.
The clicking of the buttons will trigger the execution of a PHP file
called button.php.
This program serves as an API (Application Programming
Interface) to store data on to a text file called button Status.txt.
The data is a string : ON, if ON button is clicked and OFF, if
OFF button is clicked.
Thus the current button press state is recorded in the text file :
buttonStatus.txt.
8. The client side consists of a Raspberry Pi with a relay circuit
connected to its GPIO pin.
The pi runs a python program which is used to Post a url link
using urllib2.
That is, the pi constantly reads the contents of a url link.
Here, the url link is another PHP file called buttonStatus.php
This PHP file serves as an API to read the contents of the text file
buttonStatus.txt
After reading the data, the python program checks if the string
obtained is ON / OFF based on which it switches ON/OFF the
relay respectively via its GPIO pin.
9. Step 1: Preparing the html, php files
Step 2: Setting up the relay circuit for the
Raspberry Pi home automation system
Step 3: Setting up the Raspberry Pi
10. Here, the server side of the system has to be set up. If you are having your own domain, you
can use the file manager service to drop these files into your server and can be used to control
your IoT systems from anywhere around the world. The files to be put in your server are :
main.html , button.php , buttonStatus.php and buttonStatus.txt , download them from here :
DIY Hacking Raspberry Pi home automation system and extract it. The program raspbi.py is
the python program which is to be copied to your raspberry pi.If you are new to html and php ,
dont worry. This project will need only a basic understanding of the two languages, spending
some time on a few tutorials :HTML for beginners , PHP for beginners and reading the code
would be su cient. The html file consists of a basic UI with two buttons. On button press, it
triggers a PHP program which writes a string to a .txt files depending on the button pressed.The
.txt le stores information of the last button state.
However, if you dont have a domain, you can simulate a domain in your local network or wi
using a service called xampp. It is very simple, the instructions for using it are here : Xampp Web
Server Emulator Windows and Xampp Web Server Emulator Linux. Using xampp you can useyour
pc as a local web server. However, the IoT systems gets con ned to a control range limited
to your home wi network. Drop the html, php and .txt les into the /htdocs/xampp directory.
11. Step 2: Setting up the relay circuit for the Raspberry Pi home
automation system
A small relay circuit is to be made , to switch an appliance ON/OFF
12. Step 3: Setting up the Raspberry Pi
If you have a brand new raspberry pi and are looking for instructions to load the OS into the SD
card please follow this tutorial: Installing the OS for raspberry pi.The default OS used with the pi
is the raspbian.To use the GUI for pi, use the command startx in the terminal. You can use an
Edimax wi dongle for wireless connectivity, use the wi con g application in the desktop of
your pi to scan and connect to the wi network.The raspberry pi is used to continually run a
python program called raspbi.py , copy this le to your pi. Before executing this le , open the
le using nano raspbi.py and edit the line that says :
response=urllib2.urlopen(https://diyhacking.com/projects/IOTautomation/buttonStatus.php)
by replacing the link within , by your own link generated either through xampp or your own
domain.On using the command sudo python raspbi.py, it will initiate the program.
You can use the raspberry pi without a monitor by using ssh. SSH (Secure Shell) can be used to
control the pi remotely from a pc in the same home network, if you know the ip address of your
pi. Use ifcon g command on your pi to nd the ip address. Use sudo /etc/init.d/ssh start to
initiate the ssh service.Then, from a remote pc using putty software (for windows) , open the
terminal and enter the command sudo ssh ipaddress -l pi , ipaddress is replaced with the
actual ip address you obtained for the pi in the range 192.168.1.1 192.168.1.254.
13. Connect the relay circuit to the raspberry pi. You need to connect GPIO pin no : 5 and 6 (GND) to
the circuit as in the schematic. Please note: Raspberry pi uses GPIO pins 5 and 6 to get into safe
mode by shorting them together. Hence, please use any other GPIO other than 5 by editing the
python program, to prevent booting into the safe mode