End-User Programming for Home Automation
#1

Abstract
Home appliances are, at present, set up in a manner that is unintuitive and convoluted. For example, to set the time on all devices, one must go around his house and individually, through button presses, interact with each single device. Coordinating functions between multiple devices requires even more menial button-pressing, and, in some cases, is wholly impossible. Currently, there is simply no good way for a user to quickly and easily set multiple devices to interact with each other.
To that end, we set out to create a new system of home automation. We sought usability, flexibility, the creation of a universal programming methodology, and cost-effectiveness. In short, we wanted to bring our system to the average user— not to only the wealthy or the tech-savvy.
In our paper, we explain, in detail, the multiple components involved in our system. The user inter-acts with a graphical programming language called BYOB, or Build Your Own Blocks, an extension of Scratch. Through this interface, the user has direct control over his individual home appliances as well as their interactions with each other. The user input in BYOB is transferred first to another programming language, Processing, which interprets that input and sends it to the Arduino microcontroller. Pre-loaded software on the microcontroller uses this information to control any devices that are connected to the system. To test the feasibility of our system, we reverse-engineered four devices: a desk lamp, a fan, a coffee maker, and an alarm clock. In our paper, we describe this process.
We conclude with an analysis of how our system meets the four original goals we set. In addition, we provide recommendations for directions in which future research could go, including improvements to the efficiency of our system, new and advanced features, and a full-scale user study.
1 Introduction
Imagine your home of the future: it is nine o’clock on a Saturday morning and you groggily awake to the smooth sounds of Miles Davis, your favorite jazz artist. You usually get up at seven, but, since it’s the weekend, your alarm clock knows to wait an extra two hours. You hit snooze a few times— it was a rough week and you’re tired— then finally shut off your alarm. The instant your feet hit the door, lights illuminate the hallway that leads you to your shower, which has already heated up by the time you reach the bathroom. Simultaneously, the coffee maker in your kitchen on the floor below starts brewing the exotic blend of Colombian coffee that you save for the weekends.
This dream scenario is, to most, far from reality. But we envision just such a home, controlled through a central point: a personal computer. We have designed and prototyped a system of home automation to make this a reality.
We kept in mind four goals for our system:
• Usability
• Flexibility
• Generalization
• Cost-Effectiveness
1.1 Usability
Our system should be easy to use for anyone to use. A user who is not technically inclined should be able to control his appliances as easily as computer programmer would. Usability also implies speed; using our system should be faster than manually setting individual appliances.
1.2 Flexibility
Our system should allow home appliances to per-form more complex tasks than before. For example, your lights could turn on whenever your alarm clock went off. Appliances should also be able to remember your specific functions, such as creating a special brew for you or playing a certain song as your alarm.
1.3 Generalization
Appliances in our system should be unified under a single programming paradigm, using the same user interface and language.
1.4 Cost-Effectiveness
Our system should be relatively inexpensive to create. The average person should be able to afford our home automation system.
2 Designing a Home Automation System
Our home automation system involves three distinct software components. They are BYOB, or Build Your Own Blocks, the user interface; Arduino, the "translator" from the user input to the physical electrical signals sent to appliances; and Processing, the "middleman" that connects the two. In this section, we describe their purposes, functions, and methods of communication with each other.
2.1 BYOB
A key component of any home automation system is the user interface: it must be friendly and easy to use. Scratch, a graphical programming language designed in 2007 by MIT, is just that. A programming language intended for non-programmers, Scratch uses colorful blocks of code, with familiar commands such as if statements and while loops. However, in Scratch, device-specific blocks can’t be created. In fact, no blocks can be, and only a limited range of pre-programmed functions is avail-able. To solve this problem, we used, in lieu of Scratch, the alpha version of Build Your Own Blocks (BYOB), a modified edition of Scratch developed by Jens Monig and Brian Harvey [4].
For our purposes, the physical process of block creation, though something no user will be forced to contend with, is fairly straightforward. The "Make a Block" button in BYOB is clicked and the name of the block entered. From there, other pre-existing blocks can be dragged into the "Block Editor", where the block's function is denied. When the new block is run in a program, every single block that has been added in the Block Editor under it will be executed.
Figure 1: This is an example of code we create
Examples of custom blocks are the Turn On Coffeemaker and Is Weekend? blocks shown above.. This code would check if the date matched a week-end; if it did, it would turn on the coffeemaker at 7:15 AM. This setup, which reads like ordinary English, is intuitive and comfortable to use.
All complexities behind the creation of blocks, however, are left to us. The user only interacts with the interface shown below.
In the main editor, located on the center left, users simply drag blocks to their appropriate places. The first section where the user can place blocks is in the DEVICES block, which is where the user puts the blocks that turn on and off devices and perform other device-specific tasks. The second section is in the TIME block, which is where the user puts blocks that set the time and/or date. This creation of such a pre-existing skeleton program, into which users can drag blocks, was done specifically to facilitate the rapid construction of simple and effective programs. Once the user has finished, he must click the green flag in the upper-right corner, which automatically sets the time and date, and allows him to select one of the two but-tons located beneath it, in the "stage". Clicking the Set Time button runs the blocks that are placed in the TIME block. Clicking the Program Devices button runs the blocks that are placed in the DEVICES block in a forever loop, which constantly checks to see if the blocks that the user placed should be executed or not. BYOB knows which section to execute based on the cursor's coordinates in the stage—if the cursor is within either the coordinates of the "Program Devices" or "Set Time" button and is pressed down, that specific code section will immediately run. Also located in the stage are images of all the devices currently connected to the system and their respective power states.


download full report
http://googleurl?sa=t&source=web&cd=1&ve...ofinal.pdf&ei=8OV-Tfm1LcvMrQfJpc3ABw&usg=AFQjCNHtG8aIKGGxDW_dpHHJV2ym4XaJ9Q
Reply

Important Note..!

If you are not satisfied with above reply ,..Please

ASK HERE

So that we will collect data for you and will made reply to the request....OR try below "QUICK REPLY" box to add a reply to this page
Popular Searches: user defined exceptions java programming with ppt, home automation end user programming, user home page on online test system project, ltsg seminary weekend, weekend tefl, weekend phlebotomy,

[-]
Quick Reply
Message
Type your reply to this message here.

Image Verification
Please enter the text contained within the image into the text box below it. This process is used to prevent automated spam bots.
Image Verification
(case insensitive)

Possibly Related Threads...
Thread Author Replies Views Last Post
  INDUSTRIAL AUTOMATION ppt seminar surveyer 2 5,783 22-02-2016, 02:27 PM
Last Post: seminar report asees
  Home appliance & pc Cursor control by mobile phone (DTMF) smart paper boy 3 3,553 21-05-2015, 03:16 PM
Last Post: seminar report asees
  User Identification Through Keystroke Biometrics computer science crazy 1 3,301 18-03-2014, 12:18 AM
Last Post: DallasKirm
  Tele-Graffiti (A Camera-Projector Based RemoteSketching System with Hand-Based User I computer science crazy 9 6,988 05-08-2013, 11:35 AM
Last Post: computer topic
  AUTOMATION OF CARS IN EMBEDDED SYSTEMS project topics 15 13,355 28-11-2012, 11:44 AM
Last Post: seminar details
  ZIGBEE HOME AUTOMATION: THE NEW GLOBAL STANDARD FOR HOME AUTOMATION Zigbee 8 7,840 04-02-2012, 10:37 AM
Last Post: seminar addict
  Wireless Home Automation Network seminar project explorer 1 1,829 04-02-2012, 10:06 AM
Last Post: seminar addict
Thumbs Up DTMF BASED INDUSTRIAL AUTOMATION APPLIANCE CONTROL SYSTEM projectsofme 3 7,778 27-01-2012, 10:20 AM
Last Post: seminar addict
  SMS Based Industrial Automation Using ARM Controller seminar class 2 3,309 27-01-2012, 10:20 AM
Last Post: seminar addict
  SMS Based Wireless Home Appliance Control System (HACS) for Automating Appliances and electronics seminars 6 10,904 20-01-2012, 10:49 AM
Last Post: seminar addict

Forum Jump: