Разница во времени между Python и Micro Python на ESP32 - PullRequest
1 голос
/ 16 апреля 2020

Я работаю с модулем utime в Micro Python. Я заметил разницу во времени при преобразовании во время эпохи между utime.time () на ESP32 в Micro Python и time.time () в обычном Python. Я также использую плату DS3231 RT C, которая подключена к ESP32, чтобы сделать мое время постоянным.

Вот код:

from machine import Pin, ADC, reset, RTC, I2C
import DS3231
import utime

#setup DS3231 RTC
i2c = I2C(sda = Pin(22), scl=Pin(21))
ds = DS3231.DS3231(i2c)
#set time
tm = ds.DateTime() # Time from DS3231 which is accurate to my computer time

#ds.DateTime returns this [2020, 4, 15, 3, 12, 42, 4] which is Y,M,D,day of week,H,M,S
tm_tup = (tm[0], tm[1], tm[2], tm[4], tm[5], 0,0,0) #convert to tuple to set ESP32 clock which is 
#supposed to also set utime
RTC().datetime(tm_tup) #sets time on ESP32
utc  = 946684800 + utime.time() # since utime starts at 1/1/2000 and utc starts 1/1/1970
print(tm)  #time from DS3231 RTC
print(utime.time()) 
print(utc) #added to utime.time() to make UTC

Функция ds.DateTime() возвращает то же время, что и мой компьютер в списке. Я переставляю значения в кортеж, чтобы установить RTC.datetime(), который должен синхронизироваться c с модулем utime. Все, что мне действительно нужно, это точная метка времени UT C. Местное время в порядке.

Существует несоответствие, когда я проверяю utime.time() против Python модуля time.time(), даже если я установил на моем DS3231 точное время на моем компьютере. Выходы следующие. Я запускал сценарий Python примерно через 30 секунд после запуска версии ESP32.

Выход ESP32

[2020, 4, 15, 3, 15, 46, 49] #Exact date time from my computer
640389600
1587074400

Python Выход

>>> import time
>>> print (time.time())
1586983668.94813

Просто любопытно, почему существует такая разница.

...