forked from GyverLibs/microDS3231
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
671 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,130 @@ | ||
![License: MIT](https://img.shields.io/badge/License-MIT-green.svg) | ||
![author](https://img.shields.io/badge/author-AlexGyver-informational.svg) | ||
# microDS3231 | ||
Лёгкая библиотека для работы с RTC DS3231 для Arduino | ||
- Чтение и запись времени | ||
- Вывод в char* и String | ||
- Чтение температуры датчика | ||
|
||
### Совместимость | ||
Совместима со всеми Arduino платформами (используются Arduino-функции) | ||
|
||
## Содержание | ||
- [Установка](#install) | ||
- [Инициализация](#init) | ||
- [Использование](#usage) | ||
- [Пример](#example) | ||
- [Версии](#versions) | ||
- [Баги и обратная связь](#feedback) | ||
|
||
<a id="install"></a> | ||
## Установка | ||
- Библиотеку можно найти по названию **microDS3231** и установить через менеджер библиотек в: | ||
- Arduino IDE | ||
- Arduino IDE v2 | ||
- PlatformIO | ||
- [Скачать библиотеку](https://github.com/GyverLibs/microDS3231/archive/refs/heads/main.zip) .zip архивом для ручной установки: | ||
- Распаковать и положить в *C:\Program Files (x86)\Arduino\libraries* (Windows x64) | ||
- Распаковать и положить в *C:\Program Files\Arduino\libraries* (Windows x32) | ||
- Распаковать и положить в *Документы/Arduino/libraries/* | ||
- (Arduino IDE) автоматическая установка из .zip: *Скетч/Подключить библиотеку/Добавить .ZIP библиотеку…* и указать скачанный архив | ||
- Читай более подробную инструкцию по установке библиотек [здесь](https://alexgyver.ru/arduino-first/#%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA) | ||
|
||
<a id="init"></a> | ||
## Инициализация | ||
```cpp | ||
MicroDS3231 rtc; | ||
``` | ||
|
||
<a id="usage"></a> | ||
## Использование | ||
```cpp | ||
void setTime(int8_t seconds, int8_t minutes, int8_t hours, int8_t date, int8_t month, int16_t year); // установка времени | ||
void setTime(uint8_t param); // установка времени == времени компиляции | ||
void setTime(DateTime time); // установить из структуры DateTime | ||
DateTime getTime(void); // получить в структуру DateTime | ||
String getTimeString(); // получить время как строку вида 12:08:09 | ||
String getDateString(); // получить дату как строку вида 2021.04.08 | ||
void getTimeChar(char* array); // получить время как char array [8] вида 12:08:09 | ||
void getDateChar(char* array); // получить дату как char array [10] вида 2021.04.08 | ||
bool lostPower(void); // проверка на сброс питания | ||
uint8_t getSeconds(void); // получить секунды | ||
uint8_t getMinutes(void); // получить минуты | ||
uint8_t getHours(void); // получить часы | ||
uint8_t getDay(void); // получить день недели | ||
uint8_t getDate(void); // получить число | ||
uint16_t getYear(void); // получить год | ||
uint8_t getMonth(void); // получить месяц | ||
float getTemperatureFloat(void);// получить температуру float | ||
int getTemperature(void); // получить температуру int | ||
``` | ||
<a id="example"></a> | ||
## Пример | ||
Остальные примеры смотри в **examples**! | ||
```cpp | ||
// демо возможностей библиотеки | ||
#include <microDS3231.h> | ||
MicroDS3231 rtc; | ||
void setup() { | ||
Serial.begin(9600); | ||
if (rtc.lostPower()) { // при потере питания | ||
rtc.setTime(COMPILE_TIME); // установить время компиляции | ||
} | ||
//rtc.setTime(SEC, MIN, HOUR, DAY, MONTH, YEAR); // устанвока времени вручную | ||
} | ||
void loop() { | ||
printTime(); | ||
delay(500); | ||
} | ||
void printTime() { | ||
Serial.print(rtc.getHours()); | ||
Serial.print(":"); | ||
Serial.print(rtc.getMinutes()); | ||
Serial.print(":"); | ||
Serial.print(rtc.getSeconds()); | ||
Serial.print(" "); | ||
Serial.print(rtc.getDay()); | ||
Serial.print(" "); | ||
Serial.print(rtc.getDate()); | ||
Serial.print("/"); | ||
Serial.print(rtc.getMonth()); | ||
Serial.print("/"); | ||
Serial.println(rtc.getYear()); | ||
Serial.println(rtc.getTemperatureFloat()); | ||
//Serial.println(rtc.getTemperature()); | ||
Serial.println(rtc.getTimeString()); | ||
Serial.println(rtc.getDateString()); | ||
// работа с char | ||
char time[8]; | ||
rtc.getTimeChar(time); // записать в массив time | ||
Serial.println(time); | ||
char date[10]; | ||
rtc.getDateChar(date); | ||
Serial.println(date); | ||
Serial.println(); | ||
} | ||
``` | ||
|
||
<a id="versions"></a> | ||
## Версии | ||
- v1.2 - добавлены ограничения на вводимые в setTime числа. Также нельзя ввести 29 февраля увы =) | ||
- v1.3 - пофикшено зависание, когда модуль отключен но опрашивается | ||
- v1.4 - незначительный фикс | ||
- v2.0 - новые возможности, оптимизация и облегчение | ||
- v2.1 - добавил вывод температуры, вывод в String и char | ||
- v2.2 - исправлены дни недели (пн-вс 1-7) | ||
|
||
<a id="feedback"></a> | ||
## Баги и обратная связь | ||
При нахождении багов создавайте **Issue**, а лучше сразу пишите на почту [[email protected]](mailto:[email protected]) | ||
Библиотека открыта для доработки и ваших **Pull Request**'ов! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
// демо возможностей библиотеки | ||
#include <microDS3231.h> | ||
MicroDS3231 rtc; | ||
|
||
void setup() { | ||
Serial.begin(9600); | ||
|
||
if (rtc.lostPower()) { // при потере питания | ||
rtc.setTime(COMPILE_TIME); // установить время компиляции | ||
} | ||
|
||
//rtc.setTime(SEC, MIN, HOUR, DAY, MONTH, YEAR); // устанвока времени вручную | ||
} | ||
|
||
void loop() { | ||
printTime(); | ||
delay(500); | ||
} | ||
|
||
void printTime() { | ||
Serial.print(rtc.getHours()); | ||
Serial.print(":"); | ||
Serial.print(rtc.getMinutes()); | ||
Serial.print(":"); | ||
Serial.print(rtc.getSeconds()); | ||
Serial.print(" "); | ||
Serial.print(rtc.getDay()); | ||
Serial.print(" "); | ||
Serial.print(rtc.getDate()); | ||
Serial.print("/"); | ||
Serial.print(rtc.getMonth()); | ||
Serial.print("/"); | ||
Serial.println(rtc.getYear()); | ||
|
||
Serial.println(rtc.getTemperatureFloat()); | ||
//Serial.println(rtc.getTemperature()); | ||
Serial.println(rtc.getTimeString()); | ||
Serial.println(rtc.getDateString()); | ||
|
||
// работа с char | ||
char time[8]; | ||
rtc.getTimeChar(time); // записать в массив time | ||
Serial.println(time); | ||
|
||
char date[10]; | ||
rtc.getDateChar(date); | ||
Serial.println(date); | ||
|
||
Serial.println(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
#include <microDS3231.h> | ||
MicroDS3231 rtc; | ||
|
||
void setup() { | ||
Serial.begin(9600); | ||
|
||
// получаем все данные в структуру | ||
DateTime now = rtc.getTime(); | ||
|
||
// меняем любой параметр | ||
now.year += 5; | ||
// now.second; | ||
// now.minute; | ||
// now.hour; | ||
// now.day; | ||
// now.date; | ||
// now.month; | ||
|
||
// отправляем в rtc | ||
rtc.setTime(now); | ||
} | ||
|
||
void loop() { | ||
printTime(); | ||
delay(500); | ||
} | ||
|
||
void printTime() { | ||
// получаем все данные в структуру и используем их | ||
// этот способ быстрее и "легче" вызова отдельных get-функций | ||
DateTime now = rtc.getTime(); | ||
|
||
Serial.print(now.hour); | ||
Serial.print(":"); | ||
Serial.print(now.minute); | ||
Serial.print(":"); | ||
Serial.print(now.second); | ||
Serial.print(" "); | ||
Serial.print(now.day); | ||
Serial.print(" "); | ||
Serial.print(now.date); | ||
Serial.print("/"); | ||
Serial.print(now.month); | ||
Serial.print("/"); | ||
Serial.println(now.year); | ||
} |
23 changes: 23 additions & 0 deletions
23
examples/RTClib comparsion/testDS3231_RTClib/testDS3231_RTClib.ino
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#include <Wire.h> | ||
#include <RTClib.h> | ||
RTC_DS3231 rtc; | ||
void setup () { | ||
uartBegin(); | ||
rtc.begin(); | ||
|
||
if (rtc.lostPower()) { | ||
rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); | ||
} | ||
DateTime now = rtc.now(); | ||
uartPrintln(now.hour()); | ||
uartPrintln(now.minute()); | ||
uartPrintln(now.second()); | ||
uartPrintln(now.year()); | ||
uartPrintln(now.month()); | ||
uartPrintln(now.day()); | ||
} | ||
|
||
void loop () { | ||
} | ||
// 3364 (10%) | ||
// 285 (13%) |
21 changes: 21 additions & 0 deletions
21
examples/RTClib comparsion/testDS3231micro/testDS3231micro.ino
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
#include <microDS3231.h> | ||
MicroDS3231 rtc; | ||
|
||
void setup() { | ||
uartBegin(); | ||
|
||
if (rtc.lostPower()) { // при потере питания | ||
rtc.setTime(COMPILE_TIME); // установить время компиляции | ||
} | ||
uartPrintln(rtc.getHours()); | ||
uartPrintln(rtc.getMinutes()); | ||
uartPrintln(rtc.getSeconds()); | ||
uartPrintln(rtc.getDate()); | ||
uartPrintln(rtc.getMonth()); | ||
uartPrintln(rtc.getYear()); | ||
} | ||
|
||
void loop() { | ||
} | ||
// 2466 (8%) | ||
// 75 (3%) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
|
||
####################################### | ||
# Syntax Coloring Map For microDS3231 | ||
####################################### | ||
|
||
####################################### | ||
# Datatypes (KEYWORD1) | ||
####################################### | ||
|
||
microDS3231 KEYWORD1 | ||
MicroDS3231 KEYWORD1 | ||
DateTime KEYWORD1 | ||
|
||
####################################### | ||
# Methods and Functions (KEYWORD2) | ||
####################################### | ||
setTime KEYWORD2 | ||
getTime KEYWORD2s | ||
lostPower KEYWORD2 | ||
getSeconds KEYWORD2 | ||
getMinutes KEYWORD2 | ||
getHours KEYWORD2 | ||
getDay KEYWORD2 | ||
getDate KEYWORD2 | ||
getYear KEYWORD2 | ||
getMonth KEYWORD2 | ||
getTemperatureFloat KEYWORD2 | ||
getTemperature KEYWORD2 | ||
getTimeString KEYWORD2 | ||
getDateString KEYWORD2 | ||
getTimeChar KEYWORD2 | ||
getDateChar KEYWORD2 | ||
|
||
second KEYWORD2 | ||
minute KEYWORD2 | ||
hour KEYWORD2 | ||
day KEYWORD2 | ||
date KEYWORD2 | ||
month KEYWORD2 | ||
year KEYWORD2 | ||
|
||
####################################### | ||
# Constants (LITERAL1) | ||
####################################### | ||
COMPILE_TIME LITERAL1 | ||
BUILD_SEC LITERAL1 | ||
BUILD_MIN LITERAL1 | ||
BUILD_HOUR LITERAL1 | ||
BUILD_DAY LITERAL1 | ||
BUILD_MONTH LITERAL1 | ||
BUILD_YEAR LITERAL1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
name=microDS3231 | ||
version=2.2 | ||
author=AlexGyver <[email protected]> | ||
maintainer=AlexGyver <[email protected]> | ||
sentence=Light library for DS3231 RTC module | ||
paragraph=Light library for DS3231 RTC module | ||
category=Device Control | ||
url=https://github.com/GyverLibs/microDS3231 | ||
architectures=* |
Oops, something went wrong.