编程题
一、基本要求

使用大赛组委会提供的四梯/国信长天物联网省赛套装(基于STM32L071KBU微控制器设计),完成本试题的程序设计与调试。程序编写、调试完成后,选手需提交两个LoRa终端对应的hex文件,LoRa终端A对应的文件命名A.hex,LoRa终端B对应的文件命名为B.hex,将两个hex文件压缩为zip文件提交,zip文件以准考证号命名。不符合以上文件提交要求的作品将被评为零分或者被酌情扣分。

二、通信设置

1、使用终端配置的 LoRa 单元完成通信功能。

2、选手可以自定义终端 A、B 间的通信协议,避免通信干扰,保证终端 A、B 不会因为收到错误数据导致功能异常。

三、功能要求

1、LoRa终端A

终端A配置键盘模块,系统结构框图如图4所示。


图4 终端A硬件结构框图

1)显示功能:

(1)数据界面如图5所示,由终端A最近一次接收且符合温度和湿度数据更新标准的温度数据和湿度数据组成,温度和湿度数据保留小数点后一位。

图5 数据界面

温度和湿度数据更新标准:

温度值上限≤温度数据≤温度值下限:温度数据更新

湿度值上限≤湿度数据≤湿度值下限:湿度数据更新

(2)温度标准范围设置界面如图6所示,由界面名称(TEMP)、温度上限值(UP)和温度下限值(DOWN)组成。

图6 温度标准范围设置界面

(3)湿度标准范围设置界面如图7所示,由界面名称(HUMI)、湿度上限值(UP)和湿度下限值(DOWN)组成。

图7 湿度标准范围设置界面

(4)显示要求

① 请严格按照图示要求设计各信息项的名称(区分字母大小写)和相对行列位置。

② 请确保使用的资料包中提供的字库(8X16),不可使用自定义的字库。

2)按键功能

按键USER表示“切换”按键,按键终端A的USER按键,切换“数据界面”、“温度标准范围设置界面”和“湿度标准范围设置界面”,切换顺序如下图所示。

图8 界面切换顺序

按键B1表示“加”按键,在“温度标准范围设置界面”或“湿度标准范围设置界面”下,按下按键B1,对应上限值增加。

温度上限值(UP)“加”顺序:

25 30 35 … 50 25 …

湿度上限值(UP)“加”顺序:

50 55 60 … 95 50 …

按键B2表示“减”按键,在“温度标准范围设置界面”或“湿度标准范围设置界面”下,按下按键B2,对应下限值减小。

温度下限值(DOWN)“减”顺序:

20 15 10 5 20 …

湿度下限值(DOWN)“减”顺序:

45 40 35 … 10 45 …

3)继电器功能

收到终端B发来的温度和湿度数据时,

若本次温度数据符合温度数据更新标准,继电器K1吸合,否则断开;

若本次湿度数据符合湿度数据更新标准,继电器K2吸合,否则断开;

4)无线通信功能

终端A通过LoRa通信单元接收温度和湿度数据。

2、LoRa终端B

终端B配置电位器模块,系统结构框图如图1所示。

图1 终端A硬件结构框图

1)模拟功能

终端B内置ADC采集电位器RP1和RP2输出的电压值,并将其转换为环境温度和湿度数据(数据均保留小数点后1位),显示在OLED屏上,显示格式如图2所示。

图2 OLED显示货物重量

显示要求

① 请严格按照图示要求设计各信息项的名称(区分字母大小写)和相对行列位置。

② 请确保使用的资料包中提供的字库(8X16),不可使用自定义的字库。

电位器RP1电压值与温度的转换关系如图3所示:

图3 RP1电压值与温度关系

电位器RP2电压值与湿度的转换关系如图4所示:

图4 RP2电压值与湿度关系

2)按键功能

在终端B上按下USER按键,终端B通过LORA单元向终端A发送当前发温度和湿度数据。

3)继电器功能

终端B发送温度和湿度数据后,

若终端B发送的温度数据不符合终端A温度数据更新标准,继电器K1吸合,否则断开;

若终端B发送的湿度数据不符合终端A湿度数据更新标准,继电器K2吸合,否则断开;

4)无线通信功能

终端B通过LoRa通信单元完成温度和湿度数据的传输功能。

三、设计要求

(1)自定义终端 A 和终端 B 间的无线通信协议,避免通信干扰。

(2)终端A上电后,温度数据和湿度数据为0。

(3)温度数据上限值为40,下限值为20。

(4)湿度数据上限值为70,下限值为30。

(5)继电器均处于断开状态。

四、资源数据包
资源数据包下载链接:

链接:https://pan.baidu.com/s/1sSrrRO7761ETXkJeJcCSyQ
提取码:lq3l

代码:

链接:https://pan.baidu.com/s/1CmfpdJW3YR5iTy8Srj4YIg?pwd=q6to
提取码:q6to