资源简介 (共23张PPT)第四章 信息系统的搭建实例必修2 信息系统与社会4.2 搭建信息系统前言信息系统的搭建主要包括硬件搭建和软件模块选择或编写。硬件是信息系统建立的基础。软件是控制信息系统运行的中枢。1.硬件搭建信息系统硬件包括服务器、网络设备、传感设备、智能终端等,决定了系统的运行速度、可靠性、适用范围、可维护性等。1.硬件搭建(1)服务器为信息系统中的用户提供各种服务,如应用程序的处理、访问数据库管理系统、打印服务等。(2)网络设备通过网络来完成数据的传递。网络设备主要包括:交换机、路由器、双绞线、光缆1.硬件搭建(3)传感设备和智能终端传感设备,即传感器,是重要的输入设备,负责检测并将信息变换成电信号或其他形式信息输出。智能终端大部分功能依靠传感器实现,包括输入、处理、存储、输出四个部分。“室内环境实时监测系统”硬件清单“室内环境实时监测系统”硬件选择智能终端设备:micro:bit主板,连接温度传感器、蜂鸣器模块、IoT(物联网)模块。为了方便连接模块须接扩展板。“室内环境实时监测系统”硬件选择智能终端的引脚分配情况模块名称 引脚IoT模块 Pin1、Pin2蜂鸣器 Pin8温度传感器 Pin0引脚,英文Pin,是集成电路(芯片)内部电路引出与外围电路的接线,所有的引脚就构成了这块芯片的接口。“室内环境实时监测系统”硬件选择网络设备:IoT(物联网)模块全名“UART OBLOQ-IoT”模块,可以用于自身不能联网、但是有串口功能的智能硬件,原理是串口转wifi物联网。IoT模块有四个针脚,分别如下:名称 功能描述Vcc 电源正极Gnd 电源负极TX 串口发送端RX 串口接收端“室内环境实时监测系统”硬件选择网络设备:IoT(物联网)模块IoT模块的TX和RX可以连在micro:bit的Pin0~Pin2任何两个口,但是要在micro:bit的代码中进行定义,例如:uart.init(baudrate=9600,bits=8,parity=None,stop=1,tx=pin2,rx=pin1)表示TX接到Pin2口,RX接到Pin1口,串口波特率是9600。“室内环境实时监测系统”硬件选择服务器选择:服务器要存储各种传感器收集的数据,处理服务需求,要求不高,可用普通PC机。数据库选择Python自带的嵌入式开源数据库SQLite。“室内环境实时监测系统”硬件连接2.软件开发信息系统的软件开发一般包括:数据管理设计服务器端程序客户端程序2.软件开发主要负责与具体数据管理系统相衔接,包括数据采集、传输、存储、呈现等方面,为系统中需要长久存储的数据对象提供数据存储的方案。1)数据管理设计2.软件开发1)数据管理设计(1)数据采集数据采集是利用一种或多种装置,从系统外部采集数据并输入系统内部一个接口的过程。常见数据采集方法:键盘输入、利用光电设备采集数据、多媒体输入、网络传送、磁盘输入等。2.软件开发1)数据管理设计(2)数据传输通过传输介质传送到服务器进行加工处理和存储。常见的传输介质分为有线和无线两种。有线介质包括双绞线、同轴电缆和光缆;无线介质包括微波、卫星、超短波和短波信道等。2.软件开发1)数据管理设计(3)数据存储文件、数据库、云存储是数据存储的常见方式。文件使用较为简单,方便程序自定义格式;数据库性能优越,方便查询,可以加、解密,以及跨平台应用等;通过网络可以把采集到的数据实时传输到数据处理中心进行存储及处理。2.软件开发1)数据管理设计(4)数据呈现把分析结果用最容易理解和最美观的方式展现出来。人们用到的数据图类型有以下几种:柱状图、条形图、折线图、饼图、气泡图、漏斗图、GIS地图、词云等。2.软件开发2)程序编写信息系统中的软件开发涉及服务器端程序和客户端程序。“室内环境实时监测系统”的程序编写三部分:Web服务器端程序Web模板文件代码智能终端程序Web服务器端程序from flask import Flask,request,render_templateimport sqlite3,datetimeapp=Flask(__name__)@app.route("/input",methods=["POST"])def collect_data():data=str(request.json["Real_val"])now_time=datetime.datetime.now()now_time=now_time.strftime("%Y-%m-%d %H:%M:%S")con=sqlite3.connect("data.db")cur=con.cursor()cur.execute("CREATE TABLE IF NOT EXISTS temp(time TEXT,data TEXT)")cur.execute("INSERT INTO temp(time,data) VALUES( , )",(now_time,data))con.commit()con.close()print("获取时间:%s;温度值:%s"%(now_time,data))return data@app.route("/get",methods=["GET"])def get_data():show=""con=sqlite3.connect("data.db")cur=con.cursor()cur.execute("select * from temp")data=cur.fetchall()con.commit()con.close()t_min=float(data[0][1])t_max=float(data[0][1])for i in range(len(data)):if t_maxt_max=float(data[i][1])if t_min>float(data[i][1]):t_min=float(data[i][1])return render_template("show.html",Tdata=data,Tmax=t_max,Tmin=t_min)if __name__=="__main__":app.run(host="0.0.0.0",port=8080)Web模板文件代码温度情况查看温度传感器获取情况当前最大值:`Tmax`℃ 当前最小值:`Tmin`℃{% for i in Tdata[::-1] %}获取时间:{{i[0]}} 获取温度值:{{i[1]}}℃{% endfor %}智能终端程序from microbit import *#write your program:import Obloqip=“*.*.*.*” #Web服务器IP地址,其中*用实际值替换port=“8080“ #Web服务器端口号ssid=“********“ #Wi-Fi的SSID,其中*用实际值替换password=“********“ #Wi-Fi的密码,其中*用实际值替换uart.init(baudrate=9600,bits=8,parity=None,stop=1,tx=pin2,rx=pin1)while Obloq.connectWifi(ssid,password,20000) !=True:display.show(".")display.scroll(Obloq.ifconfig())Obloq.httpConfig(ip,port)while True:val=pin0.read_analog()temp=round(val*330/1024,1)display.scroll(temp)errno,resp=Obloq.post("input","{\"Real_val\":"+str(temp)+"}",120000)sleep(500)3.调试及运行将代码写入智能终端后,观察智能终端LED矩阵的显示,了解传感器数据的采集和数据的传输情况。并尝试解决调试过程中遇到的问题。序号 错误状态 错误原因 如何修复错误1234 展开更多...... 收起↑ 资源预览