【信息科技案例分享】
利用动态折线图算法
记录日照时长
导语
日照时长是指太阳从日出到日落的时间长度,它是一个地区气候的重要指标,其时间长短与位置和季节相关。在夏至时,北半球的高纬度地区会经历更长的白天和更短的黑夜,而南半球的情况则相反。在冬至时,情况会反转。而在春分和秋分时,白天和黑夜大致相等。
看似这种平常不过的现象,其实对人类生活有着深远的影响。无论是人类的睡眠作息和免疫功能的直接影响,还是农作物的生长和气候变化的间接影响,都与日照时长密切相关。
所以,统计日照时长对于地区的生态,农业和人类生活都具有重要的意义。基于这个认识,小喵这次结合对应的模块,制作一个简易的日照时长统计图。来一起看看是怎么做出来的吧!

材料准备
未来板 Lite*1
方糖-光敏模块*1
气象站积木包*1
编程软件使用
Kittenblock1.89
前期准备
接线准备:光敏接在P1接口。
程序编写
初始化
首先在屏幕上绘制坐标系,由于光敏在未来板Lite的变化范围大致在0-4096,所以在坐标系中的纵坐标划4个大致区间。
为了能显示光照的动态变化,这里使用海龟画图的相关积木进行绘制。让海龟移动到坐标系的第一个位置来,横坐标会跟随【变量X】的变化而变化,纵坐标为当前光敏的映射坐标,由于映射结果可能会出现小数,所以要转化成整数使用。到此程序初始化完成。
光照时长记录
原计划是准备用联网时间进行记录的,但考虑到可能会比较复杂,所以最后还是决定用系统时间进行记录。把系统的运行时间和光敏的数值按照图片的方式处理并分别用变量进行存放。每隔3s进行一次检测。
只要光照大于一定值(比如3800),就会使日照时间增加3s。同时海龟移动的变量映射到坐标上,并存储在列表中,为制作动态折线图做准备。
接下来是动态折线图的程序,如果横坐标超出了坐标轴的范围,则会删除最左边的点,并在最右边更新最新的检测数据,看起来就像是折线图整体往左移动了。

如果横坐标还没有超出坐标轴的范围,就正常绘制即可,在【否则】的条件下进行绘制。
最后是显示日照时长,如果没有到检测时间且已经绘制了最新的折线图,显示一次时长。
功能演示


