Build a cheap and simple data collector and alerting system to monitor a set of server and network racks in a datacenter, via ethernet network. Project requires sensors for temperature, humidity, liquid spills, vibrations, door openings, ecc...

Solution:

Engineer and build a small box, including an Arduino with ethernet shield, some visible leds, a local power supply, and sensor connections. Each rack will have its box, and these will be connected to an autonomous monitoring vlan.
A central Zabbix system will collect data from the boxes, manage historical series, and eventually generate alerts via email and sms (sms are sent via a bluetooth connection to a dedicated cellphone, so to be independent from main network availability)

Project state:

Underway, with prototype already working.

Description:

We are using Arduino 2009 boards, with ethernet shields.
Due to the arduino integration with ethernet shield, some pins are not available.

Each box needs to have a unique mac address and ip address. To keep circuit simple and avoid dip switches, we decided to "burn" this configuration directly on the code. Each box gets a personalized code, which differs just for mac and ip address configuration. The code is uploaded to each box via usb interface, upon setup. The address is then written on a label on each box.
We discarded the option of implementing dhcp, because in any case we would have needed a software definition of a unique mac address.

Power:

Each unit is powered via a small and cheap USB power supply, to be connected to the local rack power. (here is a picture of the power supply)

Sensors:

We are planning to connect to each environmental monitoring box the following sensors:

Front Rack Door: open/close, with a simple switch, on a digital pin.
Back Rack Door: open/close, with a simple switch, on a digital pin.

Temperature & Humidity: Here I have some options, and I have to choose the best one.

Temperature Option1: a simple thermistor, to be connected to an analog pin, in parallel with a resistor. This is very cheap, but requires calibration.

Temperature Option2: a National LM35 sensor, to be connected to an analog pin. This is cheap, and should be linear, with 0,5 °C accuracy which is ok for me. This should be ok if I put the sensor in the box itself.

Temperature Option3: a Dallas Semiconductor DS18S20 digital thermometer sensor, to be interfaced via 1-wire protocol a digital pin. This also has 0,5 °C accuracy, and should allow to use a longer cable and have the sensor at a longer distance from the box. I am afraid this is not going to be cheap.

Temperature + Humidity Option 1: a Sensirion SHT1x. This is a digital sensor that reads both temperature and humidity. It is already calibrated. I am afraid this is not going to be cheap, but there are many variants of this sensor, from the low-end SHT10 to the high-end SHT75. I need to ask about prices.

Temperature + Humidity Option 2: I found the Kele/Precon HS2000V which is an analog sensor that reads both temperature and humidity. This could be connected to two analog pins, and requires power. I could embed this sensor in the box itself.

I decided to go on using a Sensirion SHT-11 digital sensor. It is a very small device, quite sophisticated.

The quite difficult part was to solder it, because the contacts are very small and close each other. Also the device is quite delicate, and soldering has to be done quickly not to damage it.

Smoke:
I built a simple sensor, made of two components: an infrared led, and an infrared photodiode. The infrared photodiode is mounted about 5cm apart from the led, and I put a heat shrinking tube on it. The resistor for the infrared led and for the photodiode are selected so to allow a "weak" reading which is altered by smoke on the ir path.

The photodiode output is sampled in an analog input. In this way, if some smoke gets in the middle, the output will change, and it can be detected.

Flood:
I have to find (or maybe build) the proper sensor.

Current Prototype:

Actual product, as delivered to the customers

The Arduino 2009 with atmega328, the wiznet ethernet shield, and a small hand made custom shield for our circuitry, have been packaged in hand made boxes.

I choose Simona.deSimona sheet 6mm and 3mm (a PVC foam material used in building and for making signs, also called FOREX or FOAMEX) as the material for the boxes. It is quite cheap.

It is easy to cut, easy to glue, and has enough rigidity to allow screws. This material is fire resistant, easy to work and well suited for its strenght.

As of november 2011, some dozens of these box have been built, and they work seamlessly in several datacenter environments.

Software:

I already hacked something which is working, at least to perform some tests with the zabbix central sampling engine. Each Arduino box runs a webserver, which is providing in its page the reading of all the sensors.
On the Zabbix server, there is a polling process and a parser which decodes the data, and archives it, eventually generating alarms.

I will update the code posted here as soon it is a bit more refined.
Here you have the code that runs on the arduino, to read the reed sensors (digital pin 4), and the temperature and humidity sensor (via digital pins 5 and 6). Reed sensors are to be put in series, so whatever is open triggers the door open alarm.

Analog pin 0 will be used for smoke sensor, but code is not yet here.
Digital pins 2 and 3 are used to briefly flash two colored leds, that in the future will become the box visual interface.

(CAVEATS: the following source code has been copied and pasted from the IDE to the blog, and this process unfortunately changed a bit some code lines, when they contain HTML tags. Beware!)

Wednesday, May 12, 2010

Tridimensional TV is about to arrive, soon after the big boom of 3D movies currently exploding.

Tridimensional printing will be the next wave.

Technologies for tridimensional printing are not new, but recently they are getting a huge push and we will soon have low cost tridimensional printing at a very low cost.

This will probably completely change the world of manufacturing and have huge impact on logistics too.

Commoditization of reality means that manufacturing and distribution costs for whatever object will drop while availability will go up. This will be quite a revolutionary change in traditional manufacturing processes.

Tridimensional printing will evolve from easy to sell solutions for building simple things, in plastic and resins, to multi-material and high resolution and high precision objects.

We currently have atomic scale accurate positioning in multilayer microelecronics, currently used in building memories and processors, with metals and semiconductors. These technologies are based on masking techniques, and thin layer (a few molecules) depositing of various materials.

We are developing increasing accurate technologies for 3-dimensional scanning, and currently the resolution of living tissue MRI imaging is ranging in the 20micrometers (20 * 10 ^-6 m) and we have MRFM (Magnetic Resonance Force Microscopy) able to "see" at resolution of some nanometers (5 * 10^-9 m).

There are significant studies available, like Minimal Manufacturing, by Kazuhiro Murata (AIST, Japan) where "ink" jet printing technology is considered as the future of manufacturing.
Current superfine ink jet printing can individually address and place sub micrometer sized dots (0.5 * 10^-6 m)

In the future, the difficulty will be not to build, because ink manufacturing will ease and allow much cheaper object building.

Advances in 3-d printing will allow cheap manufacturing, and very easy transition from design to objects.

------
Some pointers:

Do It yourself 3d printing:
Here is the reprap project, conceived to be completely open and self reproducing