这个项目也是我给别人代做的,大家先看一下视频,了解一下这个项目
点击观看视频
客户要求基本是这样的:现在大学的教室门口不都贴着课程表嘛,然后每个学期都要换,上面有这个学期要上的课,每一个格子里有课程名字,上课老师,课程开始和结束的周数,例如周一第一节课1-8周高等数学,9-16周概率论这样子,但是每个学期都需要取出来换,所以客户想让我做一个可以自动从网络获取课程表的设计,要自动从网络获取就必须要爬虫呗,用Python爬虫我还是会的,毕竟也参加过数学建模,学过Python,但是硬件方面我只会STM32,不会树莓派啊,所以我给他提了另外一个方案。
那就是把课程啊,教室啊什么的信息都放到内存卡里,然后把设备固定到墙上,这样每个学期只需要拔出内存卡把里面的文件更新一下再插回去不就行了,然后不用STM32计时,用机智云自动获取网络时间,这样时间不就不会错了,然后计算出当前是第几周,根据周数显示课表(因为有的课不在当前周可以不用显示),然后用机智云设置远程操作与监控。
设计一个APP给老师用,设置上“正在考试”功能,开启功能课表消失,显示正在考试,然后其他在找教室自习的同学看到后就不会有闯进教室的尴尬了;“课程顺延”功能,开启后课表消失,显示课程已顺延,这样学生就不用在教室白白等了;“调课功能”,当前教室要是多媒体坏了或者房顶漏水,老师可以提前设置要更换的教室,学生在看到后直接去调课的教室;“当前教室”功能,开启后当前教室的课程表消失,显示正在上课,上什么课,上课老师是谁,也是放止不是本班的学生进错了教室,导致尴尬,同时自动开启打卡功能,学生进教室之前打卡,老师的APP界面显示当前已打卡的学生人数。
在听到我的方案之后说比他想的更周全,然后果断选择了使用我的方案。
好,废话不多说了,我们来说一下这个项目,STM32连接机智云与修改开源APP的教程在我的博客里都有,不会的小伙伴看以去看我的博客学习。
点击下载源码
功能就如视频中那样,现在粘贴核心部分的源码,已经详细注释
show.c
extern int students;
extern int classnum;
FIL fil;
FRESULT res;
UINT bww;
FIL fil_date;
FRESULT res_date;
UINT bww_date;
char buf[200];
char buf_date[11];
int currentoday;
int weeks;
int group;
int current_class;
//读取SD卡内容,将信息存储到buf,计算本学期本教室共有几节课
void Show_SDIO(void)
{
int n=0;
char str;
int len = 0;
res=f_open (&fil,"0:/table.txt", FA_READ); //打开文件
f_read (&fil, buf,200,&bww); //读取文件并将值存入buf
f_close(&fil);//关闭文件
res_date=f_open (&fil_date,"0:/date.txt", FA_READ); //打开文件
f_read (&fil_date, buf_date,200,&bww_date); //读取文件并将值存入buf
f_close(&fil_date);//关闭文件
for(n=0;n>=0;n++)//统计文件中共有多少值
{
str = buf[n];
if(str=='