You are on page 1of 26

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 1

Literature Review
Homes
Today, homes are places of comfort and safety that allow people to relax after a long day of
work and get a good nights sleep. The homes of today are filled with comfortable furniture, lights, and
appliances that make sure the house works. Although homes today are efficient and do their job well,
they could become more efficient and do their jobs better. The homes of tomorrow will optimize home
security and comfort. These homes will be better, smarter, and more connected. These homes will be
smart homes.

A Smarter Home
Smart homes and smart home devices are revolutionizing how homes today are viewed. Smart
homes are houses that can be controlled by the touch of a button. All of the appliances in these homes
are connected through one hub, and the system can be controlled with one app. These systems have
many capabilities involving home automation and controlling things from outside of the house. These
homes use a host of technologies to connect the devices from electrical wires to wireless networking.
The appliances that can be connected to the system are countless because almost every device is
connected to the homes electrical grid or wireless network. Some companies have even started
tailoring their products to smart home owners by building smart home capabilities into their devices.
There are other companies that sell hubs and applications that will connect all of the devices and
monitor the system. Smart homes are changing the way homes work.

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 2

Figure 1: A Smarter, More Connected Home (Tien-Spalding, n.d.)

The Purpose of the Smart Home


Smart homes were created to make homes more comfortable and secure, for a more
reasonable price. The smart home audience is everyone, but depending on the need and sensors it can
have a multitude of specific purposes. The smart home concept can be applied in houses and
apartments, because the sensors that are used can be placed in a variety of places. These sensors can
range from motion detectors to thermostats. One of the main purposes of the smart home is to save
energy. Another reason for the smart home is to assist elderly or handicapped people with daily
activities. One last intent is to make a home more convenient so that the user can change the whole
dynamic of their home with a single finger.

An Eco-Smart Home
The smart home can be used to save energy in a variety of ways. The smart home can be
automated so that appliances are turned off when they are not being used. This also applies to the

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 3

heating of a house. Some of these smart home systems will lower the heat if it does not detect anyone
in the house and will raise it when it detects someone nearing the house. Homes consume enormous
quantities of energy. Smart homes can help reduce the energy that homes use whether or not that
energy is from heating and cooling or appliances and electronics.

Figure 2: These diagrams show the shift in energy consumptions in homes from heating to appliances and electronics (Energy [Image], 2013).

The smart home can be used to impact both a houses heating and appliances, but this
technology has a greater impact on the appliances. Smart homes can change the temperature
depending on the inhabitance of the home, but the home must be warm enough that it can be warmed
up quickly when the inhabitants are on their way back home. Smart homes can turn on and off
electronics, appliances, and lighting without any real repercussions if the inhabitants are not there.

A Helpful Home
Another big reason smart homes are being developed is for the possibilities it unlocks in terms
of assisted living. In recent years advances in health and social care have increased the life expectancy of
people (Morris, 2013). Almost 7% of the worlds population is now over 65 years old and by 2050 that
percentage is predicted to raise to 20%. Smart home technologies allow older people to live in their lives
longer in their own homes rather than any costly assisted living establishments. Smart homes will have

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 4

capabilities to notify others if the occupants fall or trip inside of the house and are having trouble of
some sort. The house could also notify the occupant of any pills they need to take or appointments that
they have. The smart home has the ability to maximize the quality of life while reducing the stress on
health-care facilities and resources. The smart homes ability to adapt depending on the sensors
supports the multiple needs of the elderly and handicapped as well. While the smart home could do
great things for the elderly it would have to be tailored to their specific needs, and adapted to consider a
series of problems. This systems would have to be thoroughly tested so that it would not fail in an
emergency, give the occupant incorrect information, or be too difficult to use.

Smart Home Superiority


Smart Homes have several purposes, all of which improve upon the homes of past. Smart homes
are superior to regular homes for many reasons, specifically because they make homes more
comfortable and convenient. One product (Smart Things) indicates that with a series of sensors and
common appliances there are many ways that homes can be improved. Smart homes can protect your
family and property, while saving money and energy (9 ways, 2015). With a smart home doors can be
locked and unlocked when nearing or leaving the house. With smart homes there is no need for keys or
locksmiths because the door will open whenever it is commanded to because all smart phones have GPS
sensors in them that register with the system.
In smart homes the lights can be automated and controlled from anywhere. Regular lights
account for 30% of the energy consumption that a house has, but smart lights that are completely
automated light greatly reduces the energy consumption. The lights are only turned on when someone
is in the room which saves money and energy.
Smart homes help save money on energy bills, because by automatically adjusting the
thermostat to heat or cool less while no one is in the house, much less energy is used. This can also be
applied beyond the thermostat, by powering appliances only when people are interacting with them.

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 5

Smart homes also provide easy and affordable security with the variety of sensors that can be
paired together in the system. A smart home can lock and unlock doors from anywhere, trigger a siren if
unexpected motion is detected, notify the user if doors or windows open at unusual times. The smart
home systems app gets every notification and allows the user to observe what occurs, expected or
unexpected, in the house through the app. Sensors can detect entry through windows and doors and
alert the user of the event.
Smart homes can prevent small leaks form causing disasters, by sensing a water leak when it
starts and notifying the user before the leak can do any real damage. The average cost to repair home
water damage throughout the country is $2,476, according to HomeAdvisor.com. Minor leaks can
become major problems very quickly which is why smart homes can notify the user if there is any water
where it should not be.
Smart homes keep track of what happens in and around the house which means that the user
can stay connected with his or her family. If the user wants to know when the rest of the family arrived
or left the house he or she can easily find out using the app. Users of smart homes know when kids
come home from school each day, when cars arrive in the driveway, and when pets unexpectedly leave
the house.
Smart homes can protect your children from getting into trouble in the house by notifying the
user if the children get into a space that is dangerous for them. Smart home systems can send the user
immediate alerts if children open cleaning supply cabinets, medicine drawers, or gun cases. These alerts
can help the user keep his family safe by keeping a second set of eyes on curious children.
Smart homes can assure the security of the house by detecting open doors, like the garage door,
and then close them. If the garage door is left open, people could not only take items from the garage,
but also possibly get into the house. Smart homes can prevent people from breaking into the house
through the garage and the sensors used to detect this can be used for additional security purposes. The

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 6

garage can also be opened and closed manually using the systems app. Smart homes show the future of
housing and comfort, replacing the homes of today with the improved homes of tomorrow.

Levels of Intelligence
Similar to regular homes, smart homes have varying types or levels of intelligence. Smart homes
fall into one of five classes (Bierhoff, 2007). The first level is homes that contain intelligent objects. This
does not mean that any of the smart devices are actually doing anything. It just means that those
devices are there. The next level is homes that have intelligent, communicating devices. This means that
the smart devices are connected and are able to exchange information. The third class is connected
homes. The big step in this stage I that the devices can now be controlled from inside and outside of the
home. The fourth class is homes that learn and record the activities happening in the home. This type of
home anticipates the needs of the user and controls the home accordingly. The final class is the
attentive home. This home is reactivity to the events inside and outside of the house regarding people.
An attentive home is the most convenient and is triggered by what people do in relation to the house.

Smart Space
Smart Homes change the way certain spaces are viewed and used. Smart homes are often
referred to as aware, changeable homes, because they adapt to the people living in them (Bierhoff,
2007). The term ambient intelligence is attributed to smart homes and is defined as a digital space that
is adaptive, sensitive, and responsive to the presence of people. Both ambient intelligent and virtual
space are combined in physical space to create a smart home environment (Allameh, 2012). Virtual
space consists of objects that are connected to and support information networks, such as social
networking, tele-shopping, tele-working, and tele-learning. Physical space is the traditional space where
people walk and talk with their own bodies. There are many technologies that are allowing these spaces
to overlap with each other, like the smart kitchen table. This table would change the entire dynamic of
the kitchen making it more social, convenient, and integrated. The table would have a touch screen

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 7

surface which would allow the size and temperature of the hot zones to fit whatever was being cooked,
in addition to allowing internet surfing. Other appliances in the house could be controlled from the table
and the table would react to and help the user. In addition to the smart kitchen table other technologies
have been suggested like the smart wall, a combination of computer and TV integrated into a wall, and
other types of smart furniture that reacts to the user and their preferences.

Figure 3: This is the smart kitchen table which is a concept that Philips has unveiled when showing off green tech prototypes ([The Smart
Kitchen Table], 2008).

Smart Home Capabilities


Smart homes introduce countless opportunities to modify and improve homes so that the
homes are personalized for people. Smart homes connect a variety devices in a system, opening a series
of opportunities for how the home is used. Smart homes are good at taking mundane tasks and making
them more convenient for people (Edmonds, 2008). Smart homes allow people to light a path for
nighttime bathroom trips, unlock doors as they are approached, set a schedule for certain events to
occur, like the feeding of pets. Smart homes that have LED lightbulbs can change the whole mood of a

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 8

room by changing the colors of the light. Smart homes can also have programming that dictates when
children can watch television, when the bedroom should be warmed up just before the inhabitants
wake up, and when to turn on a coffee maker during the morning. Although there are many obvious
ways to use smart homes, there are actually an infinite number of ways to use a smart home because of
all the ways a system can be configured.

Smart Home Systems


Smart homes are only as smart as the systems that they house. There are two ways that smart
home systems are integrated into a home. Smart home systems can be built in to the home so that they
are actually a part of the building or they can be added to an existing home. Smart home systems that
are a part of the house tend to be on the more expensive side because they require more work to
install. Smart home systems that are introduced into the home are less expensive because they do not
require as much installation. Built in smart home systems are explicitly designed for a certain house,
while regular smart home systems work in a wide array of different homes.

Built in Systems
There are many examples of in-home systems like one of the many homes that Bill Gates owns
(Edmonds, 2008). In this smart home as people walk through rooms the lights ahead of them light up
while the ones behind fade. The users favorite songs will also follow them through the house, as well as
the television show that they may have been watching in another room. Each user also has an
identifying marker that lets the system know who they are and their preferences. The system learns
from the user and even knows how to compromise between two users preferences. Although this is only
one in-home smart home system it shows how this type of smart home is unique and truly tailored to
the home and its inhabitants.

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 9

Adaptable Systems
There are even more examples of systems that can be bought and introduced to a home. One of
the big differences between these two types of smart home systems is that the adaptable systems can
be changed. The sensors can be moved, the system can be totally reprogrammed or changed, whereas
in a built-in system everything is already set. These adaptable systems are much more common and are
actually sold commercially, whereas someone would have to actually search for an architect or builder
to get an in-home system. There are many different brands of adaptable smart home systems, but the
main systems follow one of three main formats. These formats are a system that includes a hub,
sensors, and app to control the automation, Smart Things, a system that learns from its users, Nest, and
a system that comes with an assortment of parts that can be used with almost any appliances, Belkin
WeMo.

Smart Things
Smart Things is an example of an average smart home system that can be introduced into a
home. SmartThings has easy-to-install sensors that can be interchanged to create a variety of new and
different smart homes (Crist, 2013). SmartThings is less expensive than other leading products and does
not charge additional fees every month. Although SmartThings is fairly good, it has room for
improvement in terms of range and a succinct app to control the whole system.
A SmartThings Hub costs $99 and it open homes to the entirely new reality of automation.
Although sensors cost additionally money their mix of multifunctional uses allow for the evolution of a
home. The SmartThings Hub supports both Z-Wave and ZigBee wireless standards, which increases the
compatibility of SmartThings with an array of other smart devices. The SmartThings Hub also is fully
compatible with IFTTT (If This Then that) which is an event driven system and involves a combination of
different applications. The installation of SmartThings into homes is relatively easy and its sensors work

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 10

without flaw when programmed correctly. The actually control center for SmartThings while functional
is a bit cluttered and confusing.
The SmartThings Hub communicates with each of the sensors over Wi-Fi before relaying the
commands and affecting the system. The Hub is a simple device that connects all of the device in a
network when it is plugged in and connected to the house router through an Ethernet cable. The
SmartThings app guides users through each step in the installation process with demonstration and
instruction. SmartThings has a range of 50 feet before the sensors in the system become less reliable.
SmartThings makes up for the limited range by having some of the sensors like the motion sensors
double as range extenders. The motion sensor is also very effective at detecting motion without fail.
Other sensors work just as well as the motion detectors like the multipurpose sensor that tracks
temperature, vibrations, and entries into a space through door. This device is especially effective when
considering the security of homes, capable of tracking unwanted break-ins or your kids return safely to
your house. Another sensor in the SmartThings lineup is the presence sensor. This clever device can be
attached to anything and is tracked by when it enters or leaves the Hubs range which is a useful way of
triggering smart devices like turning up or lowering the thermostat. This sensor works well usually, but
occasionally reports false-positives. This is an even easier way of tracking loved ones as they travel to
and from work or school. This sensor is useful, but can be overlooked since the hub already tracks the
cell phone that controls the system. This means that if the system is only being used by an individual
than that individual has no need for an extra presence sensor. Also IFTTT can be used to accomplish the
same goal by creating a program that is triggered by the location of an individual.
The SmartThings app is able to track all of the sensors in the network and knows whether or not
certain appliances are on and wasting energy. This app provides a list of each device and their statuses.
The app also allows the user to interact with the system and actually talk to the system using key words
to trigger actions. The actions serve as customized modes for the system like Good Morning or Im

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 11

home. The apps design is a bit cluttered with all of the options but it is much preferable to a sparse,
underdeveloped app design. Because of the SmartThings apps drawbacks it is almost preferable to use
the IFTTT app because of its more elegant, streamlined design. Because different parts of the system can
be used as triggers or actions it is very IFTTT friendly. This device is advisable for anyone interested in
home automation. SmartThings compatibility with so many other devices makes it a perfect example of
smart home system.

Figure 4: The Smart Things starter kit brings smart homes to life (Smart, n.d.).

Nest
The Nest thermostat is a learning thermostat and changes the way that homes interact with
people. The Nest thermostat has schedule-learning, remote access, occupancy sensing, and ecofeedback capabilities (Yang, 2013). The Nests auto-schedule feature generates a schedule based on one
weeks worth of data. This data contains when the user turns up or lowers the heat, how long the heat is
maintained for, and other temperature preferences. The Nest also has an Auto-Away feature that
detects when the house is not occupied and the system will adjust the temperature to a defined level.
These features allowed the users to become more engaged with the device. Although the Nest provides
a novel way to view smart homes, it does contain a few significant flaws. The first of these flaws is that
the learning system is unable to understand the users intent. The thermostat tracks changes in

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 12

temperature and relates that to the time and day, which is usually valid. The issue arises when the user
makes a change to account for a situation that the Nest can not detect. One example of this could be if
there is one week in winter that is extraordinarily warm, so that the house stays at a cooler
temperature. The thermostat would assume that the following weeks would be the same which means
it would keep the temperatures lower even if the user needed them to be higher. The Nest thermostat
does not adapt well because once it is set on a schedule it wants to stick to that schedule. The other
enormous issue regarding this learning thermostat is that the users do not know how to use it. Users are
liable to turn it off certain functions or stop using the product all together because they were unaware
of why the thermostat was working, especially if the thermostat did not work correctly. One common
example of this is that the Auto-Away feature would turn on while the user was still in the home which
caused the temperature to rise or drop to uncomfortable temperatures for the user. This caused many
users to question the system and turn this feature off which meant that the homes heating system was
always on and the home wasted unnecessary quantities of energy. The learning thermostats main flaws
were that the system either learned a schedule too well and would not stray from the schedule, or the
system would be unintelligible to the user and become ineffective for the user leading up to the system
being turned off or removed from the home. In regards to saving energy the thermostat was not entirely
efficient. This was because the system learned a schedule from the users input and that was the
schedule that it used. The Nest never actually figured out the ideal schedule for heating system to
achieve both comfort and energy efficiency. Additionally the system often wasted energy when certain
features, like the Auto-Away function, failed. The Nest is a great product that change the normal
perspective of thermostats, but it only optimizes comfort and energy if the user explicitly programs it in
that way.

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 13

Figure 5: Nest Thermostat (Nest, 2015)

Belkin WeMo
The Belkin WeMo system is one that is totally customizable that focuses on controlling various
appliances and devices that are connected in a system. One of the big issues regarding smart home
systems is that very few are compatible with every appliance and device (Cipriani, 2014). One of the few
systems that are compatible is Belkins WeMo. Belkins WeMo is a mix of devices and sensors that work
together to create a system. Some of the products that this system offers are a switch and motion
sensor bundle, LED light bulbs, a crockpot, a coffee maker, and the WeMo Maker. This WeMo Maker is
taking the next step in the smart home industry by connecting all the possible household items to the
internet. Once these devices are connected to the internet the WeMo app can control all of the devices.
The Maker has a single button, a few indicator lights, one Wi-Fi antenna, one relay terminal, a different
spot to connect sensors, and a spot for power. The sensor port allows the user to connect multiple
sensors to the Maker. The relay port connects the Maker to the actual device being controlled and it
acts as a break in the electrical circuit. The WeMo Maker can create a smart home with just a few wires,
a sensor, and a device to control.

Using Raspberry Pi and Python to develop a simpler smart home system

Figure 6: The WeMo Maker revolutionizes the number of


devices and appliances that can become smarter
(Cipriani, 2014).

Roche 14

Figure 7: The sensor and relay ports on the WeMo Maker


connect both appliance and sensor to the internet
(Cipriani, 2014).

Sensors
A smart home system is only as smart as the sensors that are connected to it. In general there
are a couple different ways that sensors actually work (Ding, 2011). One of the most common ways of
sensing events and communicating them is through digital environmental sensing. A couple types of
these sensors are simple binary sensors, video cameras, and RFID (Radio frequency identification)
technology sensors. This type of sensing usually provides valuable data regarding activities and the
contexts of those activities. This type of sensing is effective but can become problematic with multiple
people present or if the sensors are in locations that make them ineffective. A simple binary sensor is an
example of this type of sensing. This sensor detects the state of an object or movement and identifies it
with one or zero, using binary. This sensor is usually paired with motion detectors, pressure sensors, or
contact switches. Once something is detected the sensor pairs it with either a one or zero and then
communicates that to the system. This type of sensor is advantageous because it is inexpensive, easy to
install, and does not invade the privacy of the user. The binary sensor is disadvantageous in some
aspects because it can only give information saying whether or not something is true. This leaves some
of the context that may be important out of the picture. Video cameras gather a lot more information
and context, but they tend to invade privacy and need additional work to setup. RFID is a technology

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 15

that exchanges data between a reader and tag by communicating over radio waves. This type of sensor
is fairly reliable except when communicating through liquids or metals. These sensors are better at
detecting the interactions between users and objects. On example of this type of sensing being used is
in the Gator Tech Smart House. In this smart home every outlet is equipped with a RFID reader and the
plugs all had tags in them. If a device was plugged into an outlet the data associated with it was sent to a
main computer which could then control the device and monitor trends.
Other types of sensors that are commonly associated with smart homes are motion detectors. A
couple of common types of motion detectors are radar-based motion detectors, photo-sensor motion
detectors, and passive infrared motion detectors (Harris, n.d.). Radar-based motion detectors are the
most common and are used in the automatic doors. These detectors work by sending out ultrasonic
sound waves that are reflected back at the sensor. The sensor knows exactly how long the waves of
sound take to return to the system which means that if the waves take less time then it knows that
there is someone waiting to get in through the doors. Once the sensors detect that person, it will send a
signal and the door will open. The photo-sensor motion detector work using the same concept as the
radar-based detector except instead of sound waves being used a beam of focused light is used. If the
beam of light is being blocked a sensor will detect that and send a signal to complete a designated
action. The passive infrared motion detector is a little more advanced and it detects a quick change in
heat. The detector works by measuring the infrared energy emitted by body heat and if the level of
energy sharply changes it knows that there is a person there.
One other very common type of sensor that can be found in smart homes is a sensor that
measures temperature. Although there are many different kinds of thermometers, the most common
type used now is a bimetallic thermometer. The basic principle that this thermometer relies on is that
different metals expands at varying rates as they warm up (Brain, n.d.). Two pieces of different metals
are bonded together to make a simple electric controller that withstands high temperatures. When the

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 16

metal expands due to the heat the metal completes a circuit that an electrical current can flow through.
This device can also be curved into a spring so that it has a higher sensitivity to heat. Another common
method of measuring temperature is with an electric thermometer which uses a thermoresistor. If the
temperature changes this device will change its resistance which a computer will detect and then either
display the new temperature or make a decision to turn on or off the heat. This second type of
thermometer is much more commonly used because of its simplicity.

Hubs Purpose
A smart homes hub is the physical control center of the system. A hub also turns an automated
home into a smart home (Tuohy, 2015). A smart hub unifies all of a homes smart appliances and acts as
the brain of the smart home. The hub communicates with all of the individual appliances and tells them
all what to do. A smart homes hub acts as a conduit for the users controlling app, and dictates all of the
users commands. A hub also gives a smart home more depth, and evolves the capabilities of the home.
With a hub a smart home can have more protocols, control more things easily, and react to more
situations. A hub can collect data and learn the users preferences making a smarter home. There are a
multitude of aspects of smart home hubs that have to be considered. For example a lot hubs are
incompatible with certain sensors and devices because they communicate differently. Another aspect is
that some of the hubs have open API to their softwares which means that third-party software services
can work, update, and improve the device. This also means that if a user is having difficulties working
with the hub or trying to change it in a particular way they can do that with software and tutorials
online. A smart home systems hub is a vital part of the whole entire system.

A Wireless Connection
One of these ways is a wireless connection. This means that the devices are connected and
communicate through radio waves. Two of the more prominent wireless networks for home automation
are ZigBee and Z-Wave (Edmonds, 2008). Both ZigBee and Z-Wave are mesh-networks, which means

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 17

that the commands are communicated in multiple ways. Z-Wave uses a Source Routing Algorithm that
determines the quickest route for each command. Each device connected with Z-Wave is embedded
with a code, and when it is plugged into the system, the network controller recognizes the code,
determines its location and adds it to the network. When a message is comes through, the controller
uses the algorithm to decide how the message should be delivered. This type of routing can take up a lot
of memory on a network so Z-Wave developed an order for its operations. Some of the controllers
initiate messages and the others are slaves that carry out and respond to messages. ZigBee sends
messages from the transmitter in a zigzag motion, taking the best path to the receiver. The ZigBee
platform is based on the standard set by the Institute for Electrical and Electronics Engineers (IEEE) for
wireless personal networks. This means that products can be ZigBee compatible without the companies
having to pay extra licensing fees.

X10
X10 was the original version and uses electrical wires that are already in place to communicate
between devices (Edmonds, 2008). Using this method, all of the appliances and devices act as receivers,
and remote controls and keypads as transmitters. The transmitters send a numerical code that alerts the
system that it is issuing a command, an identifying unit number for the device receiving the command,
and a code containing the command. While this is designed to happen in less than a second, it can take
longer because when other devices are powered they can cause interference on the electrical lines. The
X10 devices could incorrectly interpret the electrical interference as a command and react, or they could
ignore the command and nothing would happen. At this point X10 has mainly been replaced with the
wireless methods discussed earlier.

IFTTT
The IFTTT (If This Then That) is an idea and type of programming that is based upon certain
events occurring that trigger certain actions. There are apps that follow this concept that connect

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 18

certain apps with each other. In the smart home world, this concept has to be applied to different
events that the sensors will detect. There is an app that already uses this making smart phones even
smarter by connecting all of the apps on the smart phones. This is the same concept that is being
employed with smart homes. Smart homes are becoming more autonomous and are acting based upon
event like the user opening a door, rather than the user setting forth explicit directions.

Making an App
After the system is programmed to complete certain actions, there has to be some way for
people to interact with the system. This is an app which allows the user to monitor and change to
system whenever the need arises. Designing an app is very different than most other platforms because
the primary control is a users finger and the app runs on a fairly small screen (David, 2014). Initially,
apps are designed with sketches that provide a cheap yet sufficient way to convey a mock-up design.
When designing apps it is important to consider the various platforms that the app will run on. The
biggest markets are Apples IOS and Googles Android, which have different screens and programs.
Several factors that have to be considered when designing apps are that mobile operating system have
their own design guidelines and smart phone and desktop interfaces are different. The other huge
aspect of apps is the user interface. One of the reasons that smartphones are so popular is because
regular people can use smart homes without needing any extra research or learning. User interface (UI)
and the user experience (UX) are key when designing an app because a user has to be able to efficiently
use the app and experience the app at a satisfactory level. The UI and UX have to be tailored to
whatever the mobile operating system that the devices are running.
Some human interface guidelines that Apple developed regard aesthetic integrity, consistency,
direct manipulation, feedback, metaphor, and user control. The goal of aesthetic integrity is to match
the form and function of an app. It is not about making a beautiful app that will not work well for the
user. An app also has to be consistent always providing a satisfactory experience for the user. Direct

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 19

manipulation with the screen is important for the user so that the user can have better control of the
app. Feedback concerns the visual, physical, or audible response to a users action. Feedback lets the
user know that something has happened, either a button they pressed or a notification that they
received. Apps use metaphors to reproduce real-world actions in virtual experiences. User control is
important because the user needs to know that they are in control and even if the app is running
something in the background it is the users who controls what is happening in the app.
The human interface guidelines that Google developed relate to creative vision, design
principles, style, patterns, and building blocks. Creative vision requires apps to inspire, because of the
abundant apps that already exist new apps have to really engage the audience and attract the users. The
design principles are very similar to the principles that Apple developed. This means that google
encourages supporting human interaction with touch and gestures. Google additionally encourages
almost limitless personalization, in either big or small degrees. Style relates to the consistent styles that
android uses throughout the operating system. This includes themes, grid layout, color, and typography.
Patterns offer the opportunity to maintain consistent design layout themes between several apps. Both
Google and Apple explain the intricacies of creating a well-designed effective app.

Raspberry Pi v. Arduino
Where the programming is stored and the platform of the system is equally important, because
it will determine how the system operates. Both the Raspberry Pi and the Arduino are computers that
can be used as platforms for smart home systems (Schwartz, 2013). The Arduino is easier to set up only
requiring to be plugged in and turned on, whereas the Raspberry Pi requires software to be installed, a
keyboard and mouse to interact with the device, and a Wi-Fi dongle to connect it to the internet. The
Raspberry Pi is more advantageous for connectivity because it connected to the internet with much
more ease than the Arduino which needs certain shields. The Raspberry Pi has much greater computing
power than the Arduino. The Raspberry Pi and Arduino are both good for programming in different

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 20

ways. The Pi requires a bit more actual coding, but has massive libraries that extends the possibilities of
things that can be coded with it. The Arduino uses processing languages that are really easy to code with
which makes it good in a different way from the Pi. Overall the products are fairly even, although the
Raspberry Pis compact size without as many wires is beneficial to smart home projects that require a
better usage of space.

Figure 8: This figure shows an Arduino connected to


some LEDs (Arduino, 2015).

Figure 9: This figure shows a Raspberry Pi (Raspberry,


2015).

Issues
Although smart homes are incredible, they are not perfect. Smart homes have an array of issues.
One of these issues relates to the complexity of the smart home user interface (Keating, 2015). Often
when smart home systems do not perform to a users expectations for them, the user becomes
frustrated with the system. When some part of the system do not work properly users often complain of
complicated systems for once-simple tasks. One tech-savvy user received a Nest thermostat as a gift and
did not even open it because he claimed it was not worth the fiddle factor. This addresses one of the
biggest issues that faces smart home systems because although they are meant to make life more
convenient, they often are so difficult to use efficiently that they make the users life more complicated.
Another big issue regarding smart homes is the compatibility between systems, devices, and
sensors (Wolverton, 2015). Although smart home systems are being developed by countless companies
from Google to Apple, none of those companies are working together, which means that none of these

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 21

system are compatible with one another. All of the systems that are being developed work in different
ways. This means that not every smart product will connect to every system. This is a problem because
users of smart homes will buy one system and have products that they bought elsewhere and will not
connect with the system that they bought. Whereas some companies are striving to increase
compatibility, like those working on the Internet of Things, others are not which is not conducive to
further developing the smart home.
The other pertinent issue is the questionable security of smart homes (Brown, 2015). Because all
of the devices in smart homes are connected, including the users cell phone that contain personal
information, smart homes need to have top-notch security. If these systems do not have a very good
security system in place hackers are able to hack into the system and steal private information or mess
with the system itself. Although this is a serious threat, many systems do not actually have sufficient
security. This is a big problem because no one will want smart homes if they put their safety at stake.
One security research company tested the security of a couple systems and found that the system were
missing key components in their security software. For smart homes to develop even further companies
need to figure out how to fix all of these issues.

Internet of Things
Although there are a lot of issues there are also a few solutions, like the Internet of Things. The
Internet of Things is a semi-automated network that combines a variety of different technologies
(Miller, 2015). This network is connected to software and services that collected and analyzed data from
connected devices to make a series of decisions. Based upon the data that is collected certain by the
devices certain actions are set into motion. These devices are connected through wireless networking or
Bluetooth to a master device connected to the network with Wi-Fi. This concept is similar to smart
home concept except the platforms are different and a smart home has a specific location and is
restricted by the home while the Internet of Things is more open, and restricted by the devices

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 22

connected to the network. Basically, devices contain embedded sensors that generate data, wireless
transmitters and receivers that connect to a larger network, network backbone that all devices connect
to, and software that analyzes the data and initiates appropriate actions.

Figure 10: This diagram shows how all of the technologies interact (Miller, 2015).

Using Raspberry Pi and Python to develop a simpler smart home system

Roche 23
Sean Roche
11/18/2015
Massachusetts Academy of
Mathematics and Science

Engineering Plan
A. Engineering problem being addressed:
Smart home systems are complicated devices that are difficult to use efficiently because of their
complex user interfaces.
B. Engineering Goals:
Create a smart home automation system using a novel hub and sensors. A second goal is to
optimize the user interface on the hub and in the app that controls the system.
C. Description in detail of methods or procedures:
Using a Raspberry Pi or Arduino a smart home system hub will be built that incorporates a series
of devices and sensors. These sensors will connect to the system using z-wave, zig-bee, and
wireless networking. The circuit board will be taken out of the original device and put into a
safer more protective casing that would be 3-D printed. This new device would also display
certain information and provide one form of user interface. The next step would be to create a
basic program for the system with a variety of if-this-then-that cases based upon the input of
the sensors. This program would evolve to become easier to use by consolidating certain
settings into modes. The users would have custom settings for each mode that would account
for many different scenarios. Additionally the app would keep a log of commands and events
that take place in the system, this would allow the user to find a fix a problem if one occurs. The
app would also make suggestions for the user to fix problems and change the system based on
the input of the sensors. Once the devices programming is developed it would be tested with a
survey. People would take a survey answering certain questions about the device and using it.
The people would be asked to complete a series of tasks with some instruction and based on the
time they take and their feedback the device would be redesigned.

Using Raspberry Pi and Python to develop a simpler smart home system

Lit Cited:
Tien-Spalding, C. (n.d.). Intelligent imaging: Putting the 'smarts' in your
smart home. Retrieved November 22, 2015, from ArcSoft Intelligent Imaging
website: http://blog.arcsoft.com/index.php/
intelligent-imaging-putting-the-smarts-in-your-smart-home/
Morris, M. E., Adair, B., Miller, K., Ozanne, E., Hansen, R., Pearce, A. J., . .
. Said, C. M. (2013). Smart-Home Technologies to Assist Older People to
Live Well at Home [PDF]. Journal of Aging Science, 1(1), 1-9.
http://dx.doi.org/10.4172/jasc.1000101
Edmonds, M., & Chandler, N. (2008, March 25). How Smart Homes Work. Retrieved
November 15, 2015, from How Stuff Works website:
http://home.howstuffworks.com/smart-home.htm
Miller, M. (2015). The Internet of Things: How Smart TVs, Smart Cars, Smart
Homes, and Smart Cities Are Changing the World. Que.
9 Ways A Smart Home Can Improve Your Life. (2015, March 31). Retrieved October
26, 2015, from SmartThings website: http://blog.smartthings.com/news/
roundups/9-ways-a-smart-home-can-improve-your-life/
Crist, R. (2013, December 13). SmartThings review. Retrieved October 26, 2015,
from CNET website: http://www.cnet.com/products/
smartthings-know-and-control-your-home-kit/
Allameh, E., Mohammadali, J. H., de Vries, B., Timmermans, H., & Beetz, J.
(2012). The role of Smart Home in Smart Real Estate. Journal of European
Real Estate Research, 5(2), 156-170. Retrieved from
http://search.proquest.com.ezproxy.wpi.edu/docview/
1029898492?pq-origsite=summon&accountid=29120
Bierhoff, I., Berlo, A. V., Abascal, J., Allen, B., Civit, A., Fellbaum, K., . .
. Kristiansson, K. (2007). Smart home environment [PDF]. Retrieved from
http://www.tiresias.org/cost219ter/inclusive_future/(14).pdf

Roche 24

Using Raspberry Pi and Python to develop a simpler smart home system


Energy consumption in homes by end uses [Image]. (2013, March 7). Retrieved from
http://www.eia.gov/todayinenergy/detail.cfm?id=10271
Yang, R., & Newman, M. W. (2013). Leaning from a learning thermostat: lessons
for intelligent systems for the home. UbiComp '13, 93-102.
http://dx.doi.org/10.1145/2493432.2493489
Nest Thermostat [Image]. (2015, September 1). Retrieved from https://nest.com/
blog/2015/09/01/meet-the-3rd-generation-nest-learning-thermostat/
Smart Things Starter Kit [Image]. (n.d.). Retrieved from
https://www.smartthings.com/
Cipriani, J. (2014, December 12). Review: WeMo Maker Automated for the People.
Retrieved December 12, 2015, from Wired website: http://www.wired.com/2014/
12/review-wemo-maker/
Ding, D., Cooper, R. A., Pasquina, P. F., & Fici-Pasquina, L. (2011, June).
Sensor Technology for Smart Homes. Maturitas, 69(2), 131-136. Retrieved
from Science Direct database.
Harris, T. (n.d.). How Burglar Alarms Work. Retrieved December 13, 2015, from
How Stuff Works website: http://home.howstuffworks.com/home-improvement/
household-safety/security/burglar-alarm2.htm
Brain, M. (n.d.). How Thermometers Work. Retrieved December 13, 2015, from How
Stuff Works website: http://home.howstuffworks.com/therm1.htm
Tuohy, J. (2015, September 29). How to Choose a Smart Home Hub. Retrieved
December 13, 2015, from Tech Zulu website: http://techzulu.com/
how-to-choose-a-smart-home-hub-infographic/
David, M., & Murman, C. (2014). Designing Apps for Success. Retrieved from
Safari Books Online database.
Keates, N. (2015, August 6). When a Smart Home Is Too Smart for its Own Good.
The Wall Street Journal. Retrieved from http://www.wsj.com/articles/
when-a-smart-home-is-too-smart-for-its-own-good-1438869462

Roche 25

Using Raspberry Pi and Python to develop a simpler smart home system


Wolverton, T. (2015, June 29). Smart Homes require devices to be compatible.
The Columbus Dispatch. Retrieved from http://www.dispatch.com/content/
stories/business/2015/06/29/
troy-wolverton-smart-homes-require-devices-to-be-compatible.html
Brown, R. (2015, April 9). Study highlights security vulnerabilities in the
smart home. Retrieved December 17, 2015, from cnet website:
http://www.cnet.com/news/
security-study-highlights-vulnerabilities-in-popular-smart-home-devices/
Schwartz, M. (2013, April 29). Arduino vs Raspberry Pi: which platform is best
for home automation? Retrieved December 17, 2015, from Open Home Automation
website: https://www.openhomeautomation.net/
arduino-vs-raspberry-pi-which-platform-is-the-best-for-home-automation/
Raspberry Pi [Image]. (2015, February 2). Retrieved from
https://www.raspberrypi.org/blog/raspberry-pi-2-on-sale/
Arduino with LEDs [Image]. (2015, April 5). Retrieved from
https://learn.adafruit.com/adafruit-arduino-lesson-4-eight-leds/overview

Roche 26

You might also like