Introduction: Server Room Monitor
One of the problems of a server room is the temperature. With different equipment producing heat, this rises quickly. And if the air conditioning fails, it quickly stops everything. To predict these situations we can acquire one of several environmental monitoring systems in the market. Being a simple system, I decided to make a custom solution and build a server room monitor system. Thanks in advance for the support of PCBWay that provided all the necessary pcb's.
Step 1: Requirements
Initially I created a prototype on a breadboard, so I knew the connections needed. Although the prototype only has one sensor and the final product has several, it was only necessary to multiply the connections.
Then it was necessary to create the code. The system requirements are as follows.
- monitor the ambient temperature and air humidity
- have several sensors
- report this data to a central system
- receive data from multiple stations
- authenticate the stations and their data
- display a graph per sensor of the last 24 hours
- monitor the data and send a warning to e-mail if you leave the range established as normal
Step 2: Material
For the central system I developed an application using PHP and MariaDB.
For each station I developed a system based on Wemos D1 Mini, with several DHT22 sensors.
Each station collects the data of the sensors connected every 30 minutes, encodes and sends to the central system through a wireless connection. The central system decodes de data, authenticates the station through a predefined key and inserts the data into the database
Step 3: Code and PCB
All the code is available in my GitHub account.
After the prototype I created the PCB. To create the PCB I used Autodesk Eagle. This is available free of charge for PCB's up to 11 cm in side.
To create the PCB in Autodesk Eagle you need to create a project and within the project create a schema with the components and their connections.
After this is created i create the pcb. For this press the button that is in the toolbar. Autodesk Eagle creates a pcb with all the components and indicates the respective connections. Next it’s necessary to define the size of the pcb, position the components in place and make the connections between them (see more information here https://learn.sparkfun.com/tutorials/using-eagle-board-layout/all
Finally it’s necessary to export the drawing to the gerber format for submission for production. Since there are several possibilities, PCBWay provides a tutorial with the steps (https://www.pcbway.com/helpcenter/technical_support/Generate_Gerber_files_in_Eagle.html) and tell’s which files are required to submit.
The submission is made on the PCBWay website. When submitting, the cost is automatically made available. One option that should be checked is the "HASL lead free", to remove the lead form the boards. After the submission the production process is fast, taking between 1 to 2 days.
Step 4: Assembly
After receiving the PCBWay PCB’s, I soldered the various components in place. The PCB's come prepared to receive the components, which makes the process quite simple.
After the PCBs are ready, i’ve create the various sensor connection cables. These consist of a 2-pair telephone cable, with Dupont connectors to connect to the sensor.
Then i had to create the cases. These were modeled in Autodesk Fusion 360, and printed in PLA on a Prusa I3 Hephestos.
Then I pre-assembled it. It was necessary to place the PCB on the casing as well as the various sensors. It was also necessary to protect the connectors with heat shrink sleeve.
At the site the final assembly was carried out. I placed a sensor in the middle of a rack and two others on top of each. This allows me to monitor the temperature and humidity at various points in the room and at different heights.
Finally, I checked if there was connectivity to the central system and what data was being transmitted.
In an ideal situation, all sensors regardless of location and height should report the same values. If the top ones report higher values, the room is warming up.