一个实时时钟(RTC)是一种计算机时钟保持时间和是一个比较流行的单片机的特性。微控制器没有内置RTC需要外部RTC芯片保持时间。一般来说,高端微控制器有一个内置的RTC端理财业务方面,因为计时数嵌入式应用程序是必要的。
rtc数秒,分,小时,天,月,年。这些也可以用于当前日期和测量时间间隔。
MicroPython的机器配置模块提供了RTC类,并使用一个内置的RTC-supported端口。MicroPython模块还提供了一个“ntptime”同步时间的帮助下一个时钟源或服务器。
在本文中,我们将探索MicroPython RTC的模块和学习如何设置和获取的时间ESP8266 ESP32。
机器模块
MicroPython由几种特定于硬件模块。机器模块是最重要的一个,因为它管理的基本硬件功能和内置硬件外设支持港口。
控制模块有几类数字输入/输出,输出信号从外部设备,脉冲宽度调制,模拟数字转换,ADC外设,UART, SPI, I2C, i2,计时器,RTC,看门狗定时器,SD卡。
RTC类
MicroPython RTC的机器模块类是用于配置和管理支持的实时时钟端口。进口的MicroPython脚本使用这个语句:
从机器进口清债信托公司
另外,RTC类时自动进口机器导入模块如下:
进口机器
模块导入后,必须实例化一个对象RTC类的构造函数方法的帮助下。RTC类的构造函数方法有此原型:
类的机器。清债信托公司(id = 0,…)
“id”的构造函数参数,确定了内置的RTC(如果有多个RTC支持端口)。如果只有一个,那就是没有必要通过id作为参数。其他参数的构造函数方法用于设置时间RTC是可选的。
这是一个有效的实例化一个RTC对象的例子:
rtc = machine.RTC ()
RTC类提供了这些方法保持日期时间设置…
RTC.init (datetime):用于初始化RTC对象。当前日期时间作为参数。data-time作为8-tuple传递,这种格式:(年,月,日,小时,分钟,秒[微秒(tzinfo]]]]])。元组必须有一年、月和日的元素。其他都是可选的,可能是也可能不是通过取决于应用程序。
RTC.datetime ([datetimetuple]):用于获取或设置RTC的日期和时间。
- 如果不带参数调用,该方法返回当前日期-时间由一个8-tuple RTC的形式。
- 如果用于设置日期时间,以一个8-tuple作为参数的方法。
元组必须遵循这种格式:年、月、日,工作日,小时,分钟,秒,次秒级)。根据港口的次秒级元组可以毫秒或微秒。
RTC.deinit ():重置RTC时间2015年1月1日,和RTC重启。
RTC.now ():获取当前日期-时间清债信托公司,这是作为一个8-tuple返回。
RTC类提供了这些方法来配置报警设置…
清债信托公司。报警(id、时间*,重复= False)RTC:用于设置闹钟。传递的id必须作为参数如果有多个内置rtc端口;否则,没有必要。时间可以通过毫秒值或日期时间元组。如果传入的时间是毫秒,报警可以通过设置重复重复的关键字参数为True。从当前日期-时间的毫秒数的清债信托公司。
RTC.alarm_left (alarm_id = 0)报警:返回的毫秒数。
RTC.cancel (alarm_id = 0):用于取消报警。
RTC类提供了这些方法来配置一个中断…
清债信托公司。irq(*、触发器处理程序=没有醒= machine.IDLE):创建一个中断对象RTC引发的恐慌。它接受三个参数:触发、处理程序和。触发器总是设置为RTC.ALARM0。处理程序是一个回调函数,运行作为一个中断服务例程。睡眠模式后指定的RTC中断可以唤醒端口。
时间同步使用ntptime
RTC的时间并不总是必须手动设置。MicroPython提供ntptime模块,用于同步时间,维护UTC标准,并提供一个精确的时间。该模块是基于网络时间协议(NTP)。
国家结核控制规划协议同步的RTC时间电脑/控制器服务器或远程时钟源。RTC的模块便于精确校准时间。然而,董事会必须通过以太网连接到互联网或无线加入国家结核控制规划服务器。
模块导入MicroPython脚本使用这个语句:
进口ntptime
该模块提供了这些方法…
ntptime.settime ()当地时间:用于同步维护的清债信托公司或内部时钟源UTC标准时间。一些明确MicroPython ntptime模块让凝固时间()方法接受两个参数,时区和服务器。官方MicroPython ntptime模块的固件不接受任何参数。UTC的时代时间标准是1月1日,1970就是。使用的主机服务器MicroPython ntptime模块是“pool.ntp.org”
ntptime.time ():返回UTC时代以来经过的秒数。返回的值是一个整数。
再一次,确保董事会通过以太网连接到互联网或无线访问国家结核控制规划服务器。
RTC ESP8266 ESP32
ESP8266和ESP32单一内置的清债信托公司。下面是一个有效的例子实例化一个RTC对象,设置时间,获取当前日期-时间ESP8266 ESP32。
RTC ESP8266 ESP32
ESP8266和ESP32都单独的内置rtc。下面是一个有效的例子实例化一个RTC对象,设置时间,获取当前日期-时间ESP8266 ESP32。
从机器进口清债信托公司
rtc =清债信托公司()
清债信托公司。日期时间((2022, 7, 25, 1, 1, 30, 42, 0)) # set date and time
print (rtc.datetime()) #得到日期和时间
这是一个有效的例子设置RTC ESP8266和ESP32时间使用NTP服务器:
从机器进口清债信托公司
进口网络
进口ntptime
站= network.WLAN (network.STA_IF)
station.active(真正的)
站。连接(ssid,密码)#替换为您的无线网络名称和密码
rtc =清债信托公司()
ntptime.settime ()
print (rtc.datetime ())
使用ESP8266模块显示当地时间
国家结核控制规划服务器返回的时间是UTC时间。改变时间,UTC时间戳转换为本地时间戳。随着MicroPython是Python的一个子集,它没有直接的函数或方法将UTC时间转换为另一个时区。因此,有必要使用MicroPython固件模块的时候了。
对于这个项目,我们将UTC和当地时间显示的帮助下MicroPython ESP8266。
组件的要求
1。ESP8266 / ESP32 x1
2。电脑/笔记本电脑x1
3所示。USB连接线(ESP板连接到电脑)x1
电路的连接
为这个项目没有电路连接。只是ESP8266 / ESP32连接到你的电脑使用USB电缆。另外,确保uPyCraft IDE或Thonny IDE安装在你的电脑和上传MicroPython固件ESP8266 / ESP32(学习怎么在这里)。
接下来,启动uPyCraft IDE。根据导航工具- >选择串行通信端口串行并选择董事会通过导航工具- >。上传MicroPython固件后,你应该引导。py在“设备”选项卡。
创建一个新文件,在文件- >新建main.py并保存文件。下面的脚本复制到main.py。点击“下载并运行”按钮来执行脚本。
MicroPython脚本
这个项目是如何工作的
ESP8266与NTP服务器,并且得到了UTC时间,用于设置RTC日期-时间。UTC时间然后转换成当地时间(在本例中是)从使用功能模块。当地时间打印到控制台。最后,更新RTC的当地时间。
的代码
MicroPython脚本导入RTC从机器类,网络,ntptime,时间模块。其次,网络模块的WLAN类的一个对象被实例化。
connect()方法,用户定义函数定义与无线连接。定义函数断开()断开ESP8266 / ESP32 WiFi。了解这些功能,查看如何连接ESP8266和ESP32 WiFi吗。
ESP8266 / ESP32与WiFi通过调用connect()函数。你必须通过名称和你的个人无线网络关键/密码作为参数。
RTC类的一个对象被实例化使用machine.RTC()方法。当前UTC时间设置为ESP8266 / ESP32 RTC通过调用ntptime.settime ()。UTC时间设置在ESP8266 / ESP32 RTC tuple中的检索并显示在控制台。
UTC转换为当地时间,使用MicroPython模块(学习的时候了更多的在这里)。MicroPython是标准Python的时间模块的一个子集,包含几个功能适用于嵌入式应用程序。
UTC时间是在几秒钟内从UTC时代获得通过调用ntptime.time()方法。当前UTC时间是存储在一个变量中秒。时区时差timezone_hour存储在变量。你可以改变时区时差几小时的值,根据自己的国家或时区。
方法如下:
- 时区的差别是在几秒钟内转换为一个值,存储在变量timezone_sec。
- 秒的当地时间是通过添加时区时差在几秒钟内从RTC获得UTC时间。
- 当地日期-时间然后获得通过更新time.localtime秒作为一个参数()方法。
- 返回的时间time.localtime()存储在一个元组。
- 使用元组在控制台上显示当地时间。元组格式,用于更新RTC日期-时间当地时间。
- 最后,通过调用断开断开ESP8266 / ESP32 WiFi()函数。
结果
你可能也喜欢:
了下:354manbetx
与本文有关的问题?
询问和讨论EDAboard.com和Electro-Tech-Online.com论坛。
告诉我们你的想法! !
你必须登录发布评论。