EF 230: Home System 3000 Instructable

The Home System 3000 is a device that uses an Arduino, a temperature sensor, a piezo buzzer, an optical detector/phototransistor, and a servo to display ways to improve home energy efficiency.

Step 1: Temperature Sensor

· Run your power and ground wires from

the micro controller to the side of the bread board

· Place the temperature sensor into the bread board, and run the corresponding power and ground wires accordingly

· Notice that the temperature sensor has three prongs, and the middle prong has a wire that runs from the port "A0".

· Code for temperature sensor:

answer = questdlg('Please run arduino and servo start code','response','Ok','Ok')

prompt = 'Press any key to begin'

pause

prompt1 = 'Set minimum temperature'

x = input(prompt1)

prompt2 = 'Set maximum temperature'

y = input(prompt2)

prompt3 = 'press any key to begin'

pause

figure

h = animatedline;

ax = gca;

ax.YGrid = 'on';

ax.YLim = [65 85];

stop = false;

startTime = datetime('now');

while ~stop

% Read current voltage value

v = readVoltage(a,'A0');

% Calculate temperature from voltage (based on data sheet)

TempC = (v - 0.5)*100;

TempF = 9/5*TempC + 32;

% Get current time

t = datetime('now') - startTime;

% Add points to animation

addpoints(h,datenum(t),TempF)

% Update axes

ax.XLim = datenum([t-seconds(15) t]);

datetick('x','keeplimits')

drawnow

% Check stop condition

stop = readDigitalPin(a,'D12');

Step 2: Buzzer

· Wire in the buzzer that will be used to signal an extreme high or extreme low temperature reading

· No wire is run from the positive column to the positive side of the buzzer

· Instead a wire is run from the positive side of the buzzer to a port labeled "11"

This will be used later to call the location of the buzzer in the written code.

· Code for buzzer:

if TempF >= y

disp('close door it''s hot')

playTone(a,'D11',500,1)

elseif TempF <= x

disp('close door it''s cold')

playTone(a,'D11',250,1)

end

end

Step 3: Optical Detector/Phototransistor

· This sensor requires resisters unlike the others

· Make sure all four prongs of the sensor are included in the loop after plugging in the wires

· The sensor detects a change in light, representing motion, and records it as an input

· Code for Optical Detector/Phototransistor:

clear a

a = arduino('/dev/tty.usbserial-DN01DVI2', 'Uno', 'Libraries', 'Servo');

prompt = 'Set light level threshold'

z = input(prompt)

lightLevel = 0

while lightLevel ~= -1

lightLevel = readVoltage (a,'A1')

if lightLevel >= z

answer = questdlg('would to like to alter AC?','Yes','No')

switch answer

case 'Yes'

answer2 = questdlg('Turn AC up or down?','response','Down','Up','Up')

switch answer2

case 'Down'

s = servo(a, 'D10');

for angle = 0:.1:.5

writePosition(s, angle);

current_position = readPosition(s);

current_position = current_position * 180;

% print current position of servo motor

fprintf('Current position is %d\n', current_position);

% small delay is required so that servo can be positioned at the

% angle told to it.

pause(2);

end

% bring back motor to 0 angle position

writePosition(s, 0);

clear s

prompt = 'Press any key to continue'

questdlg('AC turned down','response','Ok','Ok')

case 'Up'

s = servo(a, 'D10');

for angle = .5:.1:1

writePosition(s, angle);

current_position = readPosition(s);

current_position = current_position * 180;

% print current position of servo motor

fprintf('Current position is %d\n', current_position);

% small delay is required so that servo can be positioned at the

% angle told to it.

pause(2);

end

Step 4: Servo

· The servo represents

an air conditioner, and is an output of the motion detection input

· It requires a positive wire, ground wire, and a wire from port "D9" to the servo

· Code for servo:

% bring back motor to 0 angle position

writePosition(s, 0);

clear s

prompt = 'Press any key to continue'

questdlg('AC turned up','response','Ok','Ok')

end

end

pause

break

end

end

*Special note: some of the code for the servo is integrated with the code for the optical detector/phototransistor.

Share

    Recommendations

    • Make it Glow Contest 2018

      Make it Glow Contest 2018
    • Toys Contest

      Toys Contest
    • PCB Contest

      PCB Contest

    2 Discussions

    0
    None
    tomatoskins

    8 weeks ago

    This is so cool! How long did it take you to develop the program?

    1 reply
    0
    None
    cdunlap7tomatoskins

    Reply 8 weeks ago

    @tomatoskins Thank you. This was a project taken on as a part of a class that we had about a month to work on. It took several weeks because we were balancing other classes along with this project. However, it wouldn't have taken that long if we only had the project to work on.