CircuitPython库,用于DS3231高精度实时时钟。
项目描述
介绍
DS3231的数据表解释说这个部件是一个“极精确的I²C-集成RTC/TCXO/晶振”。嘿,它确实做到了它所说的!这个实时时钟(RTC)是您可以在小型、低功耗封装中获得的最高精度。
大多数RTC使用外部32kHz定时晶振来计时,功耗低。这很好,但是这些晶振有轻微的漂移,尤其是在温度变化时(温度变化会非常非常非常轻微地改变振荡频率,但这确实会累积!)这个RTC在坚固的封装中,因为晶振在芯片内部!在集成晶振旁边是一个温度传感器。该传感器通过增加或减少时钟滴答来补偿频率变化,以便保持时间同步。
这是您可以得到的最精细的RTC,现在我们有了它的小型、面包板友好的分线板。将硬币电池插入后面,您可以在主电源丢失的情况下获得数年的精确时间保持。非常适合数据记录和时钟,或任何需要真正知道时间的场合。
依赖项
此驱动程序依赖于
请确保所有依赖项都可在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_year、tm_hour和tm_min。
t = rtc.datetime
print(t)
print(t.tm_hour, t.tm_min)
闹钟
要设置时间,需要将alarm1或alarm2设置为一个包含time.struct_time对象和表示频率的字符串(如“hourly”)的元组
rtc.alarm1 = (time.struct_time((2017,1,9,15,6,0,0,9,-1)), "daily")
设置RTC后,通过读取相应的alarm1_status或alarm2_status属性来检索闹钟状态。一旦为True,将其设置为False以重置。
if rtc.alarm1_status:
print("wake up!")
rtc.alarm1_status = False
文档
本库的API文档可以在Read the Docs上找到。
有关构建库文档的信息,请参阅本指南。
贡献
欢迎贡献!在为本项目做出贡献之前,请阅读我们的行为准则,以帮助该项目保持欢迎。
项目详情
下载文件
下载您平台上的文件。如果您不确定要选择哪一个,请了解更多关于安装包的信息。
源代码分发
构建分发
散列值 for adafruit_circuitpython_ds3231-2.4.21-py3-none-any.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 0689e1ca2d984334ab23af2cb50504b4b055ab22d198d984b25809e8c30d8e3e |
|
MD5 | db9dfca794f382a8661441240c1b52ee |
|
BLAKE2b-256 | 46451b6e3be90862add5ff56c1d794b12e4f9c81fd7b9d5f0e11ec208b70f7e9 |