内容正文:
信息系统的搭建实例
学考要点 搭建信息系统
【必修2信息系统与社会第138~146页 指导意见第49~54页】
1.传感设备与智能终端
(1)传感设备和智能终端:传感设备是信息系统中重要的输入设备,主要负责采集数据。智能终端包括输入、处理、存储和输出四个部分,主要输出加工后的数据。
(2)IoT(物联网)模块
①有四个针脚, 分别为Vcc、Gnd、TX和RX。其中,TX和RX可以连接在Pin0~Pin2任何两个口, 但是micro:bit的代码中要进行相应的定义。
②Obloq.get(URLDATA,TIME)函数。该函数的功能是发送GET请求。
URLDATA:提交的服务器地址。
TIME:连接的超时时间,在该时间内会一直尝试连接(单位:毫秒)。
2.SQLite数据库
SQLite是一个轻量级数据库,是一种嵌入式数据库,本质上是一个文件。一个数据库由多张数据表组成。
(1)常见的SQL命令
①创建数据表
create table数据表名(字段1数据类型,字段2数据类型…)
②插入记录
insert into数据表名(字段名1,字段名2,…) values(字段值1,字段值2,…)
例如,插入字段id和name的值分别为“1”和“jack”的记录:
insert into student(id,name) values(1,'jack')
③查询记录
select字段名from数据表名where字段名=字段值
例如,查询并显示数据表student中的所有记录:
select*from student
④删除记录
delete from数据表名where字段名=字段值
例如,删除student表中字段id=1的所有记录:
delete from student where id=1
(2)连接数据库的基本步骤:创建连接→获取游标→执行SQL语句→处理数据→关闭游标→关闭连接。
例1 编写“温度检测系统”的服务器端程序,cur为游标对象,现在要读取数据表templog的sensorid字段(TEXT类型)值为“2”的记录数据,下列执行的命令语句恰当的是( )
A.cur.execute(”SELECT ALL FROM templog WHERE sensorid=2)
B.cur.execute(”SELECT ALL FROM templog WHERE sensorid=”2””)
C.cur.execute(”SELECT*FROM templog WHERE sensorid='2' ”)
D.cur.execute(”SELECT*FROM templog WHERE sensorid=”2””)
C
【解析】 读取数据表中某字段名中特定字段值的记录数据,select*from数据表 where 字段名=字段值。双引号中需要包含单引号,选项C正确,选项D错误。
例2 (2023·浙江7月学考)小华在实验室搭建心率血压监测系统,实时监测心率、血压数据。其中,心率监测的实现方式设计为:智能终端读取心率传感器的数据并通过WiFi 将心率数据上传到服务器的数据库中;服务器实时对心率数据进行处理,出现异常时,进行示警。请回答下列问题。
(1)该系统的心率历史数据存储在_____(单选,填字母:A.智能终端;B.服务器)中。
(2)该系统的服务器端程序采用Flask Web 框架编写。若智能终端某次提交心率数据到服务器的URL 为http://192.168.0.20:8080/upload?val
B
=76,则本次提交的心率值为_____。
(3)编写Python 程序计算某段时间内的平均心率,并保存到变量ave 中,列表h 存储了该段时间内的心率数据(整型),下列4 个程序段中符合要求的有______(多选,填字母)。
A.ave=0 B.tal=0
num=len(h) num=len(h)
for i in range(1,num): for i in h:
ave+=h[i]/num tal+=i
ave=tal/num
76
BC
C.tal=0;i=0 D.ave=0;i=0
num=len(h) nun=len(h)
while i<num: while i<num:
tal+=h[i] i+=1
i+=1 ave+=h[i]/num
ave=tal/num
(4)你认为利用本系统对相关用户进行心率、血压数据采集及分析后,除了出现异常进行示警外,还可以为用户提供哪些服务?请写出两项服务及服务对象。
①运动员:为运动员提供科学的运动建议
②老人:为高血压老人提供饮食建议
【解析】 (1)服务器的主要功能是存储各种传感器收集到的数据,并提供服务器端信息系统运行的环境以及处理客户端程序提出的服务需求等。由题干“智能终端读取心率传感器的数据并通过WiFi 将心率数据上
传到服务器的数据库中”可知,选项B正确。
(2)通过分析URL http://192.168.0.20:8080/upload?val=76 可知http 为协议,192.168.0.20 为IP 地址,8080为端口号,/upload 为子路由,76 为心率传感器获取的心率值。
(3)计算平均心率本质上是求列表h 的平均值,选项A循环初值为1,遗漏计算h[0]数据,选项D进行循环体后循环变量i 先自增,同样会遗漏计算h[0]数据,同时最后会越界,选项B、C可以实现平均值计算。
(4)只要方案描述合理、符合逻辑即可。
变式 (2024·浙江1月选考)小华要搭建苗圃大棚环境监控系统。该系统中的智能终端从服务器获取湿度阈值,根据该阈值和传感器采集的空气湿度值来控制加湿器,并将湿度值等数据传输至Web 服务器,存储到数据库中。网络应用软件的实现架构是B/S 架构,用户可通过浏览器查询实时和历史数据。硬件按如下方式连接:湿度传感器和加湿器接入智能终端,智能终端通过IoT 模块连接到服务器。请回答下列问题。
(1)要完成该系统的搭建,需要编写的程序是_____(单选,填字母:A.客户端程序;B.服务器端程序)。
B
(2)下列关于该系统中数据管理的说法正确的是_____(单选,填字母)。
A.数据无法从服务器端传输至智能终端
B.该系统的数据和程序都应存储在数据库中
C.通过浏览器查看湿度历史数据时需要访问数据库
(3)下列关于该系统支撑技术的说法,正确的有_______(多选,填字母)。
A.智能终端有程序存储和数据处理能力
B.智能终端可以通过IoT 模块以无线方式连接服务器
C.该系统如果再增加一个加湿器,必须增加一个湿度传感器
D.支撑该系统运行的所有软件都需要在搭建过程中开发
C
AB
(4)智能终端上的程序具有如下功能:每隔1 分钟从传感器获取1 次湿度值;加湿器处于关闭状态时,若连续两次湿度值均低于阈值h,则打开加湿器;加湿过程中,若连续两次湿度值均高于阈值h,则关闭加湿器;每隔1 分钟将湿度值和加湿器状态数据传输到服务器。实现上述功能的部分Python 程序如下,请在程序横线处填入合适的代码。
#导入相关库,并从服务器获取阈值,保存在h 中,代码略
lasth=h
s=0
while True:
#从传感器获取湿度值,保存在newh 中,代码略
if s==0:
if newh<h and lasth<h:
s=1
#打开加湿器,代码略
else:
if newh>h and lasth>h:
①__________________________
#关闭加湿器,代码略
②_______________
#将newh,s 等数据传输到服务器,代码略
sleep(1000*60) #延时1 分钟
s=0 或s=s-1 或s=1-s
lasth=newh
(5)系统搭建完成后,运行一段时间,加湿器始终没有加湿。假设仅湿度传感器、加湿器两个设备存在故障,在不更换设备的前提下,请选择其中一种设备,描述判定该设备是否存在故障的方法。
______________________________________________________________
______________________________________________________________
______________________________________________________________
________________
从湿度传感器的角度:改变环境湿度,从浏览器观察湿度值是否有
实时的更新变化,若没有,说明湿度传感器故障;从执行器角度:通
过智能终端直接发送加湿指令,若加湿器未工作,说明加湿器故障;
其他等价答案。
【解析】 (1)网络应用软件的实现架构是B/S 架构,所以需要编写的程序是服务器端程序。
(2)选项A,由“该系统中的智能终端从服务器获取湿度阈值”可知,数据可以从服务器端传输至智能终端,选项错误;选项B,数据库通常存储需要长期保存的数据,程序不需要存在数据库中,选项错误;选项C,历史数据存储在服务器的数据库中,所以通过浏览器查看湿度历史数据需要访问数据库,选项正确。
(3)选项A,智能终端可以通过烧录的方式存储程序,也具有数据处理能力,选项正确;选项B,题干中已经明确“智能终端通过IoT 模块连接
到服务器智能终端”,选项正确;选项C,该系统如果再增加一个加湿器,也可以通过当前湿度传感器采集到的数据进行控制,所以增加湿度传感器不是必需的,选项错误;选项D,支撑该系统运行的所有软件中,一般服务器端程序和数据采集处理程序需要在搭建过程中开发,但搭建完成后也可以开发软件或进一步优化软件,选项错误。
(4)①从代码可以看出,s=1 是打开加湿器,s=0 是关闭加湿器。故当newh>h and lasth>h,即连续两次湿度均高于阈值时关闭加湿器,答案为 s=0。
②一次采集处理结束,准备进入下一次处理。此时需要保存上一刻状态,答案为 lasth=newh。
(5)题干中已经明确,运行一段时间,加湿器始终没有加湿。假设湿度传感器设备存在故障,则改变湿度值,在浏览器查询实时数据,如果不变化,则确定是湿度传感器问题;假设加湿器设备存在故障,则改变湿度值,如果连续多次湿度值均低于阈值h,加湿器并未打开,则确定是加湿器故障。
$$