2026届高中信息技术二轮专题复习 专题7 搭建和完善信息系统(含解析)

资源下载
  1. 二一教育资源

2026届高中信息技术二轮专题复习 专题7 搭建和完善信息系统(含解析)

资源简介

专题7 搭建和完善信息系统
学习目标 
1.掌握系统搭建前准备的工作及流程。
2.掌握Flask路由和视图函数的编写。
3.掌握Flask请求和路由的关系。
4.掌握基本数据库语句的功能和作用。
(2023年1月浙江省选考)小明为家庭小菜园搭建了环境温湿度监测系统,该系统结构示意图如图所示。Web服务器端程序采用FlaskWeb框架开发。传感器采集的数据由智能终端经IoT模块发送到Web服务器,执行器用于实现温湿度的控制。请回答下列问题:
(1)下列选项标注了图中虚线框内的智能终端与传感器执行器之间的数据传输关系,其中合理的是    (单选,填字母)。
(2)该系统网络应用软件的实现架构是    (单选,填字母:A.B/S架构/B.C/S架构)。
(3)若传感器的编号id为1,湿度值h为60提交数据到Web服务器的URL为http://192.168.1.6:5000/toserv h=60&id=1,则服务器端应用实例app中与该URL关联的路由设置语句是@app.route('    ')。
(4)菜园里的蔬菜适宜生长的空气温度范围是tmin~tmax。现要求当温度t正常、偏低、偏高时,将sta的值对应设为0、1、2。下列Python程序段中符合要求的有    (多选,填字母)。
A.if t  sta=1
if t>tmax:
  sta=2
else:
  sta=0
B.if t  sta=1
elif t>tmax:
  sta=2
else:
  sta=0
C.sta=0
if t  sta=1
else:
  sta=2
D.sta=0
if t  sta=1
if t>tmax:
  sta=2
(5)小明设定采集并上传数据的时间间隔为1分钟。他用浏览器查看温湿度页面,页面动态显示最新的温度、湿度及其采集时间。系统正常工作一段时间后,他发现该页面不再变化,刷新后仍不变。结合图,简要说明系统中可能造成上述问题的原因______________________________ (本系统中,传感器损坏传感器和智能终端连接异常,不会造成上述问题)。(注:回答2项,1项正确得1分)
  信息系统的开发包含信息系统搭建前期准备、信息系统搭建和信息系统完善三部分。前期准备指开发前要进行的需求分析和设计工作,沿着信息系统能实现什么功能、怎么做和先干什么后干什么的思路,将前期准备分为需求分析、可行性分析、开发模式选择、概要设计和详细设计五部分。信息系统搭建包含硬件搭建和软件开发两部分,软件开发主要解决服务器端的代码设计。信息系统完善包含系统测试和文档编写两部分工作。
例题 小华要搭建苗圃大棚环境监控系统。该系统中的智能终端从服务器获取湿度阈值。根据该阈值和传感器采集的空气湿度值控制加湿器,并将湿度值等数据传输至Web服务器,存储到数据库中。网络应用软件的实现架构是B/S架构,用户可通过浏览器查询实时和历史数据。硬件按如下方式连接:湿度传感器和加湿器接入智能终端,智能终端通过IoT模块连接到服务器。请回答下列问题:
(1)要完成该系统的搭建,下列需要编写的程序是    (单选,填字母:A.客户端程序/B.服务器端程序)。
(2)下列关于该系统中数据管理的说法,正确的是    (单选,填字母)。
A.数据无法从服务器端传输至智能终端
B.该系统的数据和程序都应存储在数据库中
C.通过浏览器查看湿度历史数据需要访问数据库
(3)下列关于该系统支撑技术的说法,正确的有    (多选,填字母)。
A.智能终端有程序存储和数据处理能力
B.智能终端可以通过IoT模块以无线方式连接服务器
C.该系统如果再增加一个加湿器,必须增加一个湿度传感器
D.支撑该系统运行的所有软件都需要在搭建过程中开发
(4)智能终端上的程序具有如下功能:每隔1分钟从传感器获取1次湿度值:加湿器处于关闭状态时,若连续两次湿度值均低于阈值h,则打开加湿器;加湿过程中,若连续两次湿度值均高h,则关闭加湿器;每隔1分钟将湿度值和加湿器状态数据传输到服务器。部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,并从服务器获取阈值,保存在h中,代码略
lasth=h;s=0
while True:
  #从传感器获取湿度值,保存在newh中,代码略
  if s==0:
    if newh      s=1
      #打开加湿器,代码略
  else:
    if newh>h and lasth>h:
      ①     
      #关闭加湿器,代码略
  ②     
  #将newh,s等数据传输到服务器。代码略
  sleep(1000*60) #延时1分钟
(5)系统搭建完成后,运行一段时间,加湿器始终没有加湿。假设仅湿度传感器、加湿器两个设备存在故障,在不更换设备的前提下,请选择其中一种设备,描述判定该设备是否存在故障的方法。
变式 小华要搭建仓库温湿度监控系统,分布在仓库各处的智能终端(编号0~9)每隔一定时间将传感器采集的温湿度数据,经过处理后通过无线方式发送到服务器并保存到数据库中,系统若检测到温湿度异常,则发出报警信息,管理员可以通过浏览器查看相关数据。请回答下列问题:
(1)搭建该系统时,下列    设备(单选,填字母)不能与智能终端直接连接。
A.温湿度传感器 B.IoT模块
C.蜂鸣器 D.无线路由器
(2)下列关于该系统支撑技术的说法,正确的有    (单选,填字母)。
A.智能终端具有一定的程序存储和数据处理的能力
B.服务器端运行的软件均为系统软件
C.在服务器端无法使用浏览器访问该系统
(3)小华基于Flask Web框架编写服务器端的程序,部分代码如下。编写完成后,若要通过浏览器获取视图函数index()的返回页面,则应访问的URL是http://    。
#导入Flask框架模块及其他相关模块,代码略
app=Flask(_ _name_ _)
@app.route("/select")
def index():
  #从数据库读取温湿度数据,并返回页面,代码略
#服务器其他功能,代码略
if _ _name_ _=="_ _main_ _":
  app.run(host="192.168.1.1",port=8000)
(4)服务器接收到的数据中包含一个状态信息码,状态信息码由3个数字组成,第1个为智能终端编号,第2个、第3个为温度、湿度状态(0为偏低、1为正常、2为偏高),如“101”表示1号终端的温度偏低、湿度正常。如果某终端的状态连续异常称为一个异常段,异常段内的状态个数称为长度,服务器将接收到的所有状态信息码按接收时间顺序保存到列表res中,如"111","012","211","901","100","211",……],编写程序对res进行处理,要求统计出各智能终端异常段长度超过阈值m的次数,请在划线处填入正确代码。
#数据保存到res,阈值保存到m,代码略
size=[0]*10;c=[0]*10
for code in res:
  k=①     
  if code[1:]!="11":
    size[k]+=1
  else:
    if size[k]>m:
      ②     
    size[k]=0
for i in range(10):
  if size[i]>m:
    c[i]+=1
for i in range(10):
  print("编号为"+str(i)+"的智能终端异常段长度超过阈值次数:"+str(c[i]))
(5)请对该系统功能进行一项扩展,写出实现的功能及所需的硬件设备。
1.有一个农田作物生长环境监测系统。该系统的智能终端通过传感器获取数据,并通过IoT模块以无线方式将数据上传到Web服务器。服务器实时对数据进行处理,判断出异常时,通过智能终端控制执行器发出预警信号并打开环境调控设备。用户可通过浏览器查询实时和历史数据。请回答下列问题:
(1)下列环节中不属于信息系统搭建的是    (单选,填字母)。
A.软件开发  B.硬件搭建  C.系统测试
(2)下列关于该信息系统的说法,正确的有    (多选,填字母)。
A.智能终端和服务器、执行器之间的数据传输均是双向的
B.若IoT模块损坏,则用户无法通过浏览器查看实时监测数据
C.不同传感器采集的数据可以通过同一智能终端传输至Web服务器
D.该系统采集到的数据可以存储在数据库中
(3)该系统正常运行一段时间后,发现数据异常时系统能发出预警信号但不能打开环境调控设备,简要说明系统中可能造成上述问题的原因(写一点即可)。
(4)基于FlaskWeb框架编写服务器端的程序,为避免数据库数据冗余,需要对某传感器提交的数据进行预处理,当数据库中读取不到该传感器的数据或最近两次采集数据的变化值大于限定差值时,才将该传感器提交的数据写入数据库,部分代码如下,请在划线处填入合适的代码。
#导入Flask框架模块及其他相关模块,代码略
app=Flask(_ _name_ _)
@app.route("/input",methods=["GET"])
def add_data(): #用于传感器提交的数据处理
  sensorid=request.args.get("id")
  sensorvalue=float(request.args.get("h"))
  #从数据库中读取编号为sensorid传感器最近一次采集的数据,并存储在实型变量last中,若读取不到数据则last的值设为-1,代码略
  #从数据库中读取对应编号传感器的限定差值x(x>0),代码略
  if    :
    #将传感器提交的数据写入数据库,代码略
  #服务器其他功能,代码略
if _ _name_ _=="_ _main_ _":
  app.run(host="10.196.22.100",port=8000)
(5)若某时刻传感器的编号id为s1,采集数据h为50,提交数据到Web服务器的URL为http://10.196.22.100:8000/    。
2.某校为每个教室安装了新风系统用于调节室内空气质量。系统从数据库中获取空气质量阈值,根据阈值和传感器采集的空气质量数据比对结果控制执行器,并将采集到的数据存储至数据库中。网络应用软件的实现架构是B/S架构,用户可通过浏览器查询实时和历史数据。该新风系统由智能终端、传感器和执行器等构成。请回答下列问题:
(1)在设计该系统时,为了存储采集到的数据,需设计一个合适的数据库。该过程属于    (单选题,填字母)。
A.需求分析 B.可行性分析
C.概要设计 D.详细设计
(2)关于该系统中数据的处理,下列说法正确的是    (单选,填字母)。
A.用户可以通过浏览器查看智能终端的数据
B.该系统处理数据的程序必须存放在服务器端
C.智能终端可以从服务器端获取数据
(3)Web服务器根据采集的数据与阈值比对结果决定是否开启执行器。如采集到的数据连续两次大于阈值,且当前执行器处于关闭状态,则开启执行器;若数据连续两次低于阈值,则关闭执行器。服务器端的部分代码如下:
@app. route("/disp")
def show():
  #实现系统数据的查看,代码略
@app.route("/input")
def scanf():
  #从数据库中获取阈值mco2、前一时刻的空气质量数据preco2和通风设备状态sta,代码略
  #从智能终端获取当前空气质量数据newco2,代码略
  #sta值:True表示设备开启,False表示设备关闭
  if not sta:
    if newco2>mco2 and preco2>mco2:
      sta=True
  else:
    if ①      :
      sta=False
  ②     
  #将proco2的值保存到服务器数据库中,并向sta值发送给智能终端,代码略
app.run()
请在上述程序划线处填上合理的代码。
(4)下列关于该系统的说法正确的有    (多选,填字母)。
A.传感器与执行器必须连接到同一个智能终端
B.智能终端也可以进行数据处理
C.智能终端与服务器进行通讯只能通过无线方式
D.本系统所使用到的所有软件必须在搭建过程中开发
E.为提高系统的安全性,必须及时更新杀毒软件
(5)该系统正常运行一段时间后,系统管理人员使用浏览器查看系统相应数据,发现页面不能显示最新数据,页面刷新后仍没有改变。请简要说明系统产生这种情况可能的原因(分别从软件与硬件不同角度分析)。
3.某研究小组拟采集博物馆的温湿度、光线值、空气质量等数据,以实现对展品环境监测。该小组在实验室搭建一个模拟系统,该系统的智能终端获取温湿度传感器数据,并传输至web服务器。智能终端根据从服务器获取的阈值判断出异常情况后,控制执行器进行干预。请回答下列问题。
(1)该系统配置了多个智能终端,下列说法正确的是    (单选,填字母:A.传感器采集的数据只能存储于服务器的数据库;B.传感器采集的数据可存储于连接的智能终端)。
(2)下列功能需要在服务器程序中实现的是    (单选,填字母)。
A.采集和提交传感器数据
B.根据阈值控制执行器
C.存储传感器数据至数据库
(3)下列关于该系统设计的说法,正确的有    (多选,填字母)。
A.智能终端可以通过无线网络连接服务器
B.支撑该系统运行的所有软件,都必须在搭建过程中开发完成
C.温度、湿度等数据的采集时间间隔不能相同
D.智能终端与服务器的数据传输是双向的
(4)智能终端上的程序具有如下功能:每分钟获取1次湿度值并将湿度值和除湿机状态数据传输到服务器:除湿机处于关闭状态时,若最近5次的湿度值中有3次高于阈值h,则打开除湿机;除湿过程中,若连续5次湿度值均不高于h,则关闭除湿器;部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,并从服务器获取阈值,保存在h中,代码略
lasth=[0,0,0,0,0] #保存最近5次湿度值,初始状态为均不高于h
s=0
while True:
  #从传感器获取湿度值,保存在newh中,代码略
  ①     
  if newh<=h:
    lasth[-1]=0
  else:
    lasth[-1]=1
  if s==0:
    if ②      :
      s=1
      #打开除湿机,代码略
  else:
    if sum(lasth)==0:
      s=0
      #关闭除湿机,代码略
  #将newh,s等数据传输到服务器。代码略
  sleep(1000*60)#延时1分钟
(5)为进一步完善该模拟系统功能,请你写出一种扩展方案并详细阐述实现的功能及所需增设的传感器与执行器的名称。
4.小明为学校草坪搭建了分区自动浇灌系统。该系统的智能终端获取传感器数据,并通过无线通信方式将数据传输到Web服务器,存储到数据库中。服务器根据数据判断出哪些区域需要灌溉,并通过相应区域的智能终端控制执行器打开水泵。网络应用软件的实现架构是B/S架构,草坪管理人员可通过浏览器查询实时和历史数据。请回答下列问题。
(1)下列不属于该信息系统硬件搭建中的硬件组成的是    (单选,填字母)。
A.服务器 B.数据库
C.网络设备 D.智能终端
(2)下列关于该系统的描述,正确的有    (多选,填字母)。
A.系统中所有硬件设备都需要直接与服务器相连
B.Flask框架用于构建服务器端程序,处理数据请求
C.监测数据可以通过图表形式在Web页面上展示
D.传感器采集的数据可以通过智能终端直接发送到用户的浏览器上
(3)小明从服务器数据库中导出某区传感器采集到的近期(>=7天)湿度数据,并计算出日平均湿度,存储于数组hs中。如果近一周中有3天日平均湿度低于最低湿度阈值,或近一周的湿度持续下降6天,则判断该区草坪需要灌溉。
def checkh(hs):
  rehs=hs[-7:]
  ①     
  cnt1=cnt2=0
  for i in range(0,7):
    if rehs[i]      cnt1+=1
    if i>0 and rehs[i]      cnt2+=1
  if ②      :
    flag=True
  return flag
#获取日平均湿度hs,获取湿度阈值thrd,代码略
print(checkh(hs))
(4)将草坪划分为ABCD四个区域,在系统正常运行一段时间后,发现除了A区,其它区域都能实现自动灌溉,简要说明系统中可能造成上述问题的原因__________________________(不考虑黑客或病毒)。
5.小明为蔬菜大棚搭建了一个简易温度监测控制系统,可以设定阈值,系统提供自动及手动工作模式。自动工作模式时,系统会自动根据温度变化情况控制是否加热,使蔬菜大棚保持适合的温度。手动工作模式,可以通过浏览器远程访问系统控制网页,直接开启或关闭加热器。该系统结构示意图如图所示。系统为B/S开发模式,使用micro:bit作为智能终端,温度传感器采集数据。传感器采集的数据由智能终端经IoT模块发送到Web服务器,用户可通过浏览器查询实时和历史数据。执行器用于实现温度的控制。根据以上功能描述,请回答下列问题:
(1)下列关于该信息系统的说法,正确的是    (单选,填字母)。
A.在该信息系统中,智能终端的作用相当于中央处理器CPU
B.在该信息系统中,传感器和执行器没有智能终端的控制不能正常工作
C.概要设计阶段,包括系统的模块结构设计、系统物理配置和数据库设计三大部分
(2)通过浏览器远程手动模式开启加热器操作时,指令数据的传输过程为    (单选,填字母)。
A.浏览器→数据库→智能终端
B.浏览器→智能终端→服务器
C.浏览器→Web服务器→智能终端
(3)根据题意,下列功能需要在智能终端程序中实现的是    (多选,填字母:A.采集温度传感器上的数据/B.处理浏览器访问请求/C.接收服务器指令/D.打开或关闭加热器)。
(4)智能终端上的程序具有如下功能:每隔5分钟从传感器获取1次温度值:加热器处于关闭状态时,若温度值小于等于阈值temp1,则打开加热器;加热过程中,若温度值大于等于阈值temp2,则关闭加热器;并将温度数据传输到服务器。部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,代码略
flag=False
while True:
  #从传感器获取温度值,保存在newtemp中,代码略
  #从服务器获取温度阈值temp1和temp2及工作模式数据auto代码略
  if auto==True:
    if newtemp<=temp1 and flag==False:
      ①     
      #打开加热器,代码略
    elif ②       and flag==True:
      flag=False
      #关闭加热器,代码略
  else:
    #执行手动控制加热器,代码略
  #将newtemp,flag等数据传输到服务器。代码略
  sleep(1000*5*60) #延时5分钟
(5)该系统使用后发现通过浏览器远程访问系统控制网页,能直接开启或关闭加热器。小明希望实际温度低于20摄氏度时,加热器开启加热,当温度高于26摄氏度时,加热器关闭加热,但在实际应用中自动模式下温度低于20摄氏度时,加热器没有开启,而此时手动模式开启正常,请分析可能的原因。
___________________________________________________________________________________
(注:回答2项,1项正确得1分)。
6.小周为庭院鱼池搭建水位预警自动排水系统。该系统中的智能终端从服务器获取水位阈值,根据该阈值和传感器采集的水位值控制排水阀和蜂鸣器,并将水位值等数据传输至Web服务器,存储到数据库中。用户可通过浏览器查询数据和修改阈值,系统结构示意图如图所示。请回答下列问题:
(1)下列关于该系统数据管理的说法,不正确的是    (单选,填字母)。
A.水位传感器采集的数据还可以通过有线的方式传输到Web服务器
B.智能终端只负责数据的采集
C.数据库中的部分数据可以来自用户
(2)智能终端的程序具有如下功能:每隔1分钟从传感器获取1次水位值,根据不同情况,控制执行器作出相应的响应。
排水阀和水位情况 执行器状态
水位值不超过阈值 排水阀关闭
排水阀为关闭状态且水位值超过阈值 排水阀半开
排水阀为半开状态且水位值连续3分钟超过阈值 排水阀全开
排水阀为全开状态且水位值连续5分钟超过阈值 蜂鸣器报警
部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,代码略
num=0;s=0 #s表示排水阀状态,值0,1,2分别表示关闭,半开,全开3种状态
while True:
  #从传感器获取水位值保存在tmp中,并从服务器获取阈值h,代码略
  if tmp>h:
    num+=1
    if s==0:
      #半开排水阀,代码略
      s=1
    elif ①      :
      #全开排水阀,代码略
      s=2
    elif s==2 and num==5:
      #触发系统报警,代码略
  else:
    #关闭排水阀,代码略
    s=0
    ②     
  #将水位值tmp、排水阀状态s等数据传输到服务器,代码略
  sleep(60*1000) #延时1分钟
(3)Web服务器端程序的部分代码如下:
#导入相关库,代码略
app=Flask(_ _name_ _)
@app.route("/input")
def add_da():
  #将传感器最近一次的水位数据保存到数据库,代码略
if _ _name_ _=="_ _main_ _":
  app.run("192.168.1.100",port=8080,debug=True)
下列说法正确的有    (多选,填字母)。
A.服务器端代码中不能出现两个相同的路由
B.视图函数add_da()必须有返回值
C.该系统服务器的IP地址是192.168.1.100
D.设置“debug=True”增强了系统的安全性
(4)系统运行一段时间后,发现水池有水溢出,排水阀却处于关闭状态,简要说明系统中可能造成上述问题的原因。
___________________________________________________________________________________
(本系统中,服务器、通信网络、传感器与智能终端的功能均不存在问题。注:回答2项,1项正确得1分,2项正确得2分)
1.小强为帮助父亲戒烟,在书房搭建抽烟监控系统。该系统中智能终端从服务器获取烟雾阈值,根据阈值和传感器采集的烟雾值控制报警器,该系统的软件架构为B/S架构,可通过浏览器查询历史数据。硬件按如下方式连接:烟雾传感器和报警器接入智能终端,智能终端通过IoT模块连接到服务器。请回答下列问题:
(1)该系统中属于执行器的是    (单选,填字母:A.报警器/B.手机浏览器)。
(2)该系统服务器端程序采用FlaskWeb框架编写,若智能终端某次提交烟雾浓度平均值到服务器的URL为http://192.168.0.33:8080/upload val=0.6,则本次提交的烟雾浓度平均值为    。
(3)智能终端上程序有如下功能,每分钟从传感器获取1次烟雾浓度值,获取5次后计算平均值,若平均值超过阈值,则将数据提交至服务器数据库,同时书房中报警器响10秒结束。部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,并从服务器获取阈值,保存在h中,代码略
s=0;t=0
while True:
  #从传感器获取烟雾浓度值,保存在d中,代码略
  if t<=4:
    t+=1
    ①     
    if t==5:
      if s/t>h: #计算 5次烟雾浓度的平均值,并与阈值进行比较
        #警报器响 10秒后关闭,并将相关数据提交至服务器,代码略
      ②     
      s=0
  sleep(1000*60) #延时1分钟
(4)小强在电脑浏览器地址栏中输入http://60.188.68.173:5050/query,可通过外网访问历史记录。能正确实现上述功能的部分代码是    (多选,填字母)。
A@app.route('/query')
def query():
  #代码略
B.@app.route('/query')
def view():
  #代码略
C.@app.route('/')
def query():
  #代码略
D.@app.route('query')
def query():
  #代码略
(5)利用该系统小强可查询数据库中某数据表,获取书房烟雾超标时的平均浓度值及发生时间,烟雾值由智能终端提交,那么请用文字描述产生时间值的编程思路。
2.某研究小组拟采集河流中的pH值等数据,对河流水质污染进行监测。该小组在实验室搭建了一个模拟系统,该系统使用智能终端获取传感器数据,并采用无线通信方式将数据传输到Web服务器,服务器根据数据判断出异常情况后,通过智能终端控制执行器发出预警信号,系统采用B/S架构实现。请回答下列问题。
(1)实现客户端查看该系统中历史数据的程序    (单选,填字母:A.需存储并在服务器中运行/B.可在智能终端存储和运行)。
(2)若将智能终端采集的pH值为7.2、监测点编号为5的数据上传至服务器的URL为:http://192.168.0.1:8080/s id=5&w=7.2,则服务器的IP地址为    。
(3)下列关于该模拟系统设计的说法,正确的有    (多选,填字母)。
A.所有传感器必须连接在同一个智能终端
B.监测点编号、pH值等数据只能使用数据库进行存储
C.客户端可以使用浏览器访问系统,查看数据
D.智能终端和服务器可连接在同一局域网中
(4)该系统设置了多个监测点,正常工作一段时间后,发现其中一个监测点没有数据,经检测,路由器与服务器网络通信正常,其余监测点数据均正常,简述可能造成上述问题的原因:
___________________________________________________________________________________
(该监测点传感器损坏、传感器和智能终端连接故障,不会造成上述问题)。(注:回答2项,1项正确得1分)
(5)智能终端上的程序实现如下功能:每分钟从传感器采集2次pH值,若2个数值范围都在6.0~9.0之间(包含6.0和9.0),则计算均值后上传数据;若只有1个数值在该范围,则仅上传该数据;若2个数值都不在该范围,则不上传数据。实现上述功能的部分Python程序如下,请在程序划线处填入合适的代码。
#导入相关库,代码略
while True:
  sleep(1000*60) #延时1分钟
  #每分钟获取传感器采集的2次pH值,保存在变量a,b中,代码略
  d=-1
  if a>=6.0 and a<=9.0:
    if b>=6.0 and b<=9.0:
      d=round((a+b)/2,1) #保留1位小数
    else:
         
  else:
    if b>=6.0 and b<=9.0:
      d=b
  #将数据d(值为-1不上传)传输到服务器,代码略
3.某校使用教室二氧化碳监测系统,教室内安装传感器用于监测二氧化碳浓度,智能终端将检测数据传输到Web服务器(一个智能终端连接两个教室设备),服务器处理数据后发送指令给智能终端,实现通风设备控制。若室内二氧化碳浓度大于等于设定阈值且当前通风设备处于关闭状态,则开启;若连续两次室内二氧化碳浓度均低于阈值,则关闭。该系统的所有检测数据及通风设备状态均可登录相应平台随时随地查看。请回答下列问题。
(1)若服务器故障,智能终端是否可以正常采集传感器数据    (单选,填字母:A.可以/B.不可以/C.不确定)。
(2)服务器端的部分代码如下:
@app.route("/show")
def disp():
  #实现在网页查看系统数据,代码略
@app.route("/input")
def input():
  #从数据库获取阈值mco、前一时刻二氧化碳浓度preco和通风设备状态s,代码略
  #从智能终端获取二氧化碳浓度newco,代码略
  #s=0表示通风设备关闭,s=1表示设备开启
  if s==0:
    if newco>=mco:
      s=1
  else:
    if     :
      s=0
  preco=newco
  #保存preco的值,并向智能终端发送s指令,代码略
app.run(host="2.58.11.23",port=8088)
①则访问查看系统数据网页的URL是
http://  。
②请在上述程序中划线处填入合适的代码。
(3)下列关于该系统设计的说法,正确的有    (多选,填字母)。
A.二氧化碳浓度、通风设备状态等数据存储在数据库
B.从系统的安全性考虑,可以在服务器端增加防火墙
C.所有的二氧化碳传感器均需连接着同一个智能终端
D.智能终端通信必须要通过无线网络
(4)系统调试期间,某一时刻甲教室连续两次测得的二氧化碳浓度均小于阈值,乙教室二氧化碳浓度大于阈值,此时甲教室通风设备开启,而乙教室通风设备关闭。在所有设备功能均正常的情况下,请你分析造成此现象的原因。
4.某智能终端的程序具有如下功能:每隔固定的时间从传感器采集一次温度值,当采集到的温度值连续3次高于阈值温度t时,触发智能终端发出打开电扇指令,接下来保持电扇打开工作状态;当采集到的温度值连续3次低于阈值温度t时,触发智能终端发出关闭电扇指令,接下来保持电扇停止工作状态。请回答下列问题。
(1)若某段时间采集到的温度值如下:
采集的温度值 ... 30 31 32 33 33 32 32 31 31 31 33 33 ...
位置序号 ① ② ③ ④
若阈值t为32,则肯定触发智能终端发出指令,改变电扇工作状态的位置序号是    (单选,填字母)。
A.① B.②
C.③ D.④
(2)实现该功能的部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,并从服务器中获取阈值温度,存在t中,代码略
s1=0;s2=0;cur=0 #cur为电扇的的工作状态,0表示关闭,1表示打开
while True:
  #从传感器中获取温度值,保存在curt中,代码略
  if ①      :
    s1+=1;s2=0
  elif ②      :
    s1=0;s2+=1
  else:
    s1=0;s2=0
  if s1==3 and cur==0 or s2==3 and cur==1:
    ③         #改变电扇工作状态
  #延时一定的时间,代码略
5.小华在实验室搭建了封闭式机室,空气质量监控系统,实时监测鸡舍内空气质量并及时干预,其中,监控氨气浓度的方式设计如下。智能终端通过多个监测点的氧气传感器获取氨气浓度数据,通过网络将数据传输并保存到服务器的数据库中,服务器实时对数据进行处理。当氨气浓度超过阈值时,通过智能终端打开通风设备,请回答下列问题:
(1)设计该系统的网络应用软件时,为方便软件的升级和维护,应选择的实现架构是    (单选,A.B/S架构 B.C/S架构)。
(2)此系统设置每x秒采集一次数据,系统运行过程中,有可能出现数据漏采的现象,为此,系统新增如下功能:若运行t秒后,实际采集到的数据为n条,当漏采的数据数量多于y条时,发出示警。用于实现上述功能的部分伪代码如下,划线处填写合适表达式。
if       :
  (发出示警)
(3)下列关于该系统中传感与控制技术的说法,正确的是    (多选,填字母)。
A.服务器无需安装传感器驱动程序
B.智能终端可以接收来自服务器的控制指令
C.若要新增传感器监测硫化氢浓度,需要修改该系统的程序
D.智能终端通过控制传感器打开通风设备
(4)系统中不同的数据都有各自的用途,请结合该系统的功能填写下表,分别写出“数据1”、“数据2”的一种用途。
数据 数据的含义 数据的用途
数据1 表示鸡舍氨气深度的阈值 ①     
数据2 表示传感器的编号 ②     
6.小华搭建了一个教室照明灯控制系统。该系统智能终端连接了物联网模块、光线传感器、人体红外传感器和室内照明灯等设备。智能终端从服务器获取阈值、光线亮度等相关参数后自动控制教室照明灯的开关,并将采集到的光线亮度数据传输到服务器。用户可以通过手机APP或浏览器查看历史数据和当前照明灯的状态。该系统的架构如图所示,请回答下列问题:
(1)采集教室的光线数据的过程中采用的技术是    (单选,填字母:A.人工智能/B.传感/C.射频识别)。
(2)根据该信息系统的功能要求,图中①处的设备为    (单选,填字母:A.路由器/B.交换机/C.防火墙/D.IoT模块)。
(3)下列关于该系统中服务器、智能终端、客户端的说法,正确的是    (多选,填字母)
A.该系统采用了B/S架构
B.用户远程控制照明灯开关,需通过服务器实现
C.用户手机可以通过IoT模块以无线方式连接服务器
D.浏览器获取照明灯控制系统的数据来源于智能终端
(4)智能终端每隔1分钟获取1次亮度值,若连续两次数据的变化量超过给定的val,则向服务器上传一次数据。如果教室有人且亮度值低于阈值k,则照明灯启动,否则关闭。实现该功能的部分Python代码如下,请在划线处填入合适的代码。
last=0;val=5
sw=False #标记照明灯状态,True表示开启,False表示关闭
while True:
  #读取光线值,结果存于light,代码略
  #从红外线传感器获取数据判断教室是否有人,结果存于flag中(有人为True,无人为False),代码略
  if ①      :
    #将light 光线亮度数据传输到服务器,代码略
    last=light
  if flag and light    #打开照明灯,代码略
    ②     
  else:
    #关闭照明灯,代码略
    sw=False
  sleep(1000* 60) #延时1分钟
7.为了让老人们生活更加舒适,某养老中心搭建了一个智慧环境监测系统。该系统能够实时监测老人居住环境的光线强度、温度、湿度、噪音值。该系统的硬件搭建方式是:服务器通过无线网络连接智能终端,智能终端连接传感器和执行器,在服务器端设置一个舒适阈值,如果低于或高于阈值,则报警,如图所示。请回答下列问题:
(1)要完成该软件的开发,下列需要编写的程序是    (单选,填字母:A.客户端程序/B.服务器端程序)。
(2)下列关于该系统中数据管理的说法,正确的是     (单选,填字母)。
A.数据可以从服务器端传输至传感器
B.智能终端有程序存储和数据处理的能力
C.用户通过浏览器查看监测数据不必访问数据库
(3)编写网络应用程序,部分代码如下,请在划线处填入合适的代码。
#导入Flask 框架模块及其他相关模块,代码略
@app.route("/")
def index():
  #从数据库读取温度等数据,并返回页面,代码略
@app.route("/input")
def add_data():
  t=float(request.args.get("val"))
  #将温度数据存入数据库中,代码略
  #从数据库中获取温度低阈值和高阈值,分别保存在变量minv,maxv中,代码略
  if     :
    return "1" #打开报警装置
  else:
    return "0"
#服务器其他功能,代码略
if _ _name_ _=="_ _main_ _":
  app.run(host="192.168.1.1",port=8000)
(4)若要通过浏览器查询温度等数据,则应访问的URL是http://          。
(5)若该系统运行一段时间后,发现显示屏中其他数据显示正常,但噪音数据缺失,如图监测数据所示,从硬件角度分析发生此故障的可能原因是_______________________________________(注:回答2项,1项正确得1分)
8.小李为某恒温恒湿仓库搭建了环境监测系统,实时监测仓库的温湿度。该系统结构示意图如图所示。该系统通过智能终端将传感器采集到的数据传输到Web服务器,存储在数据库中。当温湿度超出服务器设定的阈值范围,相应蜂鸣器报警,相应执行器(如空调、加湿器等)进行工作。
(1)服务器与数据库之间的数据传输方向是    (单选:A.只能由服务器传输至数据库/B.只能由数据库传输至服务器/C.服务器与数据库之间相互传输)。
(2)小李基于FlaskWeb框架编写服务器端程序,部分代码如下。根据题意,请在程序中划线处填入合适的代码。
#导入Flask 框架模块及其他相关模块,代码略
app=Flask(_ _name_ _)
@app.route("/input")
def add_data():
  #获取温度传感器采集到的数据
  id_1=int(request.args.get("id"))
  temp=float(request.args.get("w"))
  #获取温度阈值上下限,分别保存在变量maxv和minv中,代码略
  if     :
    #启动空调,代码略
  else:
    #关闭空调,代码略
  #服务器其他功能,代码略
if _ _name_ _=="_ _main_ _":
  app.run(host="192.168.1.76",port=8080)
(3)若温度传感器的编号id为1,温度值w为25,提交数据到Web服务器的URL为http://     id=1&w=25。
(4)下列关于该系统中智能终端的功能的描述,不正确的是    (单选,填字母)。
A.利用温湿度传感器采集环境数据
B.存储程序和数据库文件等相关数据
C.控制空调、加湿器等执行器的开关状态
(5)系统搭建完成后开始运行。当仓库温度超出阈值范围,相应蜂鸣器1发出警报,空调开始工作;同一时间段内无论湿度如何变化,相应蜂鸣器2始终未发出警报,加湿器也未工作。假设代码正确,阈值设置合理,各设备间连接正常,请从硬件角度简要说明系统中可能造成上述问题的两个原因:
①                 、②                 。 专题7 搭建和完善信息系统
学习目标 
1.掌握系统搭建前准备的工作及流程。
2.掌握Flask路由和视图函数的编写。
3.掌握Flask请求和路由的关系。
4.掌握基本数据库语句的功能和作用。
(2023年1月浙江省选考)小明为家庭小菜园搭建了环境温湿度监测系统,该系统结构示意图如图所示。Web服务器端程序采用FlaskWeb框架开发。传感器采集的数据由智能终端经IoT模块发送到Web服务器,执行器用于实现温湿度的控制。请回答下列问题:
(1)下列选项标注了图中虚线框内的智能终端与传感器执行器之间的数据传输关系,其中合理的是    (单选,填字母)。
(2)该系统网络应用软件的实现架构是    (单选,填字母:A.B/S架构/B.C/S架构)。
(3)若传感器的编号id为1,湿度值h为60提交数据到Web服务器的URL为http://192.168.1.6:5000/toserv h=60&id=1,则服务器端应用实例app中与该URL关联的路由设置语句是@app.route('    ')。
(4)菜园里的蔬菜适宜生长的空气温度范围是tmin~tmax。现要求当温度t正常、偏低、偏高时,将sta的值对应设为0、1、2。下列Python程序段中符合要求的有    (多选,填字母)。
A.if t  sta=1
if t>tmax:
  sta=2
else:
  sta=0
B.if t  sta=1
elif t>tmax:
  sta=2
else:
  sta=0
C.sta=0
if t  sta=1
else:
  sta=2
D.sta=0
if t  sta=1
if t>tmax:
  sta=2
(5)小明设定采集并上传数据的时间间隔为1分钟。他用浏览器查看温湿度页面,页面动态显示最新的温度、湿度及其采集时间。系统正常工作一段时间后,他发现该页面不再变化,刷新后仍不变。结合图,简要说明系统中可能造成上述问题的原因______________________________ (本系统中,传感器损坏传感器和智能终端连接异常,不会造成上述问题)。(注:回答2项,1项正确得1分)
答案 (1)A (2)A (3)/toserv (4)BD (5)①连接物联网模块与Web服务器的无线路由器无法正常工作;②物联网模块损坏;③数据表对记录数有数量限制,当记录数达到一定程度时,数据表不再更新。④Web服务器中数据库管理系统无法正常运行。
解析 本题考查信息系统搭建。(1)智能终端通过传感器获取数据,控制器经过处理后,再通过执行器对外部进行控制,故A项正确。(2)浏览器与服务器交换数据,故需采用B/S架构。(3)由“http://192.168.1.6:5000/toserv h=60&id=1”可知,路由为“/toserv”。(4)当t在[tmin,tmax]之间时返回0,小于min返回1,大于tmax返回2,A项由两个分支构成,一个分支结束后,还需执行第二个分支,程序段返值只能是2或者是0,1无法取到;C项的返回值只能是1或者2,0无法取到;故只有B项与D项正确。(5)可能造成上述问题的原因:一是服务器服务中断(服务器断电或服务器系统故障),二是互联网网络服务出现故障浏览器无法更新获取新的采集数据。
  信息系统的开发包含信息系统搭建前期准备、信息系统搭建和信息系统完善三部分。前期准备指开发前要进行的需求分析和设计工作,沿着信息系统能实现什么功能、怎么做和先干什么后干什么的思路,将前期准备分为需求分析、可行性分析、开发模式选择、概要设计和详细设计五部分。信息系统搭建包含硬件搭建和软件开发两部分,软件开发主要解决服务器端的代码设计。信息系统完善包含系统测试和文档编写两部分工作。
例题 小华要搭建苗圃大棚环境监控系统。该系统中的智能终端从服务器获取湿度阈值。根据该阈值和传感器采集的空气湿度值控制加湿器,并将湿度值等数据传输至Web服务器,存储到数据库中。网络应用软件的实现架构是B/S架构,用户可通过浏览器查询实时和历史数据。硬件按如下方式连接:湿度传感器和加湿器接入智能终端,智能终端通过IoT模块连接到服务器。请回答下列问题:
(1)要完成该系统的搭建,下列需要编写的程序是    (单选,填字母:A.客户端程序/B.服务器端程序)。
(2)下列关于该系统中数据管理的说法,正确的是    (单选,填字母)。
A.数据无法从服务器端传输至智能终端
B.该系统的数据和程序都应存储在数据库中
C.通过浏览器查看湿度历史数据需要访问数据库
(3)下列关于该系统支撑技术的说法,正确的有    (多选,填字母)。
A.智能终端有程序存储和数据处理能力
B.智能终端可以通过IoT模块以无线方式连接服务器
C.该系统如果再增加一个加湿器,必须增加一个湿度传感器
D.支撑该系统运行的所有软件都需要在搭建过程中开发
(4)智能终端上的程序具有如下功能:每隔1分钟从传感器获取1次湿度值:加湿器处于关闭状态时,若连续两次湿度值均低于阈值h,则打开加湿器;加湿过程中,若连续两次湿度值均高h,则关闭加湿器;每隔1分钟将湿度值和加湿器状态数据传输到服务器。部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,并从服务器获取阈值,保存在h中,代码略
lasth=h;s=0
while True:
  #从传感器获取湿度值,保存在newh中,代码略
  if s==0:
    if newh      s=1
      #打开加湿器,代码略
  else:
    if newh>h and lasth>h:
      ①     
      #关闭加湿器,代码略
  ②     
  #将newh,s等数据传输到服务器。代码略
  sleep(1000*60) #延时1分钟
(5)系统搭建完成后,运行一段时间,加湿器始终没有加湿。假设仅湿度传感器、加湿器两个设备存在故障,在不更换设备的前提下,请选择其中一种设备,描述判定该设备是否存在故障的方法。
思维点拨
明考向 本题考查信息系统的搭建
精点拨 (1)本题采用B/S架构,只需要编写服务器端程序。(2)A选项数据可以从服务器端传输至智能终端;B选项程序不需要存在数据库中;C选项湿度历史数据需要长期保存,便于用户访问,应存入数据库。(3)A选项智能终端可以通过烧录的方式存储程序,也具有数据处理能力;B选项智能终端可以通过无线方式、串口、蓝牙等方式连接服务器;C选项增加加湿器与增加传感器没有必然联系,可以利用现有传感器控制加湿器;D选项搭建完成后还可以开发和调试软件。(4)①从传感器获取当前湿度值newh,前一次的湿度值为lasth。当s的值为1,且两次湿度值小于阈值,则将s的值修改为0。②将当前湿度值newh作为前一次的湿度值lasth。(5)略
答案 (1)B (2)C (3)AB (4)①s=0或s=s-1或s=1-s ②lasth=newh (5)从传感器的角度:改变环境湿度,从浏览器观察湿度值是否有实时的更新变化,若没有,说明传感器故障。从执行器角度:通过智能终端直接发送加湿指令,若加湿器未工作,说明加湿器故障。或其他等价答案
变式 小华要搭建仓库温湿度监控系统,分布在仓库各处的智能终端(编号0~9)每隔一定时间将传感器采集的温湿度数据,经过处理后通过无线方式发送到服务器并保存到数据库中,系统若检测到温湿度异常,则发出报警信息,管理员可以通过浏览器查看相关数据。请回答下列问题:
(1)搭建该系统时,下列    设备(单选,填字母)不能与智能终端直接连接。
A.温湿度传感器 B.IoT模块
C.蜂鸣器 D.无线路由器
(2)下列关于该系统支撑技术的说法,正确的有    (单选,填字母)。
A.智能终端具有一定的程序存储和数据处理的能力
B.服务器端运行的软件均为系统软件
C.在服务器端无法使用浏览器访问该系统
(3)小华基于Flask Web框架编写服务器端的程序,部分代码如下。编写完成后,若要通过浏览器获取视图函数index()的返回页面,则应访问的URL是http://    。
#导入Flask框架模块及其他相关模块,代码略
app=Flask(_ _name_ _)
@app.route("/select")
def index():
  #从数据库读取温湿度数据,并返回页面,代码略
#服务器其他功能,代码略
if _ _name_ _=="_ _main_ _":
  app.run(host="192.168.1.1",port=8000)
(4)服务器接收到的数据中包含一个状态信息码,状态信息码由3个数字组成,第1个为智能终端编号,第2个、第3个为温度、湿度状态(0为偏低、1为正常、2为偏高),如“101”表示1号终端的温度偏低、湿度正常。如果某终端的状态连续异常称为一个异常段,异常段内的状态个数称为长度,服务器将接收到的所有状态信息码按接收时间顺序保存到列表res中,如"111","012","211","901","100","211",……],编写程序对res进行处理,要求统计出各智能终端异常段长度超过阈值m的次数,请在划线处填入正确代码。
#数据保存到res,阈值保存到m,代码略
size=[0]*10;c=[0]*10
for code in res:
  k=①     
  if code[1:]!="11":
    size[k]+=1
  else:
    if size[k]>m:
      ②     
    size[k]=0
for i in range(10):
  if size[i]>m:
    c[i]+=1
for i in range(10):
  print("编号为"+str(i)+"的智能终端异常段长度超过阈值次数:"+str(c[i]))
(5)请对该系统功能进行一项扩展,写出实现的功能及所需的硬件设备。
答案 (1)D (2)A (3)192.168.1.1:8000/select (4)①int(code[0]) ②c[k]+=1或其他等价答案
(5)功能:防火,硬件设备:烟雾传感器;功能:防盗,硬件设备:摄像头或红外传感器或其他等价答案(功能与硬件匹配且全正确得2分;功能与硬件不匹配,且任1个正确得1分)
解析 本题考查信息系统搭建。(1)不能与智能终端直接连接的是路由器,其需要通过智能终端连接IoT模块,通过IoT模块连接路由器。(2)A选项将程序代码烧录到智能终端并存储起来,智能终端代码可以对数据进行加工处理。B选项服务器端运行的软件由系统软件和应用软件两部分构成。C选项在服务器端开启服务后,可以通过IP地址127.0.0.1访问自身服务器。(3)URL由http协议://IP地址:端口号/路由所构成。因此其答案应该为192.168.1.1:8000/select(4)①#取得传感器编号作为size索引,注意字符转数值类型。②编号k的传感器超过阈值的次数加1。(5)略。
1.有一个农田作物生长环境监测系统。该系统的智能终端通过传感器获取数据,并通过IoT模块以无线方式将数据上传到Web服务器。服务器实时对数据进行处理,判断出异常时,通过智能终端控制执行器发出预警信号并打开环境调控设备。用户可通过浏览器查询实时和历史数据。请回答下列问题:
(1)下列环节中不属于信息系统搭建的是    (单选,填字母)。
A.软件开发  B.硬件搭建  C.系统测试
(2)下列关于该信息系统的说法,正确的有    (多选,填字母)。
A.智能终端和服务器、执行器之间的数据传输均是双向的
B.若IoT模块损坏,则用户无法通过浏览器查看实时监测数据
C.不同传感器采集的数据可以通过同一智能终端传输至Web服务器
D.该系统采集到的数据可以存储在数据库中
(3)该系统正常运行一段时间后,发现数据异常时系统能发出预警信号但不能打开环境调控设备,简要说明系统中可能造成上述问题的原因(写一点即可)。
(4)基于FlaskWeb框架编写服务器端的程序,为避免数据库数据冗余,需要对某传感器提交的数据进行预处理,当数据库中读取不到该传感器的数据或最近两次采集数据的变化值大于限定差值时,才将该传感器提交的数据写入数据库,部分代码如下,请在划线处填入合适的代码。
#导入Flask框架模块及其他相关模块,代码略
app=Flask(_ _name_ _)
@app.route("/input",methods=["GET"])
def add_data(): #用于传感器提交的数据处理
  sensorid=request.args.get("id")
  sensorvalue=float(request.args.get("h"))
  #从数据库中读取编号为sensorid传感器最近一次采集的数据,并存储在实型变量last中,若读取不到数据则last的值设为-1,代码略
  #从数据库中读取对应编号传感器的限定差值x(x>0),代码略
  if    :
    #将传感器提交的数据写入数据库,代码略
  #服务器其他功能,代码略
if _ _name_ _=="_ _main_ _":
  app.run(host="10.196.22.100",port=8000)
(5)若某时刻传感器的编号id为s1,采集数据h为50,提交数据到Web服务器的URL为http://10.196.22.100:8000/    。
答案 (1)C (2)BCD (3)环境调控设备故障或环境调控设备与智能终端连接故障
(4)last==-1 or abs(sensorvalue-last)>x
(5)input id=s1&h=50 或 input h=50&id=s1
解析 (1)信息系统搭建主要包括硬件搭建和软件模块选择或编写两方面,不包括系统测试。(2)智能终端与执行器之间的数据传输是单向的,A错,其余选项正确;(3)“数据异常时系统能发出预警信号但不能打开环境调控设备”,说明传感器、智能终端、服务器、网络都没有问题,问题出在执行器部分;可能是作为执行器的环境调控设备故障,也可能环境调控设备与智能终端连接故障;(4)当数据库中读取不到数据(last为-1)或最近两次数据变化限定差值x时,才写入新数据;(5)从路由函数可以看出,当前的路由是“/input”,需要上传两个参数 id=s1,h=50,故填:input id=s1&h=50。
2.某校为每个教室安装了新风系统用于调节室内空气质量。系统从数据库中获取空气质量阈值,根据阈值和传感器采集的空气质量数据比对结果控制执行器,并将采集到的数据存储至数据库中。网络应用软件的实现架构是B/S架构,用户可通过浏览器查询实时和历史数据。该新风系统由智能终端、传感器和执行器等构成。请回答下列问题:
(1)在设计该系统时,为了存储采集到的数据,需设计一个合适的数据库。该过程属于    (单选题,填字母)。
A.需求分析 B.可行性分析
C.概要设计 D.详细设计
(2)关于该系统中数据的处理,下列说法正确的是    (单选,填字母)。
A.用户可以通过浏览器查看智能终端的数据
B.该系统处理数据的程序必须存放在服务器端
C.智能终端可以从服务器端获取数据
(3)Web服务器根据采集的数据与阈值比对结果决定是否开启执行器。如采集到的数据连续两次大于阈值,且当前执行器处于关闭状态,则开启执行器;若数据连续两次低于阈值,则关闭执行器。服务器端的部分代码如下:
@app. route("/disp")
def show():
  #实现系统数据的查看,代码略
@app.route("/input")
def scanf():
  #从数据库中获取阈值mco2、前一时刻的空气质量数据preco2和通风设备状态sta,代码略
  #从智能终端获取当前空气质量数据newco2,代码略
  #sta值:True表示设备开启,False表示设备关闭
  if not sta:
    if newco2>mco2 and preco2>mco2:
      sta=True
  else:
    if ①      :
      sta=False
  ②     
  #将proco2的值保存到服务器数据库中,并向sta值发送给智能终端,代码略
app.run()
请在上述程序划线处填上合理的代码。
(4)下列关于该系统的说法正确的有    (多选,填字母)。
A.传感器与执行器必须连接到同一个智能终端
B.智能终端也可以进行数据处理
C.智能终端与服务器进行通讯只能通过无线方式
D.本系统所使用到的所有软件必须在搭建过程中开发
E.为提高系统的安全性,必须及时更新杀毒软件
(5)该系统正常运行一段时间后,系统管理人员使用浏览器查看系统相应数据,发现页面不能显示最新数据,页面刷新后仍没有改变。请简要说明系统产生这种情况可能的原因(分别从软件与硬件不同角度分析)。
答案 (1)D (2)C
(3)①newco2②proco2=newco2 (4)BE
(5)①数据库已存满 ②智能终端连接异常。(其它合理原因)
解析 (1)设计合适的数据库用于存储采集到的数据,属于系统开发过程中“详细设计”的阶段。(2)A选项通过浏览器查询的是存储在数据库中的历史数据。B选项智能终端具有数据处理功能。(3)①连续两次数据低于阈值,sta值设置为False,同时关闭设备。②更新并保存空气质量数据。(4)A选项传感器和执行器不一定必须连接到同一个智能终端。B选项传感器的数据可以直接发送到服务器,而执行器可以通过服务器获取控制指令。C选项智能终端与服务器的通讯方式也可以使用有线网络。D选项也可能是后期开发和完善程序代码。(5)略。
3.某研究小组拟采集博物馆的温湿度、光线值、空气质量等数据,以实现对展品环境监测。该小组在实验室搭建一个模拟系统,该系统的智能终端获取温湿度传感器数据,并传输至web服务器。智能终端根据从服务器获取的阈值判断出异常情况后,控制执行器进行干预。请回答下列问题。
(1)该系统配置了多个智能终端,下列说法正确的是    (单选,填字母:A.传感器采集的数据只能存储于服务器的数据库;B.传感器采集的数据可存储于连接的智能终端)。
(2)下列功能需要在服务器程序中实现的是    (单选,填字母)。
A.采集和提交传感器数据
B.根据阈值控制执行器
C.存储传感器数据至数据库
(3)下列关于该系统设计的说法,正确的有    (多选,填字母)。
A.智能终端可以通过无线网络连接服务器
B.支撑该系统运行的所有软件,都必须在搭建过程中开发完成
C.温度、湿度等数据的采集时间间隔不能相同
D.智能终端与服务器的数据传输是双向的
(4)智能终端上的程序具有如下功能:每分钟获取1次湿度值并将湿度值和除湿机状态数据传输到服务器:除湿机处于关闭状态时,若最近5次的湿度值中有3次高于阈值h,则打开除湿机;除湿过程中,若连续5次湿度值均不高于h,则关闭除湿器;部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,并从服务器获取阈值,保存在h中,代码略
lasth=[0,0,0,0,0] #保存最近5次湿度值,初始状态为均不高于h
s=0
while True:
  #从传感器获取湿度值,保存在newh中,代码略
  ①     
  if newh<=h:
    lasth[-1]=0
  else:
    lasth[-1]=1
  if s==0:
    if ②      :
      s=1
      #打开除湿机,代码略
  else:
    if sum(lasth)==0:
      s=0
      #关闭除湿机,代码略
  #将newh,s等数据传输到服务器。代码略
  sleep(1000*60)#延时1分钟
(5)为进一步完善该模拟系统功能,请你写出一种扩展方案并详细阐述实现的功能及所需增设的传感器与执行器的名称。
答案 (1)B (2)C (3)AD (4)①lasth[:4]=lasth[1:] 或 lasth=lasth[1:]+lasth[0:1]或 lasth=lasth[1:]+[0] ②sum(lasth)>2 或 sum(lasth)==3 或 sum(lasth)>=3
(5)
拓展的功能 增加传感器 执行器
光线达到阈值,关闭窗帘 光线(光敏)传感器 舵机(电机)
有异味开窗,无异味关窗 气体(气敏)传感器 舵机(电机)
烟雾达到阈值报警 烟雾传感器 蜂鸣器
闭馆期间未关门就报警 霍尔传感器 蜂鸣器
有人靠近展品自动开灯 人体红外传感器LED 灯(继电器)
空气中PM2.5超标自动报警 PM2.5传感器 蜂鸣器
…… …… ……
解析 (1)采集的数据也可以存储智能终端中。(2)A选项采集和提交传感器数据由智能终端完成;B选项根据阈值控制执行器由智能终端完成;C选项存储数据到数据库由服务器完成。(3)A选项智能终端可以通过IoT模块连接无线网络,传输数据至服务器;B选项部分软件可以在后期测试时进行完善;C选项采集时间间隔由自行设定;D选项智能终端和服务器之间的数据传输是双向的。(4)①lasth由最近获取的五次湿度值构成,现在新获取一项湿度值,需要将后四项前移到前四项,把第五个位置空出来放新值。因此该空答案为lasth[0:4]=lasth[1:5];②由提示打开除湿机可知,当前要打开除湿机,其需要近5次有三次超过阈值,因此答案可以为sum(lasth)>2。(5)略。
4.小明为学校草坪搭建了分区自动浇灌系统。该系统的智能终端获取传感器数据,并通过无线通信方式将数据传输到Web服务器,存储到数据库中。服务器根据数据判断出哪些区域需要灌溉,并通过相应区域的智能终端控制执行器打开水泵。网络应用软件的实现架构是B/S架构,草坪管理人员可通过浏览器查询实时和历史数据。请回答下列问题。
(1)下列不属于该信息系统硬件搭建中的硬件组成的是    (单选,填字母)。
A.服务器 B.数据库
C.网络设备 D.智能终端
(2)下列关于该系统的描述,正确的有    (多选,填字母)。
A.系统中所有硬件设备都需要直接与服务器相连
B.Flask框架用于构建服务器端程序,处理数据请求
C.监测数据可以通过图表形式在Web页面上展示
D.传感器采集的数据可以通过智能终端直接发送到用户的浏览器上
(3)小明从服务器数据库中导出某区传感器采集到的近期(>=7天)湿度数据,并计算出日平均湿度,存储于数组hs中。如果近一周中有3天日平均湿度低于最低湿度阈值,或近一周的湿度持续下降6天,则判断该区草坪需要灌溉。
def checkh(hs):
  rehs=hs[-7:]
  ①     
  cnt1=cnt2=0
  for i in range(0,7):
    if rehs[i]      cnt1+=1
    if i>0 and rehs[i]      cnt2+=1
  if ②      :
    flag=True
  return flag
#获取日平均湿度hs,获取湿度阈值thrd,代码略
print(checkh(hs))
(4)将草坪划分为ABCD四个区域,在系统正常运行一段时间后,发现除了A区,其它区域都能实现自动灌溉,简要说明系统中可能造成上述问题的原因__________________________(不考虑黑客或病毒)。
答案 (1)B (2)BC (3)①flag=False ②cnt1>=3 or cnt2==6或cnt1>=3 or cnt2>=6
(4)A区传感器异常/故障;A区执行器异常/故障;或A区智能终端异常/故障;A区传感器与智能终端连接故障;或A区执行器与智能终端连接故障;或其他可行答案
解析 (1)数据库属于数据。(2)A选项传感器、执行器与智能终端直接相连,不需要直接与服务器相连。D选项传感器采集的数据通过智能终端传输到Web服务器(存储到数据库中),然后浏览器发送请求给Web服务器得到数据库中的数据。(3)①flag的值为True表示需要灌溉,False表示不需要灌溉。②近一周中平均湿度低于最低湿度阈值的天数达到3天或者近一周的湿度持续下降的天数达到6天。(4)略。
5.小明为蔬菜大棚搭建了一个简易温度监测控制系统,可以设定阈值,系统提供自动及手动工作模式。自动工作模式时,系统会自动根据温度变化情况控制是否加热,使蔬菜大棚保持适合的温度。手动工作模式,可以通过浏览器远程访问系统控制网页,直接开启或关闭加热器。该系统结构示意图如图所示。系统为B/S开发模式,使用micro:bit作为智能终端,温度传感器采集数据。传感器采集的数据由智能终端经IoT模块发送到Web服务器,用户可通过浏览器查询实时和历史数据。执行器用于实现温度的控制。根据以上功能描述,请回答下列问题:
(1)下列关于该信息系统的说法,正确的是    (单选,填字母)。
A.在该信息系统中,智能终端的作用相当于中央处理器CPU
B.在该信息系统中,传感器和执行器没有智能终端的控制不能正常工作
C.概要设计阶段,包括系统的模块结构设计、系统物理配置和数据库设计三大部分
(2)通过浏览器远程手动模式开启加热器操作时,指令数据的传输过程为    (单选,填字母)。
A.浏览器→数据库→智能终端
B.浏览器→智能终端→服务器
C.浏览器→Web服务器→智能终端
(3)根据题意,下列功能需要在智能终端程序中实现的是    (多选,填字母:A.采集温度传感器上的数据/B.处理浏览器访问请求/C.接收服务器指令/D.打开或关闭加热器)。
(4)智能终端上的程序具有如下功能:每隔5分钟从传感器获取1次温度值:加热器处于关闭状态时,若温度值小于等于阈值temp1,则打开加热器;加热过程中,若温度值大于等于阈值temp2,则关闭加热器;并将温度数据传输到服务器。部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,代码略
flag=False
while True:
  #从传感器获取温度值,保存在newtemp中,代码略
  #从服务器获取温度阈值temp1和temp2及工作模式数据auto代码略
  if auto==True:
    if newtemp<=temp1 and flag==False:
      ①     
      #打开加热器,代码略
    elif ②       and flag==True:
      flag=False
      #关闭加热器,代码略
  else:
    #执行手动控制加热器,代码略
  #将newtemp,flag等数据传输到服务器。代码略
  sleep(1000*5*60) #延时5分钟
(5)该系统使用后发现通过浏览器远程访问系统控制网页,能直接开启或关闭加热器。小明希望实际温度低于20摄氏度时,加热器开启加热,当温度高于26摄氏度时,加热器关闭加热,但在实际应用中自动模式下温度低于20摄氏度时,加热器没有开启,而此时手动模式开启正常,请分析可能的原因。
___________________________________________________________________________________
(注:回答2项,1项正确得1分)。
答案 (1)B (2)C (3)ACD (4)①flag=True ②newtemp>=temp2 (5)温度传感器损坏或服务器阈值设置不正确或web服务器程序代码有误
解析 (1)A选项智能终端负责数据采集与传输,并控制执行器工作。C选项概要设计阶段包括系统的模块结构设计、系统物理配置、数据库管理系统选择等。(2)通过浏览器远程手动模式开启加热器操作时指令数据的传输过程为从浏览器至 Web 服务器,再从Web 服务器传输至智能终端。(3)智能终端通过温度传感器采集的数据由智能终端经过IoT模块发送到Web 服务器,再接收服务器的控制指令打开或关闭加热器。(4)①flag表示加热器的工作状态,其值为False且条件newtemp<=temp1成立,设置flag为True。②加热过程中,若温度值newtemp大于等于阈值temp2,则关闭加热器。(5)略。
6.小周为庭院鱼池搭建水位预警自动排水系统。该系统中的智能终端从服务器获取水位阈值,根据该阈值和传感器采集的水位值控制排水阀和蜂鸣器,并将水位值等数据传输至Web服务器,存储到数据库中。用户可通过浏览器查询数据和修改阈值,系统结构示意图如图所示。请回答下列问题:
(1)下列关于该系统数据管理的说法,不正确的是    (单选,填字母)。
A.水位传感器采集的数据还可以通过有线的方式传输到Web服务器
B.智能终端只负责数据的采集
C.数据库中的部分数据可以来自用户
(2)智能终端的程序具有如下功能:每隔1分钟从传感器获取1次水位值,根据不同情况,控制执行器作出相应的响应。
排水阀和水位情况 执行器状态
水位值不超过阈值 排水阀关闭
排水阀为关闭状态且水位值超过阈值 排水阀半开
排水阀为半开状态且水位值连续3分钟超过阈值 排水阀全开
排水阀为全开状态且水位值连续5分钟超过阈值 蜂鸣器报警
部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,代码略
num=0;s=0 #s表示排水阀状态,值0,1,2分别表示关闭,半开,全开3种状态
while True:
  #从传感器获取水位值保存在tmp中,并从服务器获取阈值h,代码略
  if tmp>h:
    num+=1
    if s==0:
      #半开排水阀,代码略
      s=1
    elif ①      :
      #全开排水阀,代码略
      s=2
    elif s==2 and num==5:
      #触发系统报警,代码略
  else:
    #关闭排水阀,代码略
    s=0
    ②     
  #将水位值tmp、排水阀状态s等数据传输到服务器,代码略
  sleep(60*1000) #延时1分钟
(3)Web服务器端程序的部分代码如下:
#导入相关库,代码略
app=Flask(_ _name_ _)
@app.route("/input")
def add_da():
  #将传感器最近一次的水位数据保存到数据库,代码略
if _ _name_ _=="_ _main_ _":
  app.run("192.168.1.100",port=8080,debug=True)
下列说法正确的有    (多选,填字母)。
A.服务器端代码中不能出现两个相同的路由
B.视图函数add_da()必须有返回值
C.该系统服务器的IP地址是192.168.1.100
D.设置“debug=True”增强了系统的安全性
(4)系统运行一段时间后,发现水池有水溢出,排水阀却处于关闭状态,简要说明系统中可能造成上述问题的原因。
___________________________________________________________________________________
(本系统中,服务器、通信网络、传感器与智能终端的功能均不存在问题。注:回答2项,1项正确得1分,2项正确得2分)
答案 (1)B (2)①s==1 and num==3 ②num=0 (3)AC (4)阈值设置过高或者阈值设置不合理;排水阀故障;排水阀与智能终端连接出错或其他合理答案
解析 (1)A选项网络可能是有线方式,还可以是无线方式。B选项智能终端解决计算机没有传感器接口,同时还可以连接执行器。C选项当用户查询信息时,数据可以保存到数据库中。(2)①全开排水阀的条件为排水阀为半开状态且水位值连续3分钟超过阈值。②关闭排水阀后,水位值连续超过阈值时间num将清零。(3)A选项两个相同的路由,则不能明确哪个路由来响应请求。B选项若没有return,则可以没有返回值。D选项设置debug属性是为了便于调试,系统开发完成后,设置属性值为True,不利于系统的安全性。(4)略。
1.小强为帮助父亲戒烟,在书房搭建抽烟监控系统。该系统中智能终端从服务器获取烟雾阈值,根据阈值和传感器采集的烟雾值控制报警器,该系统的软件架构为B/S架构,可通过浏览器查询历史数据。硬件按如下方式连接:烟雾传感器和报警器接入智能终端,智能终端通过IoT模块连接到服务器。请回答下列问题:
(1)该系统中属于执行器的是    (单选,填字母:A.报警器/B.手机浏览器)。
(2)该系统服务器端程序采用FlaskWeb框架编写,若智能终端某次提交烟雾浓度平均值到服务器的URL为http://192.168.0.33:8080/upload val=0.6,则本次提交的烟雾浓度平均值为    。
(3)智能终端上程序有如下功能,每分钟从传感器获取1次烟雾浓度值,获取5次后计算平均值,若平均值超过阈值,则将数据提交至服务器数据库,同时书房中报警器响10秒结束。部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,并从服务器获取阈值,保存在h中,代码略
s=0;t=0
while True:
  #从传感器获取烟雾浓度值,保存在d中,代码略
  if t<=4:
    t+=1
    ①     
    if t==5:
      if s/t>h: #计算 5次烟雾浓度的平均值,并与阈值进行比较
        #警报器响 10秒后关闭,并将相关数据提交至服务器,代码略
      ②     
      s=0
  sleep(1000*60) #延时1分钟
(4)小强在电脑浏览器地址栏中输入http://60.188.68.173:5050/query,可通过外网访问历史记录。能正确实现上述功能的部分代码是    (多选,填字母)。
A@app.route('/query')
def query():
  #代码略
B.@app.route('/query')
def view():
  #代码略
C.@app.route('/')
def query():
  #代码略
D.@app.route('query')
def query():
  #代码略
(5)利用该系统小强可查询数据库中某数据表,获取书房烟雾超标时的平均浓度值及发生时间,烟雾值由智能终端提交,那么请用文字描述产生时间值的编程思路。
答案 (1)A (2)0.6 (3)①s+=d或s=s+d ②t=0 (4)AB (5)服务器端程序接收到智能终端提交的数据时,采用当前服务器的时间作为时间值利用编程获取即可或其他可行方案和等价答案。
解析 本题考查信息系统的搭建过程。(1)报警器是烟雾值超出阈值,发生报警信号,属于输出设备,是执行器。(2)提交的烟雾浓度名为val,值为0.6。(3)①从传感器获取烟雾浓度值d,并对其进行累加到s,获取5次后,计算其平均值。②若满足条件t==5,表示已经获取5次的值,需对其进行初始化,重新计算计数次数。(4)路由的名称为'/query',C和D选项的路由名称不正确,路由名称可以和视图函数名相同,也可以不同。(5)从服务器上获取当前时间,并将当前时间作为参数进行提交。
2.某研究小组拟采集河流中的pH值等数据,对河流水质污染进行监测。该小组在实验室搭建了一个模拟系统,该系统使用智能终端获取传感器数据,并采用无线通信方式将数据传输到Web服务器,服务器根据数据判断出异常情况后,通过智能终端控制执行器发出预警信号,系统采用B/S架构实现。请回答下列问题。
(1)实现客户端查看该系统中历史数据的程序    (单选,填字母:A.需存储并在服务器中运行/B.可在智能终端存储和运行)。
(2)若将智能终端采集的pH值为7.2、监测点编号为5的数据上传至服务器的URL为:http://192.168.0.1:8080/s id=5&w=7.2,则服务器的IP地址为    。
(3)下列关于该模拟系统设计的说法,正确的有    (多选,填字母)。
A.所有传感器必须连接在同一个智能终端
B.监测点编号、pH值等数据只能使用数据库进行存储
C.客户端可以使用浏览器访问系统,查看数据
D.智能终端和服务器可连接在同一局域网中
(4)该系统设置了多个监测点,正常工作一段时间后,发现其中一个监测点没有数据,经检测,路由器与服务器网络通信正常,其余监测点数据均正常,简述可能造成上述问题的原因:
___________________________________________________________________________________
(该监测点传感器损坏、传感器和智能终端连接故障,不会造成上述问题)。(注:回答2项,1项正确得1分)
(5)智能终端上的程序实现如下功能:每分钟从传感器采集2次pH值,若2个数值范围都在6.0~9.0之间(包含6.0和9.0),则计算均值后上传数据;若只有1个数值在该范围,则仅上传该数据;若2个数值都不在该范围,则不上传数据。实现上述功能的部分Python程序如下,请在程序划线处填入合适的代码。
#导入相关库,代码略
while True:
  sleep(1000*60) #延时1分钟
  #每分钟获取传感器采集的2次pH值,保存在变量a,b中,代码略
  d=-1
  if a>=6.0 and a<=9.0:
    if b>=6.0 and b<=9.0:
      d=round((a+b)/2,1) #保留1位小数
    else:
         
  else:
    if b>=6.0 and b<=9.0:
      d=b
  #将数据d(值为-1不上传)传输到服务器,代码略
答案 (1)A (2)192.168.0.1 (3)CD (4)智能终端与网络连接出现故障或智能终端与IoT模块连接出现故障或智能终端连接的IoT模块出现故障或智能终端出现故障 (5)d=a
解析 (1)客户端向服务器发送请求,因此需存储并在服务器中运行。(2)略。(3)A选项传感器可以连接在不同的智能终端。B选项还可以保存在文本文件中。(4)略。(5)若只有1个数值在该范围,则仅上传该数据。
3.某校使用教室二氧化碳监测系统,教室内安装传感器用于监测二氧化碳浓度,智能终端将检测数据传输到Web服务器(一个智能终端连接两个教室设备),服务器处理数据后发送指令给智能终端,实现通风设备控制。若室内二氧化碳浓度大于等于设定阈值且当前通风设备处于关闭状态,则开启;若连续两次室内二氧化碳浓度均低于阈值,则关闭。该系统的所有检测数据及通风设备状态均可登录相应平台随时随地查看。请回答下列问题。
(1)若服务器故障,智能终端是否可以正常采集传感器数据    (单选,填字母:A.可以/B.不可以/C.不确定)。
(2)服务器端的部分代码如下:
@app.route("/show")
def disp():
  #实现在网页查看系统数据,代码略
@app.route("/input")
def input():
  #从数据库获取阈值mco、前一时刻二氧化碳浓度preco和通风设备状态s,代码略
  #从智能终端获取二氧化碳浓度newco,代码略
  #s=0表示通风设备关闭,s=1表示设备开启
  if s==0:
    if newco>=mco:
      s=1
  else:
    if     :
      s=0
  preco=newco
  #保存preco的值,并向智能终端发送s指令,代码略
app.run(host="2.58.11.23",port=8088)
①则访问查看系统数据网页的URL是
http://  。
②请在上述程序中划线处填入合适的代码。
(3)下列关于该系统设计的说法,正确的有    (多选,填字母)。
A.二氧化碳浓度、通风设备状态等数据存储在数据库
B.从系统的安全性考虑,可以在服务器端增加防火墙
C.所有的二氧化碳传感器均需连接着同一个智能终端
D.智能终端通信必须要通过无线网络
(4)系统调试期间,某一时刻甲教室连续两次测得的二氧化碳浓度均小于阈值,乙教室二氧化碳浓度大于阈值,此时甲教室通风设备开启,而乙教室通风设备关闭。在所有设备功能均正常的情况下,请你分析造成此现象的原因。
答案 (1)A (2)①2.58.11.23:8088/show
②newco解析 (1)智能终端通过程序代码进行数据采集,通过网络进行数据传输,服务器故障,不会影响智能终端采集数据。(2)①查看系统数据的路由为show,ip地址为2.58.11.23,端口为8088。②变量preco保存前一时刻的二氧化碳浓度,newco保存当前二氧化碳浓度。当s为0时通风设备关闭,s为1时开启设备,关闭通风设备,则需要两次的二氧化碳浓度均小于阈值。(3)一个智能终端连接两个教室设备,此时当教室数量大于等于3,至少需要2个智能终端。智能终端需要通过网络向服务器发送数据,网络分为有线网络和无线网络,此时智能终端也可以通过有线网络连接服务器。(4)甲教室需要关闭通风设备,乙教室需要打开通风设备,但此时两个教室设备开启情况相反,结合一个智能终端控制两个教室可知,甲乙两个教室上传的数据可能是相反的,即甲乙两个教室智能终端与传感器连接反了,此时若两个传感器未接反,则可能是服务器处理数据时,将上传数据对应的教室设置反了,或处理代码设置有误。
4.某智能终端的程序具有如下功能:每隔固定的时间从传感器采集一次温度值,当采集到的温度值连续3次高于阈值温度t时,触发智能终端发出打开电扇指令,接下来保持电扇打开工作状态;当采集到的温度值连续3次低于阈值温度t时,触发智能终端发出关闭电扇指令,接下来保持电扇停止工作状态。请回答下列问题。
(1)若某段时间采集到的温度值如下:
采集的温度值 ... 30 31 32 33 33 32 32 31 31 31 33 33 ...
位置序号 ① ② ③ ④
若阈值t为32,则肯定触发智能终端发出指令,改变电扇工作状态的位置序号是    (单选,填字母)。
A.① B.②
C.③ D.④
(2)实现该功能的部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,并从服务器中获取阈值温度,存在t中,代码略
s1=0;s2=0;cur=0 #cur为电扇的的工作状态,0表示关闭,1表示打开
while True:
  #从传感器中获取温度值,保存在curt中,代码略
  if ①      :
    s1+=1;s2=0
  elif ②      :
    s1=0;s2+=1
  else:
    s1=0;s2=0
  if s1==3 and cur==0 or s2==3 and cur==1:
    ③         #改变电扇工作状态
  #延时一定的时间,代码略
答案 (1)D (2)①curt>t ②curt解析 (1)位置④(31,31,31)满足“连续3次低于阈值”,在该位置触发关闭电扇指令。(2)①当前温度值curt 高于阈值t,进入连续高温阶段,将s1增加1,同时将s2赋值为0。②当前温度值curt低于阈值t,说明进入连续低温阶段。③cur为电扇工作状态,共值为0或1,因此改变状态时的表达式为cur=1-cur。
5.小华在实验室搭建了封闭式机室,空气质量监控系统,实时监测鸡舍内空气质量并及时干预,其中,监控氨气浓度的方式设计如下。智能终端通过多个监测点的氧气传感器获取氨气浓度数据,通过网络将数据传输并保存到服务器的数据库中,服务器实时对数据进行处理。当氨气浓度超过阈值时,通过智能终端打开通风设备,请回答下列问题:
(1)设计该系统的网络应用软件时,为方便软件的升级和维护,应选择的实现架构是    (单选,A.B/S架构 B.C/S架构)。
(2)此系统设置每x秒采集一次数据,系统运行过程中,有可能出现数据漏采的现象,为此,系统新增如下功能:若运行t秒后,实际采集到的数据为n条,当漏采的数据数量多于y条时,发出示警。用于实现上述功能的部分伪代码如下,划线处填写合适表达式。
if       :
  (发出示警)
(3)下列关于该系统中传感与控制技术的说法,正确的是    (多选,填字母)。
A.服务器无需安装传感器驱动程序
B.智能终端可以接收来自服务器的控制指令
C.若要新增传感器监测硫化氢浓度,需要修改该系统的程序
D.智能终端通过控制传感器打开通风设备
(4)系统中不同的数据都有各自的用途,请结合该系统的功能填写下表,分别写出“数据1”、“数据2”的一种用途。
数据 数据的含义 数据的用途
数据1 表示鸡舍氨气深度的阈值 ①     
数据2 表示传感器的编号 ②     
答案 (1)A (2)t/x-n>y或t/x-y>n或其他等同算式 (3)ABC (4)①用于与采集的氨气浓度进行比较,以决定是否打开通风设备或其他等同答案 ②用于区分不同传感器及传感器所在的位置或其他等同答案
解析 (1)B/S浏览器服务器模式,该框架特征是所有服务由服务器提供,因此A符合题意;(2)根据题目描述转换为数学关系式可得t/x-n>y或t/x-y>n。(3)智能终端通过控制执行器打开通风设备,而不是传感器打开通风设备,因此D选项错误。(4)略。
6.小华搭建了一个教室照明灯控制系统。该系统智能终端连接了物联网模块、光线传感器、人体红外传感器和室内照明灯等设备。智能终端从服务器获取阈值、光线亮度等相关参数后自动控制教室照明灯的开关,并将采集到的光线亮度数据传输到服务器。用户可以通过手机APP或浏览器查看历史数据和当前照明灯的状态。该系统的架构如图所示,请回答下列问题:
(1)采集教室的光线数据的过程中采用的技术是    (单选,填字母:A.人工智能/B.传感/C.射频识别)。
(2)根据该信息系统的功能要求,图中①处的设备为    (单选,填字母:A.路由器/B.交换机/C.防火墙/D.IoT模块)。
(3)下列关于该系统中服务器、智能终端、客户端的说法,正确的是    (多选,填字母)
A.该系统采用了B/S架构
B.用户远程控制照明灯开关,需通过服务器实现
C.用户手机可以通过IoT模块以无线方式连接服务器
D.浏览器获取照明灯控制系统的数据来源于智能终端
(4)智能终端每隔1分钟获取1次亮度值,若连续两次数据的变化量超过给定的val,则向服务器上传一次数据。如果教室有人且亮度值低于阈值k,则照明灯启动,否则关闭。实现该功能的部分Python代码如下,请在划线处填入合适的代码。
last=0;val=5
sw=False #标记照明灯状态,True表示开启,False表示关闭
while True:
  #读取光线值,结果存于light,代码略
  #从红外线传感器获取数据判断教室是否有人,结果存于flag中(有人为True,无人为False),代码略
  if ①      :
    #将light 光线亮度数据传输到服务器,代码略
    last=light
  if flag and light    #打开照明灯,代码略
    ②     
  else:
    #关闭照明灯,代码略
    sw=False
  sleep(1000* 60) #延时1分钟
答案 (1)B (2)D (3)AB (4)①abs(light-last)>val ②sw=True
解析 (1)光线数据的采集是通过光线传感器获取,采用的是传感器技术。(2)①处的设备用于连接智能终端与Web服务器,而且使用Wi-Fi连接,所有为IoT模块。(3)A选项用户通过手机APP或浏览器使用系统,所以系统同时采用了C/S和B/S架构;B选项用户远程控制照明灯开关,需要通过服务器向智能终端发送指令;C选项IoT模块的功能是扩展智能终端的无线连接功能,手机本身具有无线连接功能,不需要IoT模块;D选项浏览器从Web服务器获取数据,Web服务器的数据是保存在数据库中的。(4)①判断是否需要将光线亮度数据上传到服务器,根据题意,答案为abs(light-last)>val。②将灯打开,还需要标记照明灯的状态,所以答案为sw=True。
7.为了让老人们生活更加舒适,某养老中心搭建了一个智慧环境监测系统。该系统能够实时监测老人居住环境的光线强度、温度、湿度、噪音值。该系统的硬件搭建方式是:服务器通过无线网络连接智能终端,智能终端连接传感器和执行器,在服务器端设置一个舒适阈值,如果低于或高于阈值,则报警,如图所示。请回答下列问题:
(1)要完成该软件的开发,下列需要编写的程序是    (单选,填字母:A.客户端程序/B.服务器端程序)。
(2)下列关于该系统中数据管理的说法,正确的是     (单选,填字母)。
A.数据可以从服务器端传输至传感器
B.智能终端有程序存储和数据处理的能力
C.用户通过浏览器查看监测数据不必访问数据库
(3)编写网络应用程序,部分代码如下,请在划线处填入合适的代码。
#导入Flask 框架模块及其他相关模块,代码略
@app.route("/")
def index():
  #从数据库读取温度等数据,并返回页面,代码略
@app.route("/input")
def add_data():
  t=float(request.args.get("val"))
  #将温度数据存入数据库中,代码略
  #从数据库中获取温度低阈值和高阈值,分别保存在变量minv,maxv中,代码略
  if     :
    return "1" #打开报警装置
  else:
    return "0"
#服务器其他功能,代码略
if _ _name_ _=="_ _main_ _":
  app.run(host="192.168.1.1",port=8000)
(4)若要通过浏览器查询温度等数据,则应访问的URL是http://          。
(5)若该系统运行一段时间后,发现显示屏中其他数据显示正常,但噪音数据缺失,如图监测数据所示,从硬件角度分析发生此故障的可能原因是_______________________________________(注:回答2项,1项正确得1分)
答案 (1)B (2)B (3)tmaxv (4)192.168.1.1:8000 (5)声音传感器与智能终端连接异常声音传感器损坏
解析 (1)B/S模式无需编写客户端程序。(2)A选项传感器是输入设备,只能从传感器传输到服务器。B选项智能终端必须有程序代码才可以完成数据采集等功能,还可以根据返回值或采集到的数据,对数据进行处理,向执行器发送指令。C选项用户查询的数据往往保存在数据库中。(3)在服务器端设置一个舒适阈值,如果低于或高于阈值,则报警。(4)从数据库读取温度等数据的路由为主页,因此只需写明主机地址和端口即可。
8.小李为某恒温恒湿仓库搭建了环境监测系统,实时监测仓库的温湿度。该系统结构示意图如图所示。该系统通过智能终端将传感器采集到的数据传输到Web服务器,存储在数据库中。当温湿度超出服务器设定的阈值范围,相应蜂鸣器报警,相应执行器(如空调、加湿器等)进行工作。
(1)服务器与数据库之间的数据传输方向是    (单选:A.只能由服务器传输至数据库/B.只能由数据库传输至服务器/C.服务器与数据库之间相互传输)。
(2)小李基于FlaskWeb框架编写服务器端程序,部分代码如下。根据题意,请在程序中划线处填入合适的代码。
#导入Flask 框架模块及其他相关模块,代码略
app=Flask(_ _name_ _)
@app.route("/input")
def add_data():
  #获取温度传感器采集到的数据
  id_1=int(request.args.get("id"))
  temp=float(request.args.get("w"))
  #获取温度阈值上下限,分别保存在变量maxv和minv中,代码略
  if     :
    #启动空调,代码略
  else:
    #关闭空调,代码略
  #服务器其他功能,代码略
if _ _name_ _=="_ _main_ _":
  app.run(host="192.168.1.76",port=8080)
(3)若温度传感器的编号id为1,温度值w为25,提交数据到Web服务器的URL为http://     id=1&w=25。
(4)下列关于该系统中智能终端的功能的描述,不正确的是    (单选,填字母)。
A.利用温湿度传感器采集环境数据
B.存储程序和数据库文件等相关数据
C.控制空调、加湿器等执行器的开关状态
(5)系统搭建完成后开始运行。当仓库温度超出阈值范围,相应蜂鸣器1发出警报,空调开始工作;同一时间段内无论湿度如何变化,相应蜂鸣器2始终未发出警报,加湿器也未工作。假设代码正确,阈值设置合理,各设备间连接正常,请从硬件角度简要说明系统中可能造成上述问题的两个原因:
①                 、②                 。
答案 (1)C (2)temp>maxv or temp(5)①湿度传感器出现故障 ②蜂鸣器2和加湿器同时出现故障
解析 (1)可以对数据库进行读写操作,传输方向是双向的。(2)空调可以加热,也可以降温,当温度超出服务器设定的阈值范围,空调开始工作。(3)略。(4)智能终端不能存储数据库文件。(5)略。

展开更多......

收起↑

资源列表