rzegkly 发表于 2020-9-26 16:20:35

【mind+】物联时钟

本帖最后由 rzegkly 于 2020-9-26 16:20 编辑

当我们看到太阳升起时,远在英国的人还在睡梦中。随着地球自西向东自转,一天中太阳东升西落,在太阳照射到的地方是白天,太阳照射不到的地方就黑夜,因此,处在不同时区的地方时不同,时差不同。我们可以借助使用掌控板板载的无线上网 WIFI,制作一个物联网手表,
一、【思路】
1.使用掌控板板载的无线上网 WIFI功能模块,通过网络同步自动获取同步时间,
2.如果网络连接成功,RGB灯绿亮,音乐JUMP_up响起,时间显示到 OLED 显示屏上。
3.OLED 显示屏分别显示:年、月、日、星期、距2021元旦的天数
二、【环境】
1、硬件: 掌控板
2、软件:Mind+

三、【地理知识】
1.时差:
      随着地球自西向东自转,一天中太阳东升西落,在太阳照射到的地方是白天,太阳照射不到的地方就黑夜,因此,处在不同时区的地方时不同,两个地区地方时之间的差别称作为时差。

2.时区(Time Zone)
    时区是地球上的区域使用同一个时间定义。1884年在华盛顿召开国际经度会议时,为了克服时间上的混乱,现今全球一共分为 24 个时区,我国土地辽阔,跨越 5 个时区,但都统一采用首都北京所在的东八区的区时作为全国时间,也就是我们常说的北京时间。授时服务器可以自行指定,一般默认为“ntp.ntsc.ac.cn”。

四、配置:
1.进入Mind+,用数据线将掌控板与电脑连接com27,
2.在模块区点击右下角添加扩展按钮,选择——将程序下载到掌控板运行



五、编程
(1)获取时间
在生活中,电脑或手机设备想要连接无线网络,只需要打开无线网络界面,选择一个 WiFi,输入正确的密码就能成功联网了。掌控板联网的原理相同的,但由于掌控板自身无法检测 WiFi进行输入密码连接网络,因此需要使用指令来编程控制连接网络。



    在掌控板的左边 WiFi 模块区中有连接 WiFi 的指令,在这个指令中输入需要连接的 WiFi 名称,和对应的正确密码,就能实现无线网络的连接了。连接上网络后,接下来就需要让掌控板获取网络上的时间源,这个时间源就是网络中按照国际标准提供的可靠时间。在 WiFi 模块中,可以找到“同步网络时间”的指令,通过选择不同的时区,来获取当前地区的时间。
(2)显示时间
   获取到的时间通过 OLED 显示屏显示出来,为了确保显示正常不会出现其他内容叠加,需要先将 OLED 显示屏原本的内容清空。然后使用“显示文本”的指令进行显示内容,显示的位置 x、y 自行设置,显示的内容即为获取到的时间,在掌控板传感器模块中找到“本地时间”指令,在这个指令中可以选择年月日时分秒等数值。
需要注意的是,“本地时间”指令获取到的是具体的时间数值,属于数字类型,“显示文本”指令中的文本框只能放字符串类型的内容,也就是文本,两者属性不同,所以,“本地时间”指令是无法直接放入“显示文本”指令的文本框中。

因此要使用数据类型转换的指令,将“本地时间”数字类型指令转化为字符串类型,这样就可以放到“显示文本”指令中的文本框了。这样显示出来的便是具体的年份数值,如果要显示“X 年”的格式,则需要在数值后面加多一个“年”字,调整两者之间合适的显示位置 x、y。
同样,如果想要显示“X 年 X 月 X 日 X : X : X”的格式,则把显示的内容按顺序排好,然后对每个显示内容的位置调整到合适,避免内容出现重叠现象。

(3)显示星期
由于星期数在python中从0--6,即0代表星期一 ;6代表星期日
列表变量 赋值给 week,定义列表用单引号和逗号隔开,即'星期一','星期二','星期三','星期四','星期五','星期六','星期日'
本地时间星期从变量week中调用显示出来。
说明 :
设置好显示内容后,一定要加上“ OLED 显示生效”的指令,文本内容才能正常显示出来。另外,时间是在不断变化的,OLED 屏幕上显示的内容也需要不断更新,因此,显示内容和显示生效的指令都要加上重复执行指令,才能保证时间的实时更新。
这样便制作好了一个物联时钟。





hnyzcj 发表于 2020-9-26 20:20:08

赞一个

rzegkly 发表于 2020-9-26 21:00:46

hnyzcj 发表于 2020-9-26 20:20
赞一个

谢谢
页: [1]
查看完整版本: 【mind+】物联时钟