Professional Documents
Culture Documents
BY
V BHARATH KUMAR REDDY
13E11D5502
M.TECH 2nd YEAR
Embedded System
Abstract
Home automation is becoming more
and more popular day by day due to
its numerous advantages. This can
be achieved by local networking or
by remote control or through email.
This Project aims at designing a
basic home automation application
on Raspberry Pi through reading the
subject of E-mail
Raspberry Pi Introduction
Raspberry Pi is a credit-card-sized single
board computer developed in the UK.
Model A has 256Mb RAM, one USB port and no
network connection.
Model B+ has 512Mb RAM, 4 USB ports and an
Ethernet port and HDMI port
It has a Broadcom BCM2835 system on a chip
which includes an ARM1176JZF -S 700 MHz
processor, Video Core IV GPU, and an SD card.
Raspberry pi diagram:
Block Diagram
Laptop/PC
Raspberry Pi
WIFI
Hotspot
BUL
B
Rela
y
BUL
B
Rela
y
BUL
B
Rela
y
Arduino
Flow Chart
Turn on Raspberry pi (home
automation activated)
Email
received?
Subject =
OFF 1?
Subject
=ON1?
OFF light 2
Subject =
OFF 2?
Subject
=ON2?
ON light 2
OFF light 3
Subject =
OFF 3?
Subject
=ON3?
ON light 3
OFF light 1
Subject =
ALL OFF?
Subject =
ALL ON?
ON light 1
Software Configuration:
By using Python language on Linux
platform have to write the code. to be
saved in one file. Which in turn should
save in Raspberry file System.
By using this script we can connect to
Web by importing related packages
and conditions to be defined according
the Requirement.
Source Code
#!/usr/bin/env python
import feedparser
import smtplib
from email.mime.text import MIMEText
import serial as io
ser=io.Serial('/dev/ttyUSB0',9600)
import RPi.GPIO as GPIO ## Import GPIO
library
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
GPIO.setup(11, GPIO.OUT)
GPIO.setup(13, GPIO.OUT)
USERNAME =
"raspberry.embeddedrf@gmail.com"
PASSWORD = "raspberry123"
MAILTO =
"reddybharath637@gmail.com"
check=1
check2=1
check3=1
while 1:
response = feedparser.parse("https://" + USERNAME
+ ":" + PASSWORD +
"@mail.google.com/gmail/feed/atom")
unread_count = int(response["feed"]["fullcount"])
for i in range(0,unread_count):
#print "Unread Mail "+str(i)
a= response['items'][0].title
b= response['items'][0].summary
c=response['items'][0].author
if a.startswith("ALL ON"):
if(checkall==1):
GPIO.output(7,True)
GPIO.output(11,True)
GPIO.output(13,True)
msg = MIMEText(' ')
msg['Subject'] = 'Turning ON all lights'
msg['From'] = USERNAME
msg['To'] = MAILTO
server =
smtplib.SMTP('smtp.gmail.com:587')
server.ehlo_or_helo_if_needed()
server.starttls()
server.ehlo_or_helo_if_needed()
server.login(USERNAME,PASSWORD)
server.sendmail(USERNAME, MAILTO,
msg.as_string())
server.quit()
print "Turning ON all lights"
ser.write("7");
checkall=0
if a.startswith("ALL OFF"):
if(checkall==0):
GPIO.output(7,True)
GPIO.output(11,True)
GPIO.output(13,True)
msg = MIMEText(' ')
msg['Subject'] = 'Turning OFF all lights'
msg['From'] = USERNAME
msg['To'] = MAILTO
server =
smtplib.SMTP('smtp.gmail.com:587')
server.ehlo_or_helo_if_needed()
server.starttls()
server.ehlo_or_helo_if_needed()
server.login(USERNAME,PASSWORD)
server.sendmail(USERNAME, MAILTO,
msg.as_string())
server.quit()
print "Turning OFF all lights"
ser.write("8");
checkall=1
if a.startswith("ON1"):
if(check==1):
GPIO.output(7,True)
msg = MIMEText(' ')
msg['Subject'] = 'Turning ON1'
msg['From'] = USERNAME
msg['To'] = MAILTO
server =
smtplib.SMTP('smtp.gmail.com:587')
server.ehlo_or_helo_if_needed()
server.starttls()
server.ehlo_or_helo_if_needed()
server.login(USERNAME,PASSWORD)
server.sendmail(USERNAME, MAILTO,
msg.as_string())
server.quit()
print "Light 1 is on"
ser.write("1");
check=0
if a.startswith("ON2"):
if(check2==1):
GPIO.output(11,True)
msg = MIMEText(' ')
msg['Subject'] = 'Turning ON2'
msg['From'] = USERNAME
msg['To'] = MAILTO
server =
smtplib.SMTP('smtp.gmail.com:587')
server.ehlo_or_helo_if_needed()
server.starttls()
server.ehlo_or_helo_if_needed()
server.login(USERNAME,PASSWORD)
server.sendmail(USERNAME, MAILTO,
msg.as_string())
server.quit()
print "Light 2 is on"
ser.write("3");
check2=0
if a.startswith("OFF2"):
if(check2==0):
GPIO.output(11,False)
msg = MIMEText(' ')
msg['Subject'] = 'Turning OFF2'
msg['From'] = USERNAME
msg['To'] = MAILTO
server =
smtplib.SMTP('smtp.gmail.com:587')
server.ehlo_or_helo_if_needed()
server.starttls()
server.ehlo_or_helo_if_needed()
server.login(USERNAME,PASSWORD)
server.sendmail(USERNAME, MAILTO,
msg.as_string())
server.quit()
print "Light 2 is OFF"
ser.write("4");
check2=1
Arduino Code:
Void setup()
{
Serial.begin(9600);
Pinmode(8,output);
Pinmode(9,output);
}
Void loop()
{
If(serial.available())
{
a=serial.read()
If (a=1)
{
digital.write(8,HIGH);
}
If(a=2)
{
Digital.write(8,low):
}
}
}
etc . Will keep passing some
digit which will in turn controls the swithing
Result Check:
1. Login Into Any mail Id
2. Send the mail to
Raspberry.embeddedrf@gmail.com by
mentioning subject of email Like
ON1,OFF1,ON2,OFF2
3. We can check the status of Lights in the Kit
4. And also we can get Acknowledgement to
the mail which we have provided in the
source code.
5. This can be verified by login into provided
mail where we can get the
Acknowledgement Like: LIGHT ONE IS
OFF,LIGHT ONE IS ON .etc.
Working experimental
setup
Results
Acknowledgement
Advantages:
Thank You