基于单片机与物联网的智能辅助学习系统
2020-05-07李治恒樊鹏帅潘爽爽刘珊中
李治恒,樊鹏帅,潘爽爽,刘珊中
(河南科技大学信息工程学院,河南 洛阳 471032)
0 引言
随着手机的普及,手机渐渐成为大学生生活中不可缺少的一部分,不论是在教室、图书馆,还是在食堂、寝室,随处可以看到学生在低着头玩手机,他们大多是用手机在上网、聊天、看小说、发微博等。大学生“手机依赖”问题是由多种原因综合作用导致,要从根本上解决这一问题,必须从大学生自身出发,加强大学生对自我管理能力的培养,不断激发大学生的自身能动性[1]。此基于单片机与物联网的智能辅助学习系统就是以从根本上解决大学生的“手机依赖”问题而设计制作的。
1 系统设计
本系统由三部分组成:手机端、机器端、服务器端。
1.1 手机端
手机端负责接收并向用户展示系统服务器向手机以短信形式发送过来的各种信息,这些信息包括在设定时间提醒用户前往预设地点学习、学习完成情况、学习记录等。
1.2 机器端
此系统的机器端包括一个3.2寸触摸显示屏,存放手机的存机柜,驱动存机柜开放的360°舵机,以及控制整体结构运行的以STM32为核心,集成ESP8266模块、蓝牙模块、电源充电模块、电源模块的主控系统。用户可以在机器端设置完善自己的学习时间表,时间表完善后会由机器端发往服务器。
机器端的机械结构部分使用SolidWorks建模,3D打印技术制作。其整体结构如图1所示。
图1 机器端机械结构图
存机柜部分采用抽拉式开合结构,打开或关闭存机柜时,主控系统控制装有齿轮的舵机旋转,齿轮旋转驱动装有齿条的存机柜开合,如图2所示。
图2 存机柜机械结构图
1.3 服务器端
服务器端通过TCP通信协议从机器端接受并记录用户开始与结束学习的时间,同时根据用户的学习计划表按时通过阿里云的短信API向手机发送提醒短信[3]。作为整个系统的核心,服务器端具有远超手机与单片机的运算与储存能力,同时服务器端必须全天候运行,一旦服务器端停止运行,整个系统都将无法正常工作。这就给我们自己搭建服务器端带来困难,我们自己搭建的服务器很难保证能全天候运行而不出问题。最终我们选择使用阿里巴巴的云服务器来解决这个问题。
2 硬件设计
机器端硬件主要由单片机控制器、物联网模块、蓝牙模块、舵机驱动模块、电源模块、电源充电模块六部分构成。硬件部分通过各种通信协议与手机端和服务器端相连接,系统结构如图3所示。
图3 系统结构框图
2.1 硬件选型
2.1.1 单片机选型
本系统采用STM32F103C8T6作为机器端的MCU。STM32系列单片机的优异性体现在如下几个方面:
1) 超低的价格。以8位机的价格,得到32位机,是STM32最大的优势。
2) 超多的外设。STM32拥有包括:FSMC、TIMER、SPI、IIC、USB、CAN、IIS、SDIO、ADC、DAC、RTC、DMA等众多外设及功能,具有极高的集成度。
3) 杰出的功耗控制。STM32各个外设都有自己的独立时钟开关,可以通过关闭相应外设的时钟来降低功耗。
4) 极低的开发成本。STM32的开发不需要昂贵的仿真器,只需要一个串口即可下载代码,并且支持SWD和JTAG两种调试口。SWD调试可以为你的设计带来更多的方便,只需要2个IO口,即可实现仿真调试[4]。其中STM32系列的STM32F103C8T6在满足性能要求的同时价格相对较低,最终选取STM32F103C8T6。
2.1.2 物联网模块选型
此系统中的物联网模块选用ESP8266集成32位Tensilica处理器,其集成有标准数字外设接口、天线开关、射频balun、功率放大器、低噪放大器、过滤器和电源管理模块等,支持WiFi协议栈,工作频率稳定在160 MHz,具有功耗开发难度低和功能集成度高的优点[5]。我们使用ESP8266的client模式连接服务器,通过使用TCP协议向服务器发送学习情况并从服务器接收学习计划。
2.2 电路设计
此系统机器端使用Altium Designer辅助设计电路,该电路包括STM32F103C8T6、ESP8266模块、电源稳压、按键模块这几部分,蓝牙模块和触摸显示屏通过引出的IO口与STM32连接。主要模块电路如图4,图5。
图4 ESP8266模块电路图
图5 稳压模块电路图
3 程序结构
智能手机负责系统向用户进行单方面传递信息,这些信息包含且不仅限于向用户展示提醒、督促学习的信息、在用户忽略短信提示后的电话提醒。机器端由机械结构、以单片机为核心的控制系统、由舵机和齿轮齿条组成的运动控制系统以及人机交互界面组成。用户可以在网页端设置自己的学习任务和计划,然后网页端将这些信息反馈给服务器端,服务器端按时向用户手机发送消息,提醒用户学习,用户看到消息后带着机器端前往预定地点准备开始学习。到达学习地点后将手机静音放入机器端内置的存机柜,点击机器端上的开始按钮,存机柜锁死,用户开始学习。学习达到预定时间后机器端指示灯亮起,存机柜开锁,即可取出手机,程序流程图如图6和图7所示。
图6 机器端程序执行流程图
图7 服务器端程序执行流程图
4 通讯协议
此系统使用HC-05蓝牙模块实现手机端与机器端的数据互交,蓝牙与单片机之间通过串口通讯传输数据;使用ESP8266实现机器端与服务器的数据互交,机器端与服务器通过TCP协议传输数据;服务器与手机使用短信API实现服务器向手机的单向通信(见图3)。
4.1 串口通信
此系统手机端与机器端之间使用115200波特率,八位数据位,一位停止位,无奇偶效验位串口通信。串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范[6]。
4.2 TCP通信
此系统机器端与服务器端之间通过基于TCP协议的Socket通信。TCP、Socket简介:
TCP协议:(Transmission Control Protocol传输控制协议)是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。
Socket:即“套接字”,描述IP地址和端口,是通信链的句柄。在Internet上的主机一般运行了多个服务软件,提供几种服务。每种服务都会打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务[7]。
5 结论
本文设计的一种基于单片机与物联网的辅助学习系统不同于其他一些辅助学习的软件或是工具,此系统不是通过不停的提醒、警告来让用户进行半强迫式的学习,而是通过营造并加重学习的仪式感的方式来使用户内心想要学习的决心更加坚定,促使用户自发学习。让学生在长时间的学习生活中养成良好的学习习惯,增强自我控制能力以及对制定好的计划的执行能力,最后逐步摆脱智能学习机的帮助。