This data logger design is tested by using an Arduino Uno, DS3231 Real Time Clock (RTC) module, an SD card module, and a temperature/humidity sensor. The DS3231 RTC module maintains the date and time, and the DHT11 sensor gathers the temperature and humidity data. The data is saved on an SD card (using the SD card module) for future analysis.
The DS3231 is accurate, and it has an internal Temperature Compensated Crystal Oscillator (TCXO), which cannot be affected by high temperatures. It also has a built-in power sense circuit for whenever the main power supply is cut off, the current time and date will still be maintained through the backup power supply. It uses a 3.6V lithium coin cell battery (a CR2032 coin cell battery).
To test this data logger, it came down to using the DHT11 or DHT22 sensor. The DHT11 and DHT22 are overall the same, but the DHT11 costs less, and the DHT22 can measure temperatures under 0°C (or 32°F). I came to the conclusion that the MROC will not be in use under freezing temperatures.
The DS3231 RTC module uses I2C communication, which requires the SDA and SCL pins. SCL is the clock line, and the SDA is the data line. The SD card module is using Serial Peripheral Interface (SPI) communication, which requires CS (Chip Select), SCK (Serial Clock), MOSI (Master Out Slave In), and MISO (Master In Slave Out). SPI is a serial data protocol used by microcontrollers to communicate with one or more devices in short distances. MISO is the Slave line for sending data to the master, MOSI is the Master line for sending data to the peripherals, and SCK is the clock pulses generated by the master.
The DHT11 sensor requires a pull-down resistor, so a 10k ohm resistor is added from VCC (pin 1) to output (pin 2). The next post will dive in deeper to the code, and gathering data from both the RTC and DHT11 sensors.