High-Precision Environmental Analytics with Arduino and Android
Precise humidity monitoring is critical for various environments, from server rooms and laboratories to art galleries and greenhouses. While commercial data loggers can be prohibitively expensive, this project offers an open-source, industrial-grade solution utilizing the Arduino Nano and a dedicated Android application for real-time visualization and historical data tracking.
Sophisticated Sensing and Timekeeping
The hardware stack is designed for maximum stability and accuracy:
- SHT31 Sensor: Unlike the common DHT sensors, the SHT31 is a high-precision digital humidity and temperature sensor that operates over I2C, offering ±2% relative humidity accuracy.
- DS3231 Real-Time Clock (RTC): To ensure data integrity, every humidity reading must be timestamped. The highly accurate DS3231 RTC maintains time even when the main power is disconnected, thanks to its integrated temperature-compensated crystal oscillator (TCXO).
- Data Persistence: The system utilizes an external EEPROM (ZEeprom library) to store thousands of data points, ensuring no data is lost during power cycles or connectivity gaps.
The Ecosystem: Bluetooth and Android Integration
Using the HC-05 Bluetooth Module, the Humidity Recorder streams data to a custom Android dashboard.
- Live Charting: The Android app transforms raw numbers into interactive trend lines, allowing users to spot patterns in humidity fluctuations over days or weeks.
- Remote Control: Users can adjust recording intervals and calibrate sensor offsets directly from their smartphone.
- Visual Feedback: On the device itself, a 4-digit 7-segment display provides an instant readout of the current humidity, with a blinking colon driven by the RTC's Square Wave (SQW) output to indicate the system is functioning correctly.
Industrial Implementation and Troubleshooting
The project emphasizes reliability through built-in diagnostic indicators via the LED_BUILTIN pin:
- Steady Blink: System operating normally.
- Short Single Blink: RTC failure detected.
- Short Double Blink: EEPROM communication error.
- Short Triple Blink: SHT31 sensor disconnected.
This level of detail makes the recorder suitable for long-term deployment in sensitive environments where data consistency is non-negotiable.








I need monitor humidity of a room, and the humidity recorder product is so expensive, that's why I made it, I have another Android App connect with the device, you can get humidity data from cell phone and show chart on it.
get download Android App from here:
https://play.google.com/store/apps/details?id=eyes.blue.humidityrecorder
Library:
DS3231: https://github.com/NorthernWidget/DS3231
SHT31: https://github.com/adafruit/Adafruit_SHT31
4 Digit LED https://github.com/Seeed-Studio/Grove_4Digital_Display
ZEeprom https://github.com/zoubworldArduino/ZEeprom
Streaming https://www.arduinolibraries.info/libraries/streaming
HOW HARDWARE PIN CONNECT With Arduino:
SHT-31 Arduino
SCL ------- A5
SDA ------- A6
4 Digit Display
CLK ------- A1
DIO ------- A0
DS3231
SCL ------- A5
SDA ------- A6
SQW ------- D2(INT0)
HC-05 (Software serial baud rate 38400 to Arduino)
TXD ------- D4
RXD ------- D5(connect resistance if needed).
State ------- D3(INT1)
Debug:
1. If your 4Digit LED no display or display wrong number, check the RTC or INT/SQW pin of RTC, the device blink the colon of 4 Digit LED per second, it no blink if RTC not work or INT/SQW work not correct.
2. The LED indicator(LED_BUILTIN Pin on Arduino nano) show status:
WORK FINE: ON 0.5 second per 3 second.
NO RTC: Blink 1 time shortly.
NO EEPROM: Blink 2 times shortly.
NO DHT31: Blink 3 time shortly.