跳转到主要内容

CircuitPython库,用于DS3231高精度实时时钟。

项目描述

介绍

Documentation Status Discord Build Status Code Style: Black

DS3231的数据表解释说这个部件是一个“极精确的I²C-集成RTC/TCXO/晶振”。嘿,它确实做到了它所说的!这个实时时钟(RTC)是您可以在小型、低功耗封装中获得的最高精度。

大多数RTC使用外部32kHz定时晶振来计时,功耗低。这很好,但是这些晶振有轻微的漂移,尤其是在温度变化时(温度变化会非常非常非常轻微地改变振荡频率,但这确实会累积!)这个RTC在坚固的封装中,因为晶振在芯片内部!在集成晶振旁边是一个温度传感器。该传感器通过增加或减少时钟滴答来补偿频率变化,以便保持时间同步。

这是您可以得到的最精细的RTC,现在我们有了它的小型、面包板友好的分线板。将硬币电池插入后面,您可以在主电源丢失的情况下获得数年的精确时间保持。非常适合数据记录和时钟,或任何需要真正知道时间的场合。

DS3231 Product Image

依赖项

此驱动程序依赖于

请确保所有依赖项都可在CircuitPython文件系统中可用。这可以通过下载Adafruit 库和驱动程序包轻松实现。

从PyPI安装

在支持的系统如树莓派上,您可以从PyPI本地安装驱动程序。为当前用户安装

pip3 install adafruit-circuitpython-ds3231

系统范围内安装(在某些情况下可能需要)

sudo pip3 install adafruit-circuitpython-ds3231

在您当前项目中虚拟环境中安装

mkdir project-name && cd project-name
python3 -m venv .venv
source .venv/bin/activate
pip3 install adafruit-circuitpython-ds3231

使用说明

基础

当然,您必须导入库才能使用它

import adafruit_ds3231
import time

所有Adafruit RTC库都接受一个实例化的和激活的I2C对象(来自board库)作为其构造函数的参数。创建I2C对象的方式取决于您所使用的板。对于带有标有SCL和SDA引脚的板,您可以

import board

现在,初始化I2C总线

i2c = board.I2C()  # uses board.SCL and board.SDA

一旦创建了I2C接口对象,您就可以使用它来实例化RTC对象

rtc = adafruit_ds3231.DS3231(i2c)

日期和时间

要设置时间,您需要将datetime设置为一个time.struct_time对象

rtc.datetime = time.struct_time((2017,1,9,15,6,0,0,9,-1))

设置RTC后,通过读取datetime属性获取时间,并访问struct_time的标准属性,如tm_yeartm_hourtm_min

t = rtc.datetime
print(t)
print(t.tm_hour, t.tm_min)

闹钟

要设置时间,需要将alarm1alarm2设置为一个包含time.struct_time对象和表示频率的字符串(如“hourly”)的元组

rtc.alarm1 = (time.struct_time((2017,1,9,15,6,0,0,9,-1)), "daily")

设置RTC后,通过读取相应的alarm1_statusalarm2_status属性来检索闹钟状态。一旦为True,将其设置为False以重置。

if rtc.alarm1_status:
    print("wake up!")
    rtc.alarm1_status = False

文档

本库的API文档可以在Read the Docs上找到。

有关构建库文档的信息,请参阅本指南

贡献

欢迎贡献!在为本项目做出贡献之前,请阅读我们的行为准则,以帮助该项目保持欢迎。

项目详情


下载文件

下载您平台上的文件。如果您不确定要选择哪一个,请了解更多关于安装包的信息。

源代码分发

adafruit_circuitpython_ds3231-2.4.21.tar.gz (298.6 kB 查看散列值)

上传时间 源代码

构建分发