class Thermistor
B = 3380.0 # 25-100 deg.
RC = 10000.0 # Series constant R
RS = 10000.0 # thermistor R at 25 deg.
def initialize
@temp = 0
end
def calc
av = analogRead( A0 )
vs = av * 3.3 / 1024.0
# RS:RC = vs:(3.3-vs)
# so RS = RC*vs/( 3.3 - vs )
rs = RC * vs / ( 3.3 - vs )
#puts "vs=#{vs}, rs=#{rs}"
@temp = 1.0 / ( 1.0 / ( 273.0 + 25.0 ) + 1.0 / B * Math.log( rs / RS ) ) - 273.0
return true
end
def tempereture
return @temp
end
end
def get_temprature
therm = Thermistor.new
temprature = 0
t = 0
therm.calc
5.times do
if therm.tempereture > 0 && therm.tempereture <40
t += therm.tempereture
else
retry
end
end
temprature = t/5
end
serv = TCPServer.open("192.168.0.0", 80)
buf_len = 32
loop do
c = serv.accept
recv_text = nil
while (recv_text.nil?)
recv_text = c.recv(buf_len)
end
while (t = c.recv(buf_len))
recv_text += t
end
content = get_temprature.to_s
response = "HTTP/1.0 200 OK\r\n\r\n" + content
c.send response
c.close
digitalWrite(D8, 0) # R, ON
digitalWrite(D9, 0) # G, ON
digitalWrite(D10, 1) # B, ON
delay(100)
digitalWrite(D8, 0) # R, ON
digitalWrite(D9, 0) # G, ON
digitalWrite(D10, 0) # B, ON
end
serv.close