26
Application of Android and Raspberry Pi for Home Automation A Project Report presented to the Department of Computer Science and Engineering, Jahangirnagar University In partial fulfillment of the requirements for the degree of M.Sc. in Computer Science and Engineering Submitted by Farhan Ar Rafi Exam Roll: 201701018 Session: 2017-2018 Supervised by Prof. Dr. Mohammad Hanif Ali Professor, Department of CSE Jahangirnagar University DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING JAHANGIRNAGAR UNIVERSITY MARCH 2018

Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

1

Application of Android and Raspberry Pi for Home

Automation

A Project Report presented to the

Department of Computer Science and Engineering, Jahangirnagar University

In partial fulfillment of the requirements for the degree of

M.Sc. in Computer Science and Engineering

Submitted by

Farhan Ar Rafi

Exam Roll: 201701018

Session: 2017-2018

Supervised by

Prof. Dr. Mohammad Hanif Ali

Professor, Department of CSE

Jahangirnagar University

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

JAHANGIRNAGAR UNIVERSITY

MARCH 2018

Page 2: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

2

Abstract

Home Automation can be used to automate various activities in home and office by interfacing

with traditional electrical and mechanical devices. Using Raspberry Pi for home automation has

numerous advantages such as low power consumption, low cost and powerful hardware with a

very small footprint. In this project we are proposing a system to intuitively control and monitor

electrical components at home or office using a real time control system using Raspberry Pi and

Android. The proposed system can effectively reduce waste of energy, save cost and add

convenience to daily life. The system uses an Android application as the user interface and the

Raspberry PI is used to control and monitor electrical components via GPIO pins. The system is

inexpensive, secure, easy to implement and uses open-source technologies.

Page 3: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

3

Declaration

The research work entitled “Application of Android and Raspberry Pi for Home Automation”

has been carried out in the Department of Computer Science and Engineering, Jahangirnagar

University is original and conforms the regulations of this University.

I understand the University’s policy on plagiarism and declare that no part of this project has

been copied from other sources or been previously submitted elsewhere for the award of any

degree or diploma.

Author:

_________________________

Farhan Ar Rafi

Roll – 201701018

13th

Batch, PMSCS

Jahangirnagar University

Approved by supervisor:

__________________________

Dr. Mohammad Hanif Ali

Professor

Department of CSE

Jahangirnagar University

Page 4: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

4

Approval of Acceptance

A project report written by Farhan Ar Rafi, ID: 201701018 entitled “Application of Android

and Raspberry Pi for Home Automation” is submitted to PMSCS Program, Department of

Computer Science and Engineering of Jahangirnagar University in partial fulfillment of the

requirements for the degree of Master of Science in Computer Science. This project has been

prepared under the supervision of Dr. Mohammad Hanif Ali, Professor, Department of Computer

Science and Engineering, Jahangirnagar University.

We examined this report and recommend its acceptance.

_______________________________

Dr. Mohammad Hanif Ali

Supervisor and 1st Examiner

Department of CSE

Jahangirnagar University

________________________________

Md. Abul Kalam Azad

2nd

Examiner

Department of CSE

Jahangirnagar University

Accepted By:

________________________________

Liton Jude Rozario

Professor and Coordinator

PMSCS Program – 2017

Department of CSE

Jahangirnagar University

Page 5: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

5

Acknowledgement

I sincerely thank the University to allow me the opportunity to take this research-project that has

enforced me to learn many new and interesting things. Through this project I have had the

opportunity to get myself acquainted with new dimensions of computer science. I also have had

the experience of preparing, developing and managing software project within a limited

timeframe.

I also thank my supervisor, teacher and guide Dr. Mohammad Hanif Ali for his guidance and

immense support throughout the project. His excellent guidance has allowed me to complete the

project successfully within the time limit.

Lastly, I thank my family for proving me support throughout my post-graduation studies.

Page 6: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

6

Contents

Abstract ........................................................................................................................................... 2

Declaration ...................................................................................................................................... 3

Approval of Acceptance ................................................................................................................. 4

Acknowledgement .......................................................................................................................... 5

Contents .......................................................................................................................................... 6

List of Figures ................................................................................................................................. 8

Introduction ..................................................................................................................................... 9

Background Motivation .............................................................................................................. 9

Objective ..................................................................................................................................... 9

Research Problem ....................................................................................................................... 9

Contribution .............................................................................................................................. 10

Project Organization ................................................................................................................. 10

Literature Review.......................................................................................................................... 11

System Design .............................................................................................................................. 12

Overview ................................................................................................................................... 12

Component Details.................................................................................................................... 13

Raspberry PI.......................................................................................................................... 13

Android Application ............................................................................................................. 15

Firebase ................................................................................................................................. 15

Communication Design ............................................................................................................ 16

System Implementation ................................................................................................................ 18

Server Implementation in Raspberry Pi .................................................................................... 18

Android Implementation ........................................................................................................... 19

Page 7: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

7

Cloud (Firebase) Configuration ................................................................................................ 20

Circuit Implementation ............................................................................................................. 21

Limitations .................................................................................................................................... 22

Future Work .................................................................................................................................. 23

Conclusion .................................................................................................................................... 24

References ..................................................................................................................................... 25

Appendix A: Source Code ............................................................................................................ 26

Page 8: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

8

List of Figures

Figure 1: A Raspberry Pi 3 Model B, used in the project. ............................................................ 13

Figure 2: Android Application for Monitoring and Control ......................................................... 15

Figure 3: The communication flow diagram of the system .......................................................... 16

Figure 4: Data transfer between Raspberry Pi and Firebase ......................................................... 18

Figure 5: Data Transfer between Android Application and Firebase ........................................... 19

Figure 6 : Circuit configuration for one light and one switch ....................................................... 21

Page 9: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

9

Introduction

Background Motivation

Research on Home Automation devices have been going on for quite some time. These research

have produced smart thermostats, switches and wireless controllable lights like Philips Hue. But

these devices are mostly out of reach of the general population mainly because of its high cost.

Introduction these smart electrical lights, switches have enabled us to control electrical

appliances through our phones. These are low cost devices that can be used to control various

electronics that have built-in microcontrollers and wireless connectivity. But sadly, traditional

electronics do not contain either microcontrollers, nor have wireless capabilities.

Our solution enables users control to everyday electronics just adding some additional simple

components to their existing electronic switches and controls through Android phones.

Objective

The objective of this project is to provide a design or pattern that can be used to implement real-

time remote control on everyday electronics. The goal of this project is to implement real-time

control of home appliances and other electrical components through Mobile Phones.

Research Problem

The problem is that, to use the existing solutions, users need to buy expensive electronics which

often include single use lights and socket adapters with built in wireless connectivity which

needs to be thrown out after it fuses or breaks down .

In case of switches, users need to replace switches with expensive ones to gain the ability to

control them wirelessly. In case of sockets, users need to add additional sockets over wall

sockets and it does not provide individual control over each device connected via the socket.

Page 10: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

10

Contribution

This project contributes to the IOT ecosystem in the sub-division of Home Automation. This

project and its implementation shows a unique way to easily implement real-time monitoring of

home appliances. It also shows how to implement a robust, rigid and secure home control and

monitoring system using open-source software and simple and inexpensive hardware without

replacing existing electrical components.

Project Organization

The paper follows a very common organization pattern. The first part starts with the introduction

of the project. The second part describes over related work in the same field. The system model

has been described in the third part containing description of different components of the system.

The fourth part describes the system in action or the system implementation including the

implementation and features of Android application, Raspberry Pi and Firebase web service. The

technical and non-technical limitations are described in in the fifth part. The paper concludes

with hints of future expansion ideas and pathways and lastly, a short conclusion. Additional

system diagrams, illustrations and code samples are added as appendix.

Page 11: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

11

Literature Review

There has been work on developing various systems to provide remote control of home

appliances using various combination of Raspberry Pi and Mobile or Web Applications. One

such system provides remote control of home appliances and security against intrusion when the

home host is not at home(Bhagyalakshmi & Aravinda, 2015a). Another implementation uses a

webserver via laptop/desktop to send commands to a raspberry pi which in turn controls

electrical components (Saxena, Gupta, Varshney, Singh, & Kumari, 2016). Another paper

proposed similar system using Raspberry Pi that can be controlled via Web browser(Patel, Jajal,

& Dixita, 2015).

Arduino based system using Android phone as a controller has also been proposed. The system

uses Arduino to control electrical components and uses Android application for remote

access(Piyare, 2013). SMS based home automation system using GSM technology has also been

proposed where the system can be controlled via a web GUI system(Bhagyalakshmi & Aravinda,

2015b). A method of controlling and monitoring appliances using voice commands via Android

Phone. The system has proposed Bluetooth as the connection protocol(Pandya, Mehta, & Jain,

2016).

Page 12: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

12

System Design

Overview

The designed system is comprised of several pieces. The main part or the controller is a

Raspberry Pi based Node.js client which is connected to the internet and is the only interface to

connect to the system. It is also the core processing system for all connected electrical

components. It is connected to several electrical components via Wi-Fi based microcontrollers

which will be setup in each of the socket boards in the premise.

The second part is the Android Application based Graphical User Interface for remote operation

and control, which can also be used to configure new and existing electrical components.

The third part is a firebase account which acts as the main database and manages the

synchronization of data from the Raspberry Client and Android application.

Page 13: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

13

Component Details

Raspberry PI

Figure 1: A Raspberry Pi 3 Model B, used in the project.

The Raspberry Pi (Raspberry Pi Foundation, n.d.) is a credit-card-sized computer developed by

Raspberry Pi Foundation, a UK-based charity. A Raspberry PI can be used in electronics projects

and used like a computer to run software like spreadsheets, word processors, internet browsers

and games.

Raspberry PI 3 Model B is used as the home client system. The system has a Quad Core 1.2GHz

Broadcom BCM2837 64bit CPU, 1GB RAM, BCM43438 wireless LAN and Bluetooth Low

Energy. A Node.js based web server acts as the home client and is connected directly to the

internet. Firebase enables the raspberry to send status updates and receive commands in real-

time. The GPIO pins on the raspberry pi can be used directly to control electrical equipment via

relays. Or it can be used to control additional microcontroller, setup in switch boards to connect

to other electrical components. The Raspberry PI used in this project has the following

specifications:

Quad Core 1.2GHz Broadcom BCM2837 64bit CPU

1GB RAM

BCM43438 wireless LAN and Bluetooth Low Energy (BLE) on board

Page 14: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

14

40-pin extended GPIO

4 USB 2 ports

4 Pole stereo output and composite video port

Full size HDMI

CSI camera port for connecting a Raspberry Pi camera

DSI display port for connecting a Raspberry Pi touchscreen display

Micro SD port for loading your operating system and storing data

Upgraded switched Micro USB power source up to 2.5A

Page 15: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

15

Android Application

The android application has an interactive UI which shows all connected electrical equipment

and appliances. It shows the present status (or last updated status during internet connection) of

all equipment. It allows the user to turn on or switch off an appliance.

Firebase

Firebase Real-time Database (Google, 2011a) is a product of Google which can be used for real-

time data storage and data synchronization. It is used as the primary data storage system.

Relevant firebase features include:

Real-time Synchronization: Firebase SDKs sync data almost instantly.

Offline data access: Firebase provides offline support using an on-device database. This

local database enables the systems to function smoothly, when network connection is not

available.

Enables serverless development: Firebase takes care of the complex authentication and

networking process. A powerful set of security rules are used to control access to data.

Security rules let controlling which users can access which data and applying complex

validation logic to data.

Figure 2: Android Application for Monitoring and Control

Page 16: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

16

Communication Design

The application communicates with each other via a secure HTTP or HTTPS connection. Tokens

are used to authenticate all data sent and received at each request, to ensure security. The local

server or Raspberry Pi client needs to be connected to the internet for real-time status updates or

remote monitoring and control.

The Android application sends all queries and receives data to and from the firebase server. So,

the Android application needs to be connected to be internet for getting updates and for remotely

controlling electrical equipment.

A graphical diagram is shown below to depict the whole communication flow.

Figure 3: The communication flow diagram of the system

Commands

from User

Send update

command

Send Status

Change

Status

Updates

Page 17: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

17

The components communicate with each other using JSON data via firebase. The webserver on

raspberry does not accept data from any other source except for Firebase. As all data is passed

via firebase and all authentication is managed by firebase, the system can be considered very

secure.

Page 18: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

18

System Implementation

Server Implementation in Raspberry Pi

The raspberry Pi needs to be booted with the default raspberry pi operating system. Some

additional libraries like Firebase, onoff (Cooke, n.d.) is need for the system to work. The pi

needs to be connected to the internet for the system to be able to be controlled remotely. The user

token needs to be added to the firebase library configuration for the user to be able to control via

Android application. The local webserver for raspberry pi is built using Node.js (Joyent Inc,

n.d.), which is a JavaScript runtime built on Chrome's V8 JavaScript engine. Express.js (Node.js

Foundation, n.d.) has been used as the framework to organize code and manage additional

features. The server software also monitors for any change in the system and updates status in

real-time.

Figure 4: Data transfer between Raspberry Pi and Firebase

The Node.js server developed into the Raspberry Pi, synchronizes any changes made to

components with firebase. Firebase also pushes any update as soon as it receives from the

Android application.

Page 19: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

19

Android Implementation

The Android Application has been built using Firebase. The application provides features to

control, monitor and add new equipment. The user has to login into the application and after

logging in, the app loads the user’s electronic components’ list along with details and status. The

user then can view and change status of components.

Figure 5: Data Transfer between Android Application and Firebase

The Android application requests for updated data from Firebase at application startup. Any

changes made to components is delivered by Firebase and the update can be viewed almost

instantaneously.

Page 20: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

20

Cloud (Firebase) Configuration

Firebase has been used as the main database for both the Android Application and the Raspberry

Server. Firebase Realtime Database is a cloud-hosted database. Data is stored as JSON and

synchronized in real time to every connected client. All of the clients share one Real time

Database instance and automatically receive updates with the newest data(Google, 2011b). The

database maintains information of users and electronic components. Access is limited to

authenticated users only. Every user has access to own data only. A sample dataset is shown

below.

{ "components" : [ { "description" : "Reading Light", "id" : "1001", "name" : "Light", "status" : true, "type" : "light" }, { "description" : "Tube Light", "id" : "1002", "name" : "Light", "status" : false, "type" : "light" } ] }

Each component is identified with the unique id. The status is updated dynamically based on

component updates or changes made by user.

Page 21: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

21

Circuit Implementation

The circuit has been implemented for demonstration.

Figure 6 : Circuit configuration for one light and one switch

The circuit shows the connection for a light and a switch. The light can be controlled using the

Android Application and the switch can be used to toggle the light and update the Android

Application.

Page 22: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

22

Limitations

The current technological limitations limit the ability to control all and any types of appliances.

Since for our home and office appliances do not have built in micro controllers, controlling these

electronic equipment cannot be possible. We can only turn on or off most of the appliances.

Home Automation Systems often have door locks, thermostats and other devices that, is if

abused my cause life threatening situations or cause huge damage to property. Since these home

automation systems are mostly wirelessly connected, security is the biggest risk. Research on

Security for IOT systems such as Home Automation System is undergoing. Still much research

is needed for complete security of these systems.

Non-technical limitations include slow comprehension of Smart and Automated Equipment.

Besides these, people are usually reluctant to steep changes. Acceptance of Smart Home systems

my take some more years.

Page 23: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

23

Future Work

The current project can be extended in various ways. One possible direction would be to

integrate voice interface to the system so that the system can be operated using voice only. One

such solution would be to integrate Alexa Voice Service(Amazon.com, n.d.) by Amazon.com,

Inc. After integrating with Alexa Voice Service, the system can be operated using Amazon Echo

Devices and other devices that have implemented the service. Control of electronic components

operated by voice would be a marvelous solution for physically disabled people.

Another possible extension could be the implementation of automation in factories and

manufacturing plants.

Page 24: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

24

Conclusion

Due to recent technological advancements, home automation systems will be soon in widespread

use. One of the main issues that resist us from automating our home is the expensive cost of

these smart equipment. Our designed system is a low cost alternative of the traditional home

automation systems available in the market. We have designed a system that is developed using

open source software and uses low cost hardware.

Page 25: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

25

References

Amazon.com, I. (n.d.). Alexa Voice Service (AVS). Retrieved from

https://developer.amazon.com/alexa-voice-service

Bhagyalakshmi, P., & Aravinda, N. L. (2015a). Raspberry PI And Wifi Based Home

Automation. In International Journal of Engineering Research and Applications (Vol. 11,

pp. 57–60). https://doi.org/10.9790/2834-1103032530

Bhagyalakshmi, P., & Aravinda, N. L. (2015b). Raspberry PI And Wifi Based Home

Automation. In International Journal of Engineering Research and Applications (pp. 57–

60). https://doi.org/10.9790/2834-1103032530

Cooke, B. (n.d.). onoff. Retrieved from https://github.com/fivdi/onoff

Google. (2011a). Firebase Realtime Database.

Google. (2011b). Firebase Realtime Database. Retrieved from

https://firebase.google.com/products/realtime-database/

Joyent Inc. (n.d.). Node.js. Retrieved from https://nodejs.org/en/

Node.js Foundation. (n.d.). Express - Node.js web application framework. Retrieved March 9,

2018, from https://expressjs.com/

Pandya, B., Mehta, M., & Jain, N. (2016). Android Based Home Automation System Using

Bluetooth & Voice Command, 3–5.

Patel, M. M., Jajal, M. A., & Dixita, B. (2015). Home automation using Raspberry Pi, 2(3), 79–

82. Retrieved from

http://ijiere.com/(X(1)S(rfsubrmlhygnnj3sckud21e4))/FinalPaper/FinalPaper201532874046

379.pdf

Piyare, R. (2013). Internet of Things : Ubiquitous Home Control and Monitoring System using

Android based Smart Phone. International Journal of Internet of Things, 2(1), 5–11.

https://doi.org/10.5923/j.ijit.20130201.02

Raspberry Pi Foundation. (n.d.). Raspberry Pi - Teach, Learn, and Make with Raspberry Pi.

Retrieved March 9, 2018, from https://www.raspberrypi.org/

Saxena, S., Gupta, R., Varshney, S., Singh, S. P., & Kumari, S. (2016). Internet of Things based

Home Automation using Raspberry PI. International Journal of Engineering Science and

Computing, 6(4), 3849–3851. https://doi.org/10.4010/2016.891

Page 26: Application of Android and Raspberry Pi for Home Automation · Android. The proposed system can effectively reduce waste of energy, save cost and add convenience to daily life. The

26

Appendix A: Source Code

All the source code for the system has been released as open source on Github under MIT

License.

The links for the source code are as follows:

The source code for the Android Application:

https://github.com/farhanarrafi/picontroller-android

The source code for Raspberry Pi::

https://github.com/farhanarrafi/pi-node