目录
一、基本要求:
1.硬件可以使用单片机或者其他硬件也可以,通信可以使用无线或者有线传输,最好使用无线功能
2.具有可以记录温度、湿度、相对湿度等功能,时间间隔设置采集5分钟采集一次
3.上位机软件可以使用安卓编辑成手机控制或者采集用其他可视化软件编辑控制,把采集的数据保存到上位机中,并且可以实现查询以前的记录。
二、使用的元器件:
1.DHT11(温湿度传感器:直接测量温度和湿度)

2.ch340(串口转通信)

3.LED灯(系统提示灯,LED灯闪烁代表系统开始工作)
4.STM32F103ZET6(32单片机,核心芯片的型号:STM32F103ZET6)
5.上位机(可以直接发出操控命令的计算机)
三、原理图

四、整个系统的实物图
1.实物展示图
2.后台数据截图

五、程序
1.STM32主程序

2.上位机部分程序:
(1)串口打开函数
# 串口打开函数
def open_ser():
port = 'com5' # 串口号
baudrate = 115200 # 波特率
try:
global ser
ser = serial.Serial(port, baudrate, timeout=2)
if (ser.isOpen() == True):
print("串口打开成功")
except Exception as exc:
print("串口打开异常", exc)
(2)数据发送函数
# 数据发送
def send_msg():
try:
# send_datas = input("请输入要发送的数据\n")
# ser.write(str(send_datas).encode("gbk"))
# print("已发送数据:",send_datas)
send_datas1 = 875
ser.write(str(send_datas1).encode("gbk"))
print("已发送数据:", send_datas1)
except Exception as exc:
print("发送异常", exc)
(3)接收数据函数
# 接收数据
def read_msg():
try:
print("等待接收数据")
while True:
data = ser.read(ser.in_waiting).decode('gbk')
if data != '':
break
print("已接受到数据:", data)
return data
except Exception as exc:
open_ser()
print("读取异常", exc)
(4)关闭串口函数
# 关闭串口
def close_ser():
try:
ser.close()
if ser.isOpen():
print("串口未关闭")
else:
print("串口已关闭")
except Exception as exc:
print("串口关闭异常", exc)
2511

被折叠的 条评论
为什么被折叠?



