第十一届 蓝桥杯 物联网设计与开发项目 决赛 第二部分 程序设计试题

第十一届 蓝桥杯 物联网设计与开发项目 决赛

第二部分 程序设计试题

1.基本要求

2.系统框图

在这里插入图片描述

3.硬件配置

在这里插入图片描述

4.功能要求

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解题思路

蓝桥杯的物联网设计与开发是可以使用STM32CodeMX软件来对引脚配置初始化的,对于本题,我个人在学习过程中的思路是先写A终端除了LoRa数据接发部分的功能,再写B终端的请求功能,然后A再根据B终端的请求,返回相应的数据,再进行相应的展示,写完每个模块时,养成测试的好习惯,不要全部写完再测试

写A终端

用到的模块和对应引脚配置大概如下

OLED模块
	1 PA8 I2C3_SCL  Output
	2 PB4 I2C3_SDA  Output
	3 PB5 电源控制引脚,低电平有效  Output
温度传感器
	1 PB1 传感器 报警输出信号 Alert  Output
	2 PB6 传感器 I2C 总线 SCL 信号  Output
	3 PB7 传感器 I2C 总线 SDA 信号  Output
USER键
	PC_14  EXTI中断,用于切换显示界面
USART2,波特率9600
	设置Asynchronous
	打勾NVIC的ENABLE
继电器
	K1--->PA0  Output
	K2--->PA1  Output
LoRa模块
	引脚配置在官方给的驱动文件中都已经配置好,无需自己配置
LPTIM1定时器
	使用定时器来定时获取温度传感器的温度和查询LoRa的接收,分频128

配置完如同所示

图1 引脚配置图

本终端用到了多个中断,要注意优先级,这里设置的优先级是:USER按键 > 串口接收 > 定时器

1)需要用得到的变量定义

在这里插入图片描述

2)外设初始化

添加官方给的驱动文件,在main函数中初始化。我因为在初始化时,将LoRa模块需要的三个初始化函数放在了两个中断开启的下面,可能导致了初始化不成功,后续一直无法接收到B终端的请求,卡了一天多的时间。这个地方需要注意一下。
在这里插入图片描述

3)获取温度

因为官方只给了温度传感器的I2C驱动,获取传感器的值需要自己去写,所以抄了一下其他例程里的文件,如果暂时不会写,比赛的时候可以背下来,好像和实际温度有点出入,sts.c
在这里插入图片描述
得到温度后,就完成第一个要求了,在OLED屏显示出来
在这里插入图片描述
通过PC14的中断,来切换显示的界面
显示最大最小温度的界面
在这里插入图片描述
在这里插入图片描述
到这里,完成了第二个要求

4)串口收发数据

在main函数初始化时,已经打开了串口2的中断接收,只需要重写回调函数的功能即可。发送完要再次进入接收模式
数据的解析有点粗鲁,但这是小白的我想到的直白的方式了
在这里插入图片描述

5)定时器的继电器控制和温度刷新

在这个部分完成了很多功能,在刷新温度的时候,判断是否达到继电器的吸合和断开的条件,就进行对继电器的控制,同时扫描一下是否有接收到终端B的请求
在这里插入图片描述

到这,终端A除了LoRa收发数据部分,其他功能已经完成,先去写终端B

写B终端

终端B只用到了键盘和OLED,开发步骤和A终端一样
所以引脚配置

OLED模块	
	1 PA8 I2C3_SCL  Output 低电平有效
	2 PB4 I2C3_SDA  Output
	3 PB5 电源控制引脚,低电平有效  Output
外接按键模块
	用到B1、B2、B3、B4,使用列1,列2,行1,行2 
	列1:PB0	Output
	列2:PB1	Output
	行1:PB6	input
	行2:PB7	input
LoRa模块
	引脚配置在官方给的驱动文件中都已经配置好,无需自己配置,打开EXTI10的中断,用于LoRa的接收中断
1)需要用得到的变量定义

在这里插入图片描述

2)外设初始化

和终端A的差别不大
在这里插入图片描述

3)按键扫描

按键原理图
在这里插入图片描述
本题没用到B3和B6键,所以PA8用不到,因为PA8是OLED的I2C3_SCL线,低电平有效。
所以按键扫描的思路为:
PB1,PB0,PA8为Output模式,设置行对应引脚为信号输入,也就是PB6,PB7为Input模式,都设置为Pull-down。注意:PA8为OLED信号线,低电平有效,在按键读取结束时应及时设置成低电平。开始扫描时,先扫描第一列,将PB1设置为高电平,PA8为低电平(OLED屏需要),然后读取行值,PB6,PB7的值,即当PB6读取值为1(高电平)时,说明按键B1被按下,同理,PB7读取值为1时,说明按键B4被按下;读取完第一列,开始读取第二列,要及时将PB1改为低电平,然后设置PB0为高电平,后续原理一样;读取第三列时是将PA8设置为高电平,结束后应当及时改为低电平,以方便OLED屏使用。
在这里用不到第三列,但是也可以扫描出来,在处理时相应的处理即可。key.c代码如下
在这里插入图片描述
到这一步,剩下的就是两个终端之间的通信了

终端A终端B之间的通信

整个通信过程大概如下图
在这里插入图片描述

1)B向A发送请求

根据扫描得到的按键,向A终端发送不同的请求(B终端代码)
在这里插入图片描述

2)A数据解析

A收到B发来的请求后
解析B的请求(A终端代码)
在这里插入图片描述

3)A向B返回数据

数据返回(A终端代码)
在这里插入图片描述

4)B处理接收到的数据

写EXTI中断回调函数(B终端代码)
在这里插入图片描述
在main中的while(1)里就扫描按键和LoRa接收中断标志
在这里插入图片描述
当接收到数据时,调用recv_service()
根据不同的数据进行不同的展示
在这里插入图片描述

总结

1.使用多个中断时需要注意优先级,优先级不对会导致部分功能无法实现
2.在B终端接收数据的时候,用PA10的EXTI中断,A中断用定时器查询
3.在相同部分代码复制时,注意修改不一样的地方

结束

本题写到这里就结束了,客观题部分在上一篇,还有本题的题目和本人写的源代码
解题思路和代码工程总体是很粗糙的,只是大概能完成题目的要求,需要改进和碗勺的地方太多,恳请各位前辈和同学批评指正

  • 3
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 蓝桥杯物联网设计开发考试不会要求考生编写 OLED 和 LoRa 的驱动程序。而是更注重考察考生在物联网设计开发方面的综合能力和技术应用能力。 物联网设计开发是指将各种物理设备和传感器通过互联网连接起来,实现数据的采集、传输、处理和应用。在这个过程中,OLED 和 LoRa 是常见的硬件设备和无线通信技术。 OLED(Organic Light-Emitting Diode)属于一种发光二极管显示器。它具有自发光、超薄、高对比度和低功耗等优点。在物联网应用中,OLED 可以用于显示各种传感器的数据或者设备的工作状态。 LoRa(Long Range)是一种低功耗、远距离的无线通信技术。它适用于物联网场景下的远距离传输和低功耗要求。LoRa 可以实现传感器数据的远程传输和远程控制等功能。 在蓝桥杯物联网设计开发考试中,考生可能会遇到使用 OLED 和 LoRa 的实际应用案例。但不要求考生编写硬件驱动程序。考察的重点更多在于考察考生对物联网的整体设计能力、对数据传输和处理的技术理解和实践经验。 因此,考生需要掌握物联网系统的搭建和调试技巧、熟悉各种通信协议和传输技术、了解各种传感器的工作原理和数据处理方法。掌握这些基础知识和技能,能够实际应用到物联网实际项目中,才能在蓝桥杯物联网设计开发考试中取得好的成绩。 ### 回答2: 蓝桥杯物联网设计开发考试会给oled和lora驱动。 蓝桥杯物联网设计开发考试是一个对物联网相关知识的综合考核,其中会考察对各种传感器、驱动设备的使用能力。而oled和lora作为物联网应用中常用的两种驱动设备,理应在考试中被考察。 OLED是一种有机发光二极管显示技术,可以实现高对比度、高亮度、宽视角的显示效果。在物联网设计中,使用OLED可以将各种数据或者信息以直观的方式呈现出来,提高用户体验。因此,考试中会对OLED的使用方法进行考察,包括初始化、显示文本或图片等相关操作。 Lora是一种低功耗远距离无线通信技术,适用于物联网中传感器节点之间的数据传输。它具有长距离传输能力和低功耗的特点,可以实现在数百米至几公里范围内的无线通信。在物联网设计中,使用Lora可以实现传感器的数据采集和上传,从而构建起一个完整的无线传感器网络。因此,考试中也会对Lora的使用方法进行考察,包括Lora模块的初始化、数据发送和接收等相关操作。 综上所述,蓝桥杯物联网设计开发考试会考察对于oled和lora的驱动。通过对这些驱动设备的了解和掌握,可以更好地实现物联网应用的开发设计。 ### 回答3: 蓝桥杯物联网设计开发考试不会直接给出 OLED 和 Lora 驱动程序。然而,物联网设计开发考试通常会涉及对各种传感器、通信模块以及外设的使用和集成,包括 OLED 和 Lora。对于 OLED 和 Lora 驱动程序的使用,考试题目可能要求考生自行编写或集成相应的驱动程序。 对于 OLED,考生可能会被要求了解 OLED 的工作原理和驱动方式,并实现相关功能,如显示文本、图像等。考试中可能会要求考生使用相应的开发平台和库来编写 OLED 驱动代码,并结合实际应用场景进行相应的功能实现和调试。 对于 Lora,考生可能会要求了解 Lora 的工作原理和通信协议,并实现与其他设备之间的远程通信。考试中可能会要求考生使用开发板和相应的 Lora 模块来实现通信功能,并结合具体场景对其进行应用和调试。 总之,蓝桥杯物联网设计开发考试鼓励考生在实际应用中掌握和使用各种硬件驱动和通信模块。虽然不会直接给出 OLED 和 Lora 驱动程序,但通过考试的实践和学习,考生可以提升自己的硬件驱动和通信模块的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值