コード例 #1
0
def check_alarm_time(alarm_time, rtc, isStart):
    print('check alarm time')
    #def datetime_tuple(year=None, month=None, day=None, weekday=None, hour=None, minute=None, second=None, millisecond=None)
    currtime = rtc.datetime()
    #(year, month, day, weekday, hours, minutes, seconds, subseconds)
    timarray = alarm_time.split(":")
    my_time = urtc.datetime_tuple(int(currtime[0]), int(currtime[1]),
                                  int(currtime[2]), int(currtime[3]),
                                  int(timarray[0]), int(timarray[1]),
                                  int(timarray[2]), 0)
    alarm_end_time = urtc.datetime_tuple(int(currtime[0]), int(currtime[1]),
                                         int(currtime[2]), int(currtime[3]),
                                         int(timarray[0]), int(timarray[1]),
                                         int(timarray[2]) + 30, 0)
    hour = my_time[4]
    ampm = "AM"
    if (hour > 12):
        hour = hour - 12
        if (hour == 0):
            hour = 12
        ampm = "PM"
    timdata = ("%d:%02d:%02d " + ampm) % (
        hour, my_time[5],
        my_time[6]) + "-" + "%d/%d/%d" % (my_time[1], my_time[2], my_time[0])
    #print(my_time)
    if currtime > my_time and currtime < alarm_end_time:
        print('before execute alrm')
        excecute_alarm(isStart)
コード例 #2
0
ファイル: clock.py プロジェクト: chrisb2/water-system
def equal_to_today(date):
    dt = datetime()
    today = urtc.datetime_tuple(dt.year, dt.month, dt.day, 0, 0, 0, 0, 0)
    secs = urtc.tuple2seconds(today)

    year, month, day = date.split('-')
    curr = urtc.datetime_tuple(int(year), int(month), int(day), 0, 0, 0, 0, 0)
    curr_sec = urtc.tuple2seconds(curr)

    return curr_sec == secs
コード例 #3
0
def settimeDS3231(sclPin=5, sdaPin=4):
    """Code to set a DS3231 external Real Time Clock from an NTP server
    """
    from ntptime import time  # use the ntp method in firmware
    import urtc
    from machine import I2C, Pin
    import utime
    t_ntp = time()  # get time from the NTP server
    tm_ntp = utime.localtime(t_ntp)  # convert time format
    # initialize I2C interface & create I2C device for clock
    i2c = I2C(scl=Pin(sclPin), sda=Pin(sdaPin))
    rtc_ds3231 = urtc.DS3231(i2c)
    # get time from the DS3231
    datetime_ds3231 = rtc_ds3231.datetime()
    print('Before resetting: rtc_ds3231.datetime() = ', datetime_ds3231)
    new_datetime = urtc.datetime_tuple(year=tm[0],
                                       month=tm[1],
                                       day=tm[2],
                                       hour=tm[3],
                                       minute=tm[4],
                                       second=tm[5])
    print('setting DS3231 datetime from NTP to: ', new_datetime)
    rtc_ds3231.datetime(new_datetime)  # Set new ds3231 time
    # confirm new time was set on ds3231
    datetime_ds3231 = rtc_ds3231.datetime()
    print('After resetting: rtc_ds3231.datetime() = ', datetime_ds3231)
コード例 #4
0
ファイル: clock.py プロジェクト: chrisb2/water-system
def greater_than_tommorow(date):
    secs = urtc.tuple2seconds(datetime()) + _SECS_IN_DAY

    year, month, day = date.split('-')
    curr = urtc.datetime_tuple(int(year), int(month), int(day), 0, 0, 0, 0, 0)
    curr_sec = urtc.tuple2seconds(curr)

    return curr_sec > secs
コード例 #5
0
def countdown(now, at):
    schedule = urtc.datetime_tuple(year=now.year,
                                   month=now.month,
                                   day=now.day,
                                   weekday=now.weekday,
                                   hour=at[0],
                                   minute=at[1],
                                   second=0)

    return urtc.tuple2seconds(now) - urtc.tuple2seconds(schedule)
コード例 #6
0
ファイル: config.py プロジェクト: chrisb2/water-system
# NZDT, 13 hours ahead
HOURS_DIFF_FROM_GMT = 13

# Resistor Divider properties (Ohms)
R1 = 10070000
R2 = 3329000
# External resister divider (ohms)
RESISTOR_RATIO = (R1 + R2) / R2

# ADC fudge factor - required to get correct battery voltage
ADC_FACTOR = 1.08

# System wakeup time Properties
# 5AM GMT
RTC_ALARM = urtc.datetime_tuple(None, None, None, None, 5, 0, None, None)
# Every hour
# RTC_ALARM = urtc.datetime_tuple(None, None, None, None, None, 0, None, None)
# Time to sleep between attempts to connect to WiFi
SLEEP_ONE_MINUTE = \
    urtc.datetime_tuple(None, None, None, None, None, None, 0, None)

SCL_PIN = Pin(17)
SDA_PIN = Pin(5)
WAKEUP_PIN = Pin(4, Pin.IN, Pin.PULL_UP)
WATER_ON_PIN = Pin(33, Pin.OUT, Pin.PULL_DOWN, value=0)
WATER_OFF_PIN = Pin(32, Pin.OUT, Pin.PULL_DOWN, value=0)
NO_SLEEP_PIN = Pin(26, Pin.IN, Pin.PULL_DOWN, value=0)
BATTERY_PIN = Pin(34)  # ADC

# Number of ADC reads to take average of
コード例 #7
0
def create_alarmtime(alarm_time, currtime):
    timarray = alarm_time.split(":")
    my_time = urtc.datetime_tuple(int(currtime[0]), int(currtime[1]),
                                  int(currtime[2]), int(currtime[3]),
                                  int(timarray[0]), int(timarray[1]),
                                  int(timarray[2]), 0)
コード例 #8
0
ファイル: clock.py プロジェクト: chrisb2/water-system
def future(minutes):
    """Get a date time in the future by the specified minutes."""
    dt = datetime()
    return urtc.datetime_tuple(None, None, None, None, None,
                               dt.minute + minutes, None, None)