Server Room Environmental Monitoring -Light and Temperature
Did I leave the light on in the server room again? Kind of like “did I leave the oven on”… its 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 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.
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 (based around Ti’s TMP421), which I purchased 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 the same sensor I used in my 555 contest submission. It is manufactured by Vishay. The TEMT6000 [datasheet] from Sparkfun Electronics . Right now I have no idea what units i am reading, just that the value changes proportionally to the amount of light.
The final item on the display is displaying 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!
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)
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.
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?