首届中国国际进口博览会将于2018年11月5日至10日在上海举办,为提醒工作进度,按时完成各项任务,需要制作精确计时的倒计时钟。
时钟的布局是标题:shanghai expo ;第二行倒计时天数:countdown;第三行现在的时间;第四行现在的年月日星期几。
一、ntp校准rtc时间
(1)获取esp8266 AT命令固件,并且更新到最新版本;
(2)把coreUSB,esp8266,rtc层叠起来,刷入coreUSB_ESP8266_RTC_NTP.ino;
a;esp8266的串口在管脚0,1,在不跳线的情况下,用coreUSB最适合。
b;esp8266使用AT命令组建udp向pool.ntp.org发出ntp请求,mcu对回文进行截取产生unixtime,作为mcu的系统基准时间,再对pcd8563进行校时操作。
c;串口打印的时间是mcu基于time产生的实时时间。
(3)打开串口观察一下,确保ntp时间已经写入pcf8563。
二、制作倒计时钟
(1)把core,rtc,oled和电池盒层叠;
(2)烧入程序core_RTC_oled_shanghaiexpo_countdown.ino;
a;pcd8563的寄存器是bcd码的比较特殊,其他操作与i2c相同。此处需要注意。
b;开幕在2018年11月5日,11月5日从1月1日开始计算是全年的第几天?
这里提供两个方法:
一个比较野路子,打开 http://mistupid.com/calendar/dayofyear.htm 输入你要计算的年月日就可以算出11月5日是全年的第309天。
另一个是使用自定义函数计算,每月月底前累积天数是固定的,前一个月的累积天数加上当日天数就是全年的第几天了,11月5日就是10月底总天数304天加上11月的5天等于309天,此外在考虑月份是不是2月份并且是不是闰年,闰年的判断只需要计算能被4整除。(%100和%400都是世纪年的计算,本例毫无意义不必计算。)
上述两种方法不能混用:lol
(3)观察运行情况。
根据实际情况修改一下屏幕显示的行间距。这个例子可以做成各种纪念日的提示器。希望你喜欢。
很急,很关键
不错
回复0
31231313
不错哦
回复0
立即注册