Classes

  Name
class DS3231_Logger

Defines

  Name
  snprintf_P
  SECOND
  MINUTE
  HOUR
  DAY
  MONTH
  YEAR

Macros Documentation

define snprintf_P

#define snprintf_P snprintf

define SECOND

#define SECOND 5

define MINUTE

#define MINUTE 4

define HOUR

#define HOUR 3

define DAY

#define DAY 2

define MONTH

#define MONTH 1

define YEAR

#define YEAR 0

Source code

/******************************************************************************
DS3231_Logger.h
A simplified library for the DS3231, focused on data logger applications
Bobby Schulz @ Northern Widget LLC
4/4/2018

The DS3231 is a high accuracy tempurature compensated RTC. This chip allows for time to be accurately kept
over long periods of time, and waking up a logger device when required to take measurments or tend to sensors

"That's not fair. That's not fair at all. There was time now. There was, was all the time I needed..."
-Henery Bemis

Distributed as-is; no warranty is given.
******************************************************************************/

#ifndef DS3231_LOGGER_h
#define DS3231_LOGGER_h

#include "Arduino.h"
#ifdef __AVR__
#include <avr/pgmspace.h>  //The format strings live in flash, not in RAM
#else
#define snprintf_P snprintf  //A host build, where a literal is in RAM anyway
#endif
#include <Wire.h>

#define SECOND 5
#define MINUTE 4
#define HOUR 3
#define DAY 2
#define MONTH 1
#define YEAR 0

class DS3231_Logger {
public:
  DS3231_Logger();
  int begin(void);
  int setTime(int Year, int Month, int Day, int Hour, int Min, int Sec);

  void readTime();

  size_t formatTime(char* buf, size_t n, int mode = 0);

  size_t printTime(Print& out, int mode = 0);

  String getTime(int mode);
  float getTemp();
  int getValue(int n);
  int setAlarm(unsigned int Seconds);
  int clearAlarm();

private:
  int ADR = 0x68;    //Address of DS3231 (non-variable)
  int Time_Date[6];  //Store date time values of integers
};

#endif

Updated on 2026-10-04 at 04:52:16 +0000