用行空板制作一个收作业系统

2022-10-122万
精华项目
AI 快速预览详细 收起
该项目利用行空板和罗技摄像头制作了一个收作业系统。通过二维码扫描识别学生作业,并通过SIoT物联网平台提交数据。硬件材料包括行空板和罗技摄像头。最终效果是简化了作业收集流程,提高了效率。难度适中,适合中小学教育场景。


【项目源起】
       交作业是每个学生每天到校做的第一件事情,由于学生到校时间不同,导致每次收作业时,课代表总会花费一定的时间按学号整理顺序,统计出谁谁谁没有交作业,并将相关未交名单提交给任课老师。这样的方式,费时费力,于是我们决定利用行空板,制作一套收作业系统。通过该系统,课代表再也不需要整理作业顺序,只需通过摄像头扫描作业本上的二维码,就可以将上交信息提交到物联网端。
用行空板制作一个收作业系统图21
【项目展示】
用行空板制作一个收作业系统图22
用行空板制作一个收作业系统图20
【功能简介】
  本项目作品具备以下功能,
(1)扫码识别:通过摄像头扫描二维码方式,识别某某学生的某学科作业。
(2)物联上报:识别后的数据通过SIot物联网平台提交,教师通过平台查看数据。

【硬件材料】
序号
遥控手柄
数量
1
行空板
1
2
罗技摄像头
1

表1项目器材清单
【制作过程】
(1)二维码制作:根据交作业的需求,我们的二维码中需包括以下信息:学生的个人信息,作业的学科信息。为此我们使用草料二维码生成器来完成上述二维码。
步骤一:登陆官网
草料二维码生成器官网(https://cli.im/),首页主菜单切换至批量生码页面,选择下方“批量制作静态码”。

图批量生码页面
进入后,在全部样式模板中,选择“简单标签”一项后确认。
用行空板制作一个收作业系统图1
图选择二维码样式——简单标签
步骤二:模板设置
进入二维码编辑页面,在此处Excel表中修改二维码标题对应修改为“科目”和“姓名”。字段“二维码内容”0101,其中第一个“01”表示科目,第二个“01”代表学生姓名。例如0302就代表“外语+李小亮”。完成上述操作后,选择保存Excel文件。
用行空板制作一个收作业系统图2
图设置二维码内容模板
保存生码:在弹出的保存模板并生码窗口中设置模板名称及二维码保存位置。
用行空板制作一个收作业系统图3
图保存模板
鼠标点击“保存并生码”后,系统完成二维码的生成如下图所示。
用行空板制作一个收作业系统图4
图生成二维码
步骤三:打印设置
二维码标签的打印有多种方式A4打印,标签打印机打印,在线打印等。由于我们自己手头只有A4打印机,所以选取了这种最简单的打印方式。如果需要个性化制作,也可以使用下载矢量文件等方式,下载二维码图片,进行相关制作。
用行空板制作一个收作业系统图5
图选择A4打印机打印
设置每页打印的二维码个数,点击“下载”按钮,会生成一个包含上述所有二维码的PDF文件,如图所示。
用行空板制作一个收作业系统图6
图设置每页打印二维码数量
用行空板制作一个收作业系统图7
图预览打印效果
(2)参数配置:本次系统的开发是基于行空板进行的
步骤一:配置行空板
由于此作业系统中我们使用的行空板作为服务器,所有数据都是上传到行空板上。因此,我们需要将行空板连入WiFi,并记录分配的相关IP地址。
连入WiFi:将行空板通过USB连接线与PC使用,行空板会虚拟为一个RNDIS网卡设备,此时板子IP地址固定为10.1.2.3,在浏览器中输入上述地址,登陆行空板。鼠标点击左侧的“网络设置”连接,进入下图界面,输入WIFI热点的名称及密码,连接无线热点。连接成功后,系统分配给行空板一个IP地址:10.6.34.139如下图所示。该地址就是后续我们查看数据的物联网地址。
注:将行空板连接路由器或手机的热点(注意需要使用2.4G Wi-Fi),然后其他编程设备(电脑、平板、手机)连接同一个热点,如果电脑和行空板都连接了同一个Wi-Fi,但是依然无法连接,可能此Wi-Fi禁止网络中的设备互相访问,则可以尝试更换一个热点测试。
用行空板制作一个收作业系统图8
图连接WIFI获取IP
步骤二:开启SIoT服务
行空板中自带SIoT服务,进入系统后,点击“应用开关”连接,进入SIoT开关界面,确认SIoT服务启用,否则采集的数据无法上传,如下图所示行空板已经开启SIoT服务。
用行空板制作一个收作业系统图9
图开启SIoT服务器
(3)编程设置:编程使用的是Mind+图形化编程方式+行空板完成上述任务。
步骤一:环境部署
打开Mind+编程软件进入后,将其切换至“python”模式,如下图1处。
用行空板制作一个收作业系统图10
图编程环境配置
鼠标点击左下角“扩展”按钮,在官方库页面中添加“行空板”和“MQTT-py”库,在用户库页面中“二维码解码”库,如下图所示。
用行空板制作一个收作业系统图11
图官方库中添加“行空板”和“MQTT-py”库
用行空板制作一个收作业系统图12
图用户库中添加“二维码解码”库
步骤二:程序初始化
从MQTT和二维码解码指令集中拖着指令如下图所示,
用行空板制作一个收作业系统图13
图程序初始化指令
其中指令“初始化MQTT”设置如下所示:MQTT平台选择SIOT,SIoT地址为上述行空板子获取的IP地址,SIoT Port端口为1883,用户名为siot,密码为dfrobot。
用行空板制作一个收作业系统图14
图MQTT初始化设置
定义变量:分别定义相关变量,其规则为学科简写+学生学号,例如Y01为语文学科学号为01的学生作业。该变量初始值为0,用于计数,当摄像头识别到二维码时,将变量进行加法操作,从而避免物联网端多次发送

编辑主程序如下图所示,摄像头识别到二维码后,从所建立二维码库中循环寻找符合条件的二维码,并将其结果打印在串口输出。若识别出二维码变量的值等于我们设定的值例如0101,那么再进行是否发送过物联网消息的判断(Y01=0为未发送),若以上两个条件都满足,则则向物联网发送消息“陈雨泓+01”如下图所示。其余同学的程序与该程序类似。
用行空板制作一个收作业系统图15
用行空板制作一个收作业系统图18
【测试运行】
      行空板加载完成后,菜单中会出现一个连接远程终端的选项,使用USB线连接电脑USB口,等待行空板开机完成后点击10.1.2.3(无线连接时也可输入板子的IP地址连接),连接成功后,Mind+的终端即相当于行空板的终端,点击运行,Mind+会将Python代码发送到行空板上运行。连接成功后会弹出提示,终端会显示(行空板)即表示连接成功。
用行空板制作一个收作业系统图19
Mind+连接成功后会自动检测行空板上的依赖库版本(图形化积木需要的python库),如果版本低了会提示需要更新,请点击更新,会自动弹出库管理页面并进行更新,等待直到命令运行完成后关闭库管理页面。
用行空板制作一个收作业系统图23


用行空板制作一个收作业系统图17用行空板制作一个收作业系统图16


创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(12)
JOVI
JOVI
学习
JOVI
JOVI
学习
hnyzcj
hnyzcj
作者
在上面
123@木头人
123@木头人
大神,有没有完整版的代码
123@木头人
123@木头人
你好,程序完成后,运行后显示连接成功,但是行空板也不显示二维码,也不显示扫描的内容
花生编程
花生编程
厉害厉害
川山甲的壳
川山甲的壳
Y01的变量有什么用?
川山甲的壳
川山甲的壳
这个有没有完整的程序呢?
小军军
小军军
老师,请教,材料清单里~遥控手柄和模拟角度传感器?
hnyzcj
hnyzcj
作者
回复小军军
只有摄像头和行空
hnyzcj
hnyzcj
作者
回复小军军
已改
rzegkly
rzegkly
厉害,行空板的物联案例,细细品读。
hnyzcj
hnyzcj
作者
更新下库
hnyzcj
hnyzcj
作者
回复Deepsleep
问问李亮
Deepsleep
Deepsleep回复hnyzcj
都更新了,还更新了行空板,还是不行
木子哦
木子哦
等到花儿都快谢了~
hnyzcj
hnyzcj
作者
回复Forgotten
Forgotten
Forgotten回复Deepsleep
可以看这个库的说明,需要安装依赖包:https://gitee.com/liliang9693/ext-qrcode_decode
如果在行空板中使用,则需要先安装pyzbar库,方法为:
- 根据行空板官方文档教程将行空板联网
- 打开Mind+,在Mind+中点击终端,连接行空板
- 复制如下命令粘贴到终端中回车运行,等待代码执行完毕:
apt-get install libzbar0 -y
- 然后复制如下命令粘贴到终端中回车运行,等待代码执行完毕:
pip install pyzbar
共5条回复,已加载2条,点击查看更多共5条回复,已加载全部
- 没有更多了 -