Server Room Environmental Monitoring -Light and Temperature
Server Room Environmental Monitoring -Light and Temperature
April 27, 2011 by Jaren
Update: Featured on Hackaday!
Did I leave the light on in the server room again? Kind of like “did I leave the oven on” question… it’s going to bug me all night!
At least I am well on my way to answering that, and several other questions I might be wondering.
My goal with this project is to set up a remote monitoring device I can place in my server room that will display basic information such as temperature, ambient light values, decibels, current draw, etc.
Right now I have a 16×2 character (parallel)LCD from JKdevices. Its compatible with the Hitachi HD44780, so it works great with the Arduino LiquidCrystal library.
I have it connected in 4bit mode.
Arduino with potentiometer, temperature and light sensors
I have the Arduino reading the 3 sensors and storing them to variables. The light and potentiometer values are stored to an integer, and the temperature is stored in a float. Those variables are then “printed” to the LCD screen, every 500 milliseconds.
Here is the temperature sensor
Modern Devices I2C Temp Sensor
The sensor is based around TI’s TMP421. I purchased this board from Liquidware. The breakout board is manufactured by Modern Devices. It’s accurate to within +/- 1 degree Celsius, or for us Americans, +/- 1.8 degrees Fahrenheit. It’s based off the I2C protocol, and includes a library to make things (somewhat) easier to use.
The light sensor is manufactured by Vishay, The TEMT6000 [datasheet] from Sparkfun Electronics .
Right now I have no idea what units it is reading, just that the value changes proportionally to the amount of light.
The final item on the display is updating the value from a potentiometer. Not much use for that unless I need a position sensor for something that rotates or opens.
I’m ordering a few more sensors – more to come as parts come in!
—————-
LCD Pinout
Blue Backlit LCD
Standard HD44780 Interface
Runs on 5 volts
16×2 Character Display
4 Mounting Holes
Pin | Symbol | description |
1 | GND | Ground |
2 | Vcc | Vcc (+5V) also powers backlight |
3 | V0 | Contrast adjustment |
4 | RS | Register select: low = instruction, high = data |
5 | R/W | low = write, high = read |
6 | E | Enable (active high) |
7 | DB0 | Data-bus bit 0 (not used in 4-bit mode) |
8 | DB1 | Data-bus bit 1 (not used in 4-bit mode) |
9 | DB2 | Data-bus bit 2 (not used in 4-bit mode) |
10 | DB3 | Data-bus bit 3 (not used in 4-bit mode) |
11 | DB4 | Data-bus bit 4 |
12 | DB5 | Data-bus bit 5 |
13 | DB6 | Data-bus bit 6 |
14 | DB7 | Data-bus bit 7 |
15 | LED+ | Positive backlight supply (if used) |
16 | LED- | Negative backlight supply (if used) |
————–
Update 5/13/2011
PIR sensor and Audio level sensor have arrived, along with ethernet shield. Trying to get something solid together over the weekend, before next week’s Maker Faire in SF.
————-
Update 6/14/2011
Received new parts – sparkfun i2C backpack for LCD.
Ran into a snag with my Arduino duemilanove -I think I blew up burned out the FTDI chip! Not to worry, I hooked up the Xbee for easy “wireless” programming! Got the backpack soldered to the LCD and got it displaying temperatures. Biggest issue was finding the right code to talk to an i2c display, then pushing over the temperature data. The temperature from the sensor is stored as a Float. Floats will not transfer over the serLCD from Sparkfun, so I needed to change it to an integer first. Who knew?
Part 2