iDRY Vacuum Kilns

Sponsors:

Integrated temp/humidity sensor

Started by Jason_WI, October 05, 2004, 05:10:36 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Jason_WI

I found an inexpensive integrated temp/humidity sensor from a European company. It has a 2 wire digital interface and is NIST traceable. It has a fairly large temp range and it has a heater to prevent condensation at high humidity levels.

http://www.sensirion.com/en/pdf/Datasheet_SHT1x_SHT7x.pdf

Of course you will need a microcontroller to get the data out of it.....

Useful for DIY controllers or monitoring equipment.

Jason

Norwood LM2000, 20HP Honda, 3 bed extentions. Norwood Edgemate edger. Gehl 4835SXT

Den Socling

Hi Jason,

I see it's Swiss like the unit we use. Did you get the evaluation kit yet?

Den

Jason_WI

Den,

I have one working and reading back data as I type. Responce time is fairly fast. The heater works as it will raise the temperature slowly. Not sure how it will last in a kiln enviroment with the acids and dust. From the data sheet it looks like it survived some fairly harsh tests. Definately would have to pot the leads and coat the PCB with conformal to prevent the traces from corroding.

Your controllers use a 4-20 ma input? Do they have some sort of serial data input? If so then it might be possible to integrate one of these with a PIC processor to try out. They range from 25 to 30 bux depending on the accuracy required. Newark has them in stock.

Jason
Norwood LM2000, 20HP Honda, 3 bed extentions. Norwood Edgemate edger. Gehl 4835SXT

Jason_WI

Here are a couple of pictures of the Sensirion Temp/RH sensor operating on my Basic Stamp dev system.





Here are some chunks of code that make it work:




' ------------------------------------------------------------------------------
' Subroutines
' ------------------------------------------------------------------------------

' connection reset: 9 clock cyles with ShtData high, then start sequence
'
SHT_Connection_Reset:
  SHIFTOUT ShtData, Clock, LSBFIRST, [$FFF\9]

' generates SHT1x "start" sequence
'
'SHT_Start:
  INPUT ShtData                                 ' let pull-up take line high
  LOW Clock
  HIGH Clock
  LOW ShtData
  LOW Clock
  HIGH Clock
  INPUT ShtData
  LOW Clock
  RETURN


' measure temperature
' -- celcius = soT * 0.01 - 40
' -- fahrenheit = soT * 0.018 - 40
'
SHT_Measure_Temp:
  GOSUB SHT_Start                               ' alert device
  ioByte = ShtTemp                              ' temperature command
  GOSUB SHT_Write_Byte                          ' send command
  GOSUB SHT_Wait                                ' wait until measurement done
  ackBit = Ack                                  ' another read follows
  GOSUB SHT_Read_Byte                           ' get MSB
  soT.HIGHBYTE = ioByte
  ackBit = NoAck                                ' last read
  GOSUB SHT_Read_Byte                           ' get LSB
  soT.LOWBYTE = ioByte

  ' Note: Conversion factors are multiplied by 10 to return the
  '       temperature values in tenths of degrees

  tC = soT / 10 - 400                           ' convert to tenths C
  tF = soT ** 11796 - 400                       ' convert to tenths F
  RETURN


' measure humidity
'
SHT_Measure_Humidity:
  GOSUB SHT_Start                               ' alert device
  ioByte = ShtHumi                              ' humidity command
  GOSUB SHT_Write_Byte                          ' send command
  GOSUB SHT_Wait                                ' wait until measurement done
  ackBit = Ack                                  ' another read follows
  GOSUB SHT_Read_Byte                           ' get MSB
  soRH.HIGHBYTE = ioByte
  ackBit = NoAck                                ' last read
  GOSUB SHT_Read_Byte                           ' get LSB
  soRH.LOWBYTE = ioByte

  ' linearize humidity
  '   rhLin = (soRH * 0.0405) - (soRH^2 * 0.0000028) - 4
  '
  ' for the BASIC Stamp:
  '   rhLin = (soRH * 0.0405) - (soRH * 0.004 * soRH * 0.0007) - 4
  '
  ' Conversion factors are multiplied by 10 and then rounded to
  ' return tenths
  '
  rhLin = (soRH ** 26542)
  rhLin = rhLin - ((soRH ** 3468) * (soRH ** 3468) + 50 / 100)
  rhLin = rhLin - 40

  ' temperature compensated humidity
  '   rhTrue = (tC - 25) * (soRH * 0.00008 + 0.01) + rhLin
  '
  ' Conversion factors are multiplied by 100 to improve accuracy and then
  ' rounded off.
  '
  rhTrue = ((tC / 10 - 25) * (soRH ** 524 + 1) + (rhLin * 10)) + 5 / 10
  RETURN


' sends "status"
'
SHT_Write_Status:
  GOSUB SHT_Start                               ' alert device
  ioByte = ShtStatW                             ' write to status reg command
  GOSUB SHT_Write_Byte                          ' send command
  ioByte = status
  GOSUB SHT_Write_Byte
  RETURN


' returns "status"
'
SHT_Read_Status:
  GOSUB SHT_Start                               ' alert device
  ioByte = ShtStatW                             ' write to status reg command
  GOSUB SHT_Read_Byte                           ' send command
  ackBit = NoAck                                ' only one byte to read
  GOSUB SHT_Read_Byte
  RETURN


' sends "ioByte"
' returns "ackBit"
'
SHT_Write_Byte:
  SHIFTOUT ShtData, Clock, MSBFIRST, [ioByte]   ' send byte
  SHIFTIN  ShtData, Clock, LSBPRE, [ackBit\1]   ' get ack bit
  RETURN


' returns "ioByte"
' sends "ackBit"
'
SHT_Read_Byte:
  SHIFTIN  ShtData, Clock, MSBPRE, [ioByte]     ' get byte
  SHIFTOUT ShtData, Clock, LSBFIRST, [ackBit\1] ' send ack bit
  INPUT ShtData                                 ' release data line
  RETURN


' wait for device to finish measurement (pulls data line low)
' -- timeout after ~1/4 second
'
SHT_Wait:
  INPUT ShtData                                 ' data line is input
  FOR toDelay = 1 TO 250                        ' give ~1/4 second to finish
    timeOut = INS.LOWBIT(ShtData)               ' scan data line
    IF (timeOut = No) THEN SHT_Wait_Done        ' if low, we're done
    PAUSE 1
  NEXT

SHT_Wait_Done:
  RETURN


' reset SHT1x with soft reset
'
SHT_Soft_Reset:
  GOSUB SHT_Connection_Reset                    ' reset the connection
  ioByte = ShtReset                             ' reset command
  ackBit = NoAck                                ' only one byte to send
  GOSUB SHT_Write_Byte                          ' send it
  PAUSE 11                                      ' wait at least 11 ms
  RETURN



Norwood LM2000, 20HP Honda, 3 bed extentions. Norwood Edgemate edger. Gehl 4835SXT

beenthere

Jason
That is interesting. Need to study it a bit, to catch up on all it will do.
south central Wisconsin
It may be that my sole purpose in life is simply to serve as a warning to others

old3dogg

Wow!That looks like some of the crap on my Trane 80 ton chiller.No one can figure it out.Not even the people from Trane :D

GregS

Jason,
I was thinking it was not worth making my own kiln-contoller but you are influencing me to consider it.  I like the sensor from what I see so far.  I like the fact you could place the sensor in the bad environment and send the data serially to the controller.

Are you going futher with this and actually controling heating and DH  units with your future home-brewed controller?

I do some HW/SW work all day so I would love to sneak in some kiln stuff along the way.  

Thanks for sharing!

Greg

Den Socling

I always said that Jason was a bad influence.  :D

Den Socling

Loop controllers have serial (RS485) and current inputs. All you have to do is assign units to the top and bottom of the span.

Jason_WI

The sensor uses a 2 wire serial connection but uses a protocol similar to I^2C. A PIC or basic stamp could get the data from the sensor, convert it to a meaningful number then send it out either RS232 or 485 to a loop controller as a slave device.

Another option is to just use the PIC or basic stamp as a process controller by using band gap control or if needed full PID control.

Jason
Norwood LM2000, 20HP Honda, 3 bed extentions. Norwood Edgemate edger. Gehl 4835SXT

GF

Here is something I have been toying with with the remote temp and humidity sensors.  Using it through cat 5, able to monitor kiln conditions via the internet.
http://www.apc.com/products/family/index.cfm?id=47

woodhaven

 I did mine that way once just to prove to myself it would work. Bad thing is your computer will have to always be turned on and connected to the internet to get your readings. You would need a seperate phone line or someone to turn on the computer and do a dial up before you could read anything. It does work just fine but for me it was more trouble than it was worth. Now I just dial up into the system through any phone line.
Richard

Jason_WI

GF,

That system looks expensive :o And a little overkill ::)

Jason
Norwood LM2000, 20HP Honda, 3 bed extentions. Norwood Edgemate edger. Gehl 4835SXT

Den Socling

As I've mentioned before, FDC's loop controllers come with free software that interfaces them via RS485 to a pc. Then, with pcAnywhere, you connect through a phone line or through the INTERNET to/from anyplace that has a connection.

loopy Den  :D

woodhaven

Den,
Would you really recommend something like PcAnywhere ?
My experience with it has been its slow as a 12 year itch.
Richard

GF

Den,
   I am looking for something that will monitor the temp and humidity with remote probes, not really trying to control anything (yet).  Something simple and reliable, and possibly digital, but still has to handle inside kiln extremes.  Any ideas where I could find something like this?

Jason_WI

GF,

How long of a run for each sensor? Currently I have them on 12 feet of phone cord without any problems. I have PIC code for the above listed sensor. Currently monitoring 2 sensors and updates the LCD every 1/2 second and sends data out the RS232 serial port at 9600,8,N,1 about every minute. Currently the timing is fixed but that could be changed by adding a simple serial user interface.

These sensors haven't been proven in a kiln enviroment so there is some risk but I think it would be minimal.

I can come up with a cost if your interested.

Jason
Norwood LM2000, 20HP Honda, 3 bed extentions. Norwood Edgemate edger. Gehl 4835SXT

Den Socling

Woodhaven,

pcAnywhere is slow with a dial up connection but, with a good connection, you don't see any difference in speed when connected to a remote computer.

Den

GF

Jason_Wi
   Its only about 7ft, I only have a solar kiln and thought it would be neat to monitor temp/humidity at top, and temp and humidity coming out the botton of the stack just to see what the moisture gain and temp loss is.  Right now I have remote temp probes but not humidity.

GF

TDK also makes a temp humidity probe/chip its a CHS-UGR, but I cannot find any specs on it.

Jason_WI

GF,

With the TDK sensor the circuit would need an A/D converter. Also the temp sensor needs to be mounted extremely close the the humidity sensor to correctly calculate the linearity of the humidity sensor and for calculating the dew point.

Here is the data sheet for the TDK sensor:

http://www.component.tdk.com/components/catlist/eb111_chs.pdf

Jason
Norwood LM2000, 20HP Honda, 3 bed extentions. Norwood Edgemate edger. Gehl 4835SXT

Thank You Sponsors!