# esp-idf-ds3231
An esp-idf component for the Analog Devices (Maxim Integrated) DS3231
RTC chip/module.
esp-idf-ds3231 is a component for the esp-idf. The component abstracts
all the features in to get/set functions. The component is 100% feature
complete. All time keeping, alarm and control function are part of the
comoment, including alarm interrupt functionality.
This my first fully documented and shared open source project. I welcome
comments, suggestions and corrections.
The areas I could use help in are the documentation generation and
configurion on readthedics.io.
<figure>
<img src="docs/circuit_image.png" alt="docs/circuit_image.png" />
<figcaption>Cirkit Designwe image of an ESP32 connect to a DS3231
module.</figcaption>
</figure>
## Getting Started
In and ESP-IDF terminal run:
`idf.py add-dependency "jschwefel/esp-idf-ds3231^1.0.0"` \###
Prerequisites
The things you need before installing the software.
- esp-idf v5.0+
## Usage
The code used in the example program:
```C
#include <stdio.h>
#include "esp-idf-ds3231.h"
void app_main(void) {
// Allocte memory for the pointer of i2c_master_bus_handle_t
i2c_master_bus_handle_t* bus_handle =
(i2c_master_bus_handle_t*)malloc(sizeof(i2c_master_bus_handle_t));
// Create the i2c_master_bus_config_t struct and assign values.
i2c_master_bus_config_t i2c_mst_config = {
.clk_source = I2C_CLK_SRC_DEFAULT,
.i2c_port = -1,
.scl_io_num = GPIO_NUM_5,
.sda_io_num = GPIO_NUM_4,
.glitch_ignore_cnt = 7,
// The DS3231 **requires** pullup resistors on all of its I/O pins.
// Note: Some DS3231 boards have pullup resistors as part
// of their design.
.flags.enable_internal_pullup = true,
};
i2c_new_master_bus(&i2c_mst_config, bus_handle);
rtc_handle_t* rtc_handle = ds3231_init(bus_handle);
time_t now;
char strftime_buf[64];
struct tm timeinfo;
now = ds3231_time_unix_get(rtc_handle);
localtime_r(&now, &timeinfo);
strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo);
printf("The current time from the DS3231 RTC moldue is: %s\n", strftime_buf);
}
```
56891467442492e8f98d978669c373c37d4738a7
idf.py add-dependency "jschwefel/esp-idf-ds3231^1.0.3"