Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Automated Green House Temperature Control

Asked by Daniel Mersha on 24 Nov 2011

How to write a program which will read and monitor the green house temperature from a temperature sensor and compare it with the threshold temperature 290C.If the temperature in the green house goes up switch the fan on for cooling and if it goes down switch the heater on for heating

2 Comments

Jan Simon on 24 Nov 2011

Well, I assume the "green" house will get brown very fast near to 290C.
A simple temperature siwtcher should be able to do this without using a program or even Matlab.

bym on 24 Nov 2011

perhaps 290K is more reasonable

Daniel Mersha

Products

No products are associated with this question.

2 Answers

Answer by Walter Roberson on 24 Nov 2011
Accepted answer

That sounds like a use for a PID Controller, or perhaps just some Fuzzy Logic.

I suspect you would not want the continually switching on and off, where the fan starts, the temperature almost immediately decreases, the fan switches on, the non-longer cooled area warms to a fraction over 290, the fan switches on, the fan switches off, the fan motor burns out...

2 Comments

Jan Simon on 24 Nov 2011

A bi-metal switch circuit breaker with a weak magnet for a hysteresis will solve the problem. Daniel, if you implement this for a real application, be sure to check out: http://www.mathworks.com/matlabcentral/answers/9073-what-is-your-unusual-use-of-matlab

Walter Roberson on 25 Nov 2011

Bah, those engineers, always wanting to throw hardware at problems!!

:-)

Walter Roberson
Answer by Prasad Kalane on 19 Jul 2013

>> I had a code for plotting data from sensor.(tested on LM35,ARM-LPC2148,MATLAB 2010) >> Pls edit in that code as well as in controller program.

% *************************************************************************

s1 = serial('COM4'); %define serial port

s1.BaudRate=9600; %define baud rate

fopen(s1); %open serial port

clear data; % data must be in a Coloumn vector (do this setting from controller by using delay & next %line ) e.g. [1;2;3;6;7;8;9]

for i= 1 :10 %acquisition of 100 points

    data(i)=(str2double(fscanf((s1))));     %read sensor
    disp(sprintf('Temperature= %3.2f oC' ,data(i)))      

end

fclose(s1);

i=(1:10); plot(i,data,'--rs','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','m',... 'MarkerSize',5)

 xlabel('Time')
 ylabel('Temparature(celcious)')
 title('Plot of Temparature Vs Time')
 % then use codition of If...end

0 Comments

Prasad Kalane

Contact us