# Energy Saver 3000

560

4

2

Adrien Green, Huy Tran, Jody Walker

The use of a Raspberry Pi computer and Matlab is a simple and effective way to help homeowners reduce there energy consumption. The best part about the Energy Saver 3000 is that it is very simple to set up and use. The main purpose of the Energy Saver 3000 is to allow homeowners to be able to track their energy bill to see how much they're spending, and to allow home owners to turn off the lights in there homes remotely with a press of a button.

### Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

## Step 1: Parts Used

1: Raspberry Pi computer

3: Jumper wires

4: Push button

5: Mini LED lights

6: 330 ohm, 10 Kohm, and a 300 ohm resistor

7: Ethernet Cable

8: Light photocell

## Step 2: Problem Statement

Our project was to design a home energy saver using a Raspberry Pi computer and MATLAB. Our goal was to build a system that allowed users to track their energy bill to see if they can reduce their energy consumption. We also wanted users to be able to turn off their lights while they were gone with a press of a button. To do this, we wired up a photocell to sense when the lights are on. If the lights are on, the MATLAB program will calculate how long they've been on and how much energy and money has been spent since they've been on.

## Step 3: Setup

Wire up the breadboard as shown in the Picture above.

## Step 4: MATLAB Code for Controlling the Photocell

function control_light()
rpi = raspi();

writeDigitalPin(rpi,12,1)

time = 0

sumcost = 0

Time = 0

Cost = 0

bulb = 100/1000;% kilowatts

for i = 1:2

tic

while true

if x == 1

writeDigitalPin(rpi,19,1)

elseif x == 0

writeDigitalPin(rpi,19,0)

toc;

time = time + toc

kwh = toc * bulb

dollars = 0.101

cost = kwh * dollars

sumcost = sumcost + cost

X = linspace(Time,time,10)

Y = linspace(Cost,sumcost,10)

Time = time

Cost = sumcost

disp(['Light has been on for ', num2str(toc),' hours. Cost = \$', num2str(cost)])

plot(X,Y,'b') title('Cost Over Time')

xlabel('Time (Hours)')

ylabel('Cost (\$Dollars)')

hold on

break

end

end

pause(5)

tic

while true

if x == 1

writeDigitalPin(rpi,19,1)

elseif x == 0

writeDigitalPin(rpi,19,0)

toc;

time = Time + toc

kwh = toc * bulb

dollars = 0.101

cost = kwh * dollars

sumcost = Cost + cost

X = linspace(Time,time,10)

Y = linspace(Cost,sumcost,10)

Time = time

Cost = sumcost

disp(['Light has been on for ', num2str(toc),' hours. Cost = \$', num2str(cost)])

plot(X,Y,'g')

title('Cost Over Time')

xlabel('Time (Hours)')

ylabel('Cost (\$Dollars)')

hold on

break

end

end

pause(5)

end

## Step 5: MATLAB Code for Turning Lights Off

function button_controlv1()

rpi = raspi();

condi = 1;

while true % creates an infinite loop to keep the code running

button = readDigitalPin(rpi, 6); % Reads the button press value on pin 6

if button == 0

condi = condi + 1

end

if mod(condi,2) == 0

writeDigitalPin(rpi,17,0)

h = msgbox('You turned the light off. :)') waitfor(h);

break

end

if mod(condi,2) == 1

writeDigitalPin(rpi,17,1)

end

end

## Step 6: MATLAB Code for Turning Lights On

function button_controlv2()

rpi = raspi();

condi = 2;

while true % creates an infinite loop to keep the code running

button = readDigitalPin(rpi, 6); % Reads the button press value on pin 6

if button == 0

condi = condi + 1

end

if mod(condi,2) == 0

writeDigitalPin(rpi,17,0)

end

if mod(condi,2) == 1

writeDigitalPin(rpi,17,1)

h = msgbox('You turned the light on. :(')

waitfor(h);

pause(10)

break

end

end

## Step 7: MATLAB Code for GUI

function EnergySaver3000()

imgurl='http://clipart-library.com/images/pc585dj9i.jpg';

imgfile='Lightbulb.jpg'; urlwrite(imgurl,imgfile);

h=msgbox('Welcome to the Energy Saver 3000!','','custom',imgdata);

waitfor(h);

clear h;

while true

iprogram=menu('Which Program Do You Want to Run?','Bill Calculator','Light Control');

if iprogram==1

control_light() h=msgbox('Done!!!')

close all

elseif

iprogram==2

end

clear h;

if ichoice == 1

button_controlv2()

h=msgbox('Done!!!')

elseif ichoice ==2

button_controlv1()

h=msgbox('Done!!!')

elseif ichoice==3

h=msgbox('You did nothing :(') waitfor(h);

h=msgbox('Done!!!')

end

waitfor(h);

end

end

Participated in the
First Time Author

## Recommendations

• ### Internet of Things Class

22,725 Enrolled

## 2 Discussions

Please explain the wiring more clearly.

This is a great way to track energy consumption! Thanks for sharing!