1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 <2016> 2017 2018 2019 2020 2021 2022 2023 2024 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 <2016> 2017 2018 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Cost effective solution for monitor a large number of temperatures w EPICS |
From: | Ryan Pierce <[email protected]> |
To: | Jack <[email protected]>, "[email protected]" <[email protected]> |
Date: | Tue, 12 Jan 2016 10:16:24 -0600 |
I've worked with voltage-based analog temperature sensors (TMP36) before. In that case, I designed a Raspberry Pi shield board that included an 8-channel 10-bit ADC addressable via SPI. See http://www.mackenziegems.com/2013/03/14/chillmon-board/ I imagine you could do the same thing with resistance-based PT100's if you set up a voltage divider for each input. The board fabrication and component price was $22 for 8 channels, although you'd need to add in a Raspberry Pi, SD card, power supply, etc. For your application, I might consider dispensing with the Pi altogether, making a shield board for an AVR microcontroller, and have that communicate the channel data with an IOC via USB or TTL serial. I'm amazed at how small, inexpensive, and powerful these AVRs have become, in particular the Teensy: https://www.pjrc.com/teensy/
Does it have to be PT100? I strongly prefer digital sensors if possible. I'm currently using DS18B20 OneWire temperature sensors for my brewing project. They are individually addressable and can be strung together in a bus. Resolution is 1/16 degree C if you're willing to wait 750 ms for a conversion; you can configure them to use lower precision which will reduce the conversion time. I don't know how far these 100 sensors are spaced out; you may run into bus length limitations with OneWire, but I've seen documents that talk about improving OneWire performance for long or noisy buses. I'm using an AVR microcontroller to bit bang the OneWire bus, and this is queried via USB serial. OneWire has the ability to detect a broken bus, a non-reporting device, or a transmission error via a CRC. The AVR can check this and raise an EPICS alarm if the output becomes invalid. You could also use one microcontroller to run several independent OneWire buses. This approach is likewise very inexpensive.
Ryan