2731| 2
|
[M10教程] 【行空板】“时间不对”怎么办?如何手动设置系统时间? |
本帖最后由 Forgotten 于 2023-10-25 13:04 编辑 问题 当我们拿到行空板,获取系统时间或者向siot发送数据的时候,可能会发现时间跟当前真实环境的北京时间是不一样的,这是为什么呢? 原因 思考一下,我们人是怎么知道现在是几月几日几时几分?看手机、电脑、手表,那么手机、电脑、手表这些设备又是怎么知道现在的时间呢? 根据生活经验来看,传统的时钟是靠电池或者发条来保证时间一直不断的,如果没电或发条弹力完了则时间就断了,之后把电池重新装上或者重新上发条,时间还是从上一次停电的位置开始走,因此需要手动校准一次 电脑、手机这些为什么设备为什么关机之后再开机,时间依然还是准确的? 答案是这些设备都有电,手机有电池可以持续让时间保持,电脑同样在主板上也有一颗纽扣电池用于关机保持时间不停止。 另外这些这些设备是联网的,他们的系统可以通过网络来经常校准时间,如果一台手机或者电脑长时间不联网,时间也会出现偏差,这时候就需要在系统设置里手动修改时间了。 行空板同理: 首先,要保证时间一直走,那么就需要一直供电,因此板子如果断电再开机,时间就从上次关机开始走,这就是为什么新板子拿到手里“时间不对”。 如果要让时间一直保持正确就只能让板子一直不断电,或者在每次开机的时候校准一次时间。 校准时间的方法 自动校准: 如何校准时间呢?与电脑一样,由于行空板搭载了linux系统,因此只要按照行空板官网文档的方法让板子联网(wifi、网线均可),系统会自动连接网络上的时间服务器(NTP服务器)进行时间的校准。 手动校准: 如果现场没有网络怎么办?那么与电脑一样可以手动设置时间,只需要一条指令即可。 在linux终端中,使用date命令可以操作系统时间 - 查看系统时间:输入 date - 设置系统时间:输入 date -s "年-月-日 时:分:秒" 首先连接行空板终端(Mind+、jupyter终端或者其他ssh工具均可): 然后在”终端”区域输入date回车就可以查看时间 然后这里尝试把系统时间设置为2023年10月23日13点45分0秒,输入 date -s "2023-10-23 13:45:00" 回车即可 然后再输入date可以看到时间已经设置完成了 用个GIF动图演示: 接下来尝试用Python显示时间,可以看到已经是当前时间了: 再提供两种需要外接模块的方式保持时间的方法: 1、使用RTC模块进行校准: 前面电脑和手机之所以断电能保持时间,是因为手机或电脑都有电池,即使关机了依然有电持续走时间,因此我们可以给行空板外接一个实时时钟模块,实时时钟模块自带电池,可以保持时间一直运行,行空板只需要在开机的时候从时钟模块获取一次时间即可。 此处以Gravity: I2C SD2405 RTC 实时时钟模块为例: 将模块连接到行空板的I2C口,然后打开Mind+编程。 首先需要将当前时间写入RTC模块中: 现在时钟模块里面的时间就是调整之后的时间了,修改程序,去除设置时间的积木,直接获取时间: 然后使用字符串合并将时间按照date命令需要的方式组合成 年-月-日 时:分:秒 的形式,并存入“时间”这个变量中 然后使用“代码生成器”扩展,将“时间 ”变量组合到”命令“字符串中,然后使用os库运行指令即可: 2、使用GPS模块进行校准: 在户外的设备因为没有网络所以还有一种方法是使用卫星授时,行空板可以通过io口或者usb口外接卫星定位模块获取卫星授时,此方法的缺点是在室内收不到卫星信号,因此只能在户外使用。 完。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed