小方在学习了信息化系统搭建知识后,很想为家乡做点实事,考虑到家乡每年都会防汛抗旱,她在市应急支援局做了调研,开发了本地的“数字智讯”系统,实现通过互联网获取各采样点的温度、湿度、风力等数据,并根据一定的阅值自动触发调节系统和报警装置,该系统的架构如图所示:
信息采集终端部分代码如下:
IP="202. 101. 190. 111";PORT="8080";SSID="yzzx1";PASSWORD="yzzx@2017" # 设 置
连接参数
uart. init(baudrate=9600, bits=8, parity=None, stop=1, tx=pin2, rx=pin1) while Obloq. connectWifi(SSID,PASSWORD,10000) != True:
display. show(". ")
display. scroll(Obloq. ifconfig())
Obloq.httpSet(IP,PORT) #根据ip和port建立连接
while True:
temp=round(pin1.read_analog()/1024*3000/10.24,1) #读取温度
hum=round(pin2.read_analog(),1) #读取湿度
rain=round(pin3. read_analog(),1) #读取雨量
winpower= round(pin4. read_analog(),1) #读取风力
errno,resp=Obloq. get("input?t="+str(temp)&"h="+str(hum) &"r="+str(rain)&"w="+str(winpower),10000)
if errno ==200:
display. scroll(resp) ifresp=="1":
music. pitch(1000, 3000)
display. scroll("SOS")
#其他各种报警设备驱动代码
else:
display. scroll(str(errno)) sleep(10000*5) #设置采集间隔时间
WEB 服务器部分代码如下所示:
from flask import Flask app = Flask(name) @app. route('/')
def index():
#读取终端最近一次的温度、湿度、雨量、风力存入 temp 、 hum、rain、winpower, 代码略
return "当前温度"+str(temp)+ "当前湿度"+str(hum)+ "当前雨量"+str(rain)+ "当前风力"+str(winpower)
@app. route('/input',methods=['POST', 'GET'])
defadd_data(): #终端上传最新采集的数据#代码略
#maxtemp,mintemp,maxhum,minhum,maxrain,minrain,maxwinpower,minpower,变量分别为温度、湿度、雨量、风力的最大、最小的报警阀值
#以下为温度报警
if sensorvalue1 > maxtemp or sensorvalue1 < mintemp:
return'1'
else:
return '0'
#湿度、雨量、风力报警代码略
if name == 'main':
app. run(host="202. 101. 190. 111", port=8080)