本帖最后由 suijf585 于 2021-9-30 20:42 编辑
一、创意来源 在上信息技术课或社团活动时,都需要点名,确定学生是否到齐,是否有请假或其他原因的缺勤,之前利用慧编程做过一个,不能脱机运行,本次利用掌控制作一个能够脱机运行的。 https://wx.zsxq.com/dweb2/index/topic_detail/215251222485421 新版的班级打卡小助手的预期功能如下: 1.主要功能 (1)人脸识别打卡,已打卡的学生名字之前的灯亮起,播放声音提示打卡成功; (2)打卡人数统计,显示总人数,实到人数,缺勤人数,并将打卡学生ID上传到Easy Iot平台; 2.附加功能 (3)显示当前日期和时间(既然已经联网了,闲着也是闲着,顺便获取个日期和时间); (4)显示当日天气(貌似增加天气预报服务,相对学生也很友好啊); (5)显示当前温度和湿度(屏幕还剩下一行有点浪费,不如随便测点啥显示上去); (6)人体温度预警,如果测量温度超过37.3摄氏度,会发出警报声。 二、设计思路与实验验证 按照预期功能,设计思路如下: (1)关于人脸识别打卡 二哈识图视觉传感器可以轻松实现该功能,可以结合播放声音的模块实现提醒功能; 通过表格在掌控板屏幕上显示学生的ID,在实验中发现,绘制表格不能在初始化中绘制,只能在重复执行中绘制,而且,绘制表格后,掌控板1.0总会出现不能联网等问题,鉴于掌控板的屏幕也比较小,索性,用灯带显示学生的打卡情况,效果也会更好。 (2)关于人数统计 根据以往的经验,二哈识图进行人脸识别时,每秒钟可以识别好多好多次(具体多少次也没细数),不能每次都作为有效数据进行统计,因此,在编程的过程中,可以为每个学生新建一个变量,将检测到班级内的学生时,将该学生的变量设置为1,这样可以轻松解决多次统计的问题,总人数为10,不存在问题,实到人数为所有学生变量之和,缺勤人数为10-实到人数,计算实到人数和缺勤人数后,数值保留了2位小时,将它们转换为整数即可; 将学生ID通过MQTT上传到Easy Iot平台,通过实验发现,通过掌控联网实现掌控与Easy Iot平台的通信是没有问题的,但在通过二哈识图视觉传感器进行人脸识别判断时,MQTT不明原因不可用,程序可以编译通过,上传成功,但短暂联网成功后会迅速断开,切屏幕不显示,多次实验失败后,将此功能砍掉,个人感觉,大概率是学艺不精,期待在后续的学习中能够解决这个问题。 (3)关于显示日期和时间 掌控联网后,添加网络服务的NTP扩展,可以轻松实现获取日期和时间的功能。 (4)关于显示当日天气 掌控联网后,添加网络服务的获取天气扩展,在实验中发现,能够获取当日最高气温和最低气温,但掌控显示的天气信息是空的,只能获取当日最高气温和最低气温,意义不大,所以,此功能砍掉,流出一行显示标题吧。 (5)关于显示当前温度和湿度 DHT11温湿度模块可以很方便地获取当前的温度和湿度。 (6)人体温度预警 采用非接触红外测温传感器测量人体温度,当温度正常时,MAX7219 8*8点阵屏显示√,当温度超过37.3摄氏度时,点阵屏显示X,并发出警报声。 三、创新点 1.打卡人数统计方法 2.人体温度预警的显示方法 四、器材清单 掌控板*1,拓展板*1,全彩LED灯带(10)*1,二哈识图视觉识别传感器*1,DHT11温湿度模块,MAX7219 8*8点阵屏,MLX90614非接触红外测温模块*1,杜邦线若干,螺丝螺母若干,激光切割件等。 五、程序 详见压缩包 五、图纸 详见压缩包 六、作品外观 七、程序和图纸
|