コード例 #1
0
ファイル: ds1302z_rw.py プロジェクト: mahenzon/rpi.rtc
# Read from RTC, write to RTC

from datetime import datetime, timezone
import pyRPiRTC


def format_dt(dt):
    return dt.strftime('%Y.%m.%d %H:%M:%S')


def utc_to_local(utc_dt):
    return utc_dt.replace(tzinfo=timezone.utc).astimezone(tz=None)


rtc = pyRPiRTC.DS1302()
# rtc = pyRPiRTC.DS1302(ce_pin=11, data_pin=12, clk_pin=13)  # setup custom GPIO ports

# dt_now = datetime.now()  # datetime WITH timezone info
dt_now = datetime.utcnow()  # datetime without timezone info
print('Now is (UTC)', format_dt(dt_now))
# Now is (UTC) 2018.06.09 13:29:03

rtc.write_datetime(dt_now)

dt_rtc = rtc.read_datetime()
# to get unix timestamp use .read_timestamp
print('RTC time is:', format_dt(dt_rtc))
# RTC time is: 2018.06.09 13:29:03
print('With applied timezone info current time is:',
      format_dt(utc_to_local(dt_rtc)))
コード例 #2
0
import sys
import pyRPiRTC
import time
from datetime import datetime

my_format = '%d/%m/%Y %H:%M:%S'
rtc = pyRPiRTC.DS1302(clk_pin=11, data_pin=13, ce_pin=15)


def set_date_time(time, f=my_format):
    global rtc
    dt = datetime.strptime(time, f)
    rtc.write_datetime(dt)


print('Press CTRL + C to end the script!')
try:
    #set_date_time(datetime.now().strftime(my_format)) # uncomment this to set date/time
    while True:
        cdt = rtc.read_datetime()
        print('Current date: {}'.format(cdt.strftime('%d/%m/%Y')))
        print('Current time: {}\n'.format(cdt.strftime('%H:%M:%S')))
        time.sleep(1)

except ValueError:
    sys.exit('error with RTC chip, check wiring')

except KeyboardInterrupt:
    print('\nScript end!')

finally: