DIY: Rack temperature controller fan solution?

etc6849

Senior Member
I just bought a middle atlantic rack from craigslist. This is my first rack and I really like it, but I'm searching for a cheap solution to monitor temperature (and display temp within my home automation program) and trigger fans.

First idea so far: find an rs232 temperature sensor that can send a temp as ascii text. Write code to trigger the fans using relays and a weeder i/o board or the GC-100-12 relay contacts plus a power supply. Any such temp sensor out there that is <$50? RS232 output would be very neat. Once the fan is hooked up in this manner, I could also switch the fan on when my receiver has been on for more than x hours etc...

Second idea: not as versatile, but install one of those temperature switches used for attic fans.

By the way, I'm using Motorola Premise so I can potentially use any rs232 device with a published protocol, but the device must be less than $50. I already have the fan and GC-100-12, power supply and relay.
 
I'm building a similar system for a kitchen cabinet that houses a PC. I need to be able to activate a cooling fan as necessary and I also want to display the temperature (I was actually thinking of using seven segment LED's mounted above the cabinet). I am, as time allows, building it with a serial Arduino (<$20) and Dallas 1 Wire temp sensor (smile pretty and someone will give it to you :hesaid: They're REALLY cheap). Above a coded preset, the Arduino will activate a 5volt reed relay that cuts or connects the power supply for the exhaust fan.
 
Arduino looks really neat! I'm guessing I would use the code below and adjust delay to be whatever I want (probably 5 minutes); this will send the temperature value over the serial port every 5 minutes assuming I've properly converted the analog value to Farenheight.

After I load the code onto the Arduino, I would write a simple driver for my home automation program that updates the temperature everytime a new value is received over the serial port, then triggers the fan on/off.

I guess the only thing that's missing in the code below is a way to turn the fan on/off. Does the USB model's serial port show up as a serial port under windows and would a program that typically works with serial ports be able to use it? If not, I'm guessing you just use three wire communication via the tx/rx and gnd pins?

http://www.robotshop.us/arduino-usb-microc...er-board-1.html


PS: How do you interface the one wire temp sensor to the arduino? I'm thinking about just using a simple analog temp sensor combined with the code found below:

http://www.danielandrade.net/2008/07/05/te...sensor-arduino/

/*
Serial Call and Response in ASCII
Language: Wiring/Arduino

This program sends an ASCII A (byte of value 65) on startup
and repeats that until it gets some data in.
Then it waits for a byte in the serial port, and
sends three ASCII-encoded, comma-separated sensor values,
truncated by a linefeed and carriage return,
whenever it gets a byte in.

Thanks to Greg Shakar and Scott Fitzgerald for the improvements

The circuit:
* potentiometers attached to analog inputs 0 and 1
* pushbutton attached to digital I/O 2


http://www.arduino.cc/en/Tutorial/SerialCallResponseASCII

Created 26 Sept. 2005
by Tom Igoe
Modified 14 April 2009
by Tom Igoe and Scott Fitzgerald
*/

int firstSensor = 0; // first analog sensor
int secondSensor = 0; // second analog sensor
int thirdSensor = 0; // digital sensor
int inByte = 0; // incoming serial byte

void setup()
{
// start serial port at 9600 bps:
Serial.begin(9600);
pinMode(2, INPUT); // digital sensor is on digital pin 2
establishContact(); // send a byte to establish contact until receiver responds
}

void loop()
{
// if we get a valid byte, read analog ins:
if (Serial.available() > 0) {
// get incoming byte:
inByte = Serial.read();
// read first analog input, divide by 4 to make the range 0-255:
firstSensor = analogRead(0)/4;
// delay 10ms to let the ADC recover:
delay(10);
// read second analog input, divide by 4 to make the range 0-255:
secondSensor = analogRead(1)/4;
// read switch, map it to 0 or 255L
thirdSensor = map(digitalRead(2), 0, 1, 0, 255);
// send sensor values:
Serial.print(firstSensor, DEC);
Serial.print(",");
Serial.print(secondSensor, DEC);
Serial.print(",");
Serial.println(thirdSensor, DEC);
}
}
 
While building my own temperature and rs232 controlled fan assembly sounded fun, I happened to get lucky and find a ready made version at a surplus store! It's called a "Smartray ST3003," but the company is not around anymore. For $20, it was a great deal except that I had to open it up to fix a small problem internally.

http://web.archive.org/web/20061113124024/...oweracumen.com/

The protocol for these rs232 fans looks to be very powerful! I'm going to write a driver in Motorola Premise to control the fan. Since I already interface everything in my rack with Premise already, I can do neat things like: have a silient mode that will run the fans back to minimal cooling when I'm watching a movie etc...

Anyone seen protocol like this before? (See the link below or attached docs). I'm wondering if this same protocol is used, but with a different brand name as the company's site has been took down...?

http://web.archive.org/web/20030208033954/...html/rs232.html
 

Attachments

I just bought a middle atlantic rack from craigslist. This is my first rack and I really like it, but I'm searching for a cheap solution to monitor temperature (and display temp within my home automation program) and trigger fans.

First idea so far: find an rs232 temperature sensor that can send a temp as ascii text. Write code to trigger the fans using relays and a weeder i/o board or the GC-100-12 relay contacts plus a power supply. Any such temp sensor out there that is <$50? RS232 output would be very neat. Once the fan is hooked up in this manner, I could also switch the fan on when my receiver has been on for more than x hours etc...

Second idea: not as versatile, but install one of those temperature switches used for attic fans.

By the way, I'm using Motorola Premise so I can potentially use any rs232 device with a published protocol, but the device must be less than $50. I already have the fan and GC-100-12, power supply and relay.

It seems that etc6849 has found a solution, but for those attracted to the question posed in the post's subject, consider looking at this <$40 solution I describe in another recent post on CocoonTech, namely WebControl by CAI Networks . I've used them for about a year and can recommend.

http://www.cocoontech.com/forums/index.php...c=15005&hl=

It is
-- TCP/IP = web-based
-- sends email alerts
-- has real time clock that can be updated automatically over the net
-- provides eight temperature inputs
-- one humidity input
-- eight digital (TTL) outputs
-- eight digtal inputs
-- rules via Boolean logic
-- Timers, times, and dates can be used in rules to (eg) periodically reboot, send email etc

The PCB has on-board RS-232 and RS-485 hardware but they are not (yet?) supported by the firmware so if you do _require_ RS-xxx, this will not work.


Hope This Helps ... Marc
 
Back
Top