Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
LCD
舵机
星火1号_spark_星火一号_开发板
[RT-Thread x 大学生夏令营]基于星火一号的温度检测与报警散热系统
发布于 2023-07-25 23:59:04 浏览:1087
订阅该版
项目文档 21组 项目名称:基于星火一号的温度检测与报警散热系统 小组成员:纪梓翰,赵柏宇,毕昕鹏,廖弘毅 流程图: ![图片1.png](https://oss-club.rt-thread.org/uploads/20230726/f7134d6e1601980930b709bdced7a68e.png.webp) 开发板:星火一号 ![图片2.png](https://oss-club.rt-thread.org/uploads/20230726/97ca09f8f8af9074478e60c5256069d2.png.webp) 正面 ![图片3.png](https://oss-club.rt-thread.org/uploads/20230726/2d13961eefbd29836df333575b31322f.png.webp) 背面 基础逻辑功能的实现 Aht10测温模块: 采用例程中的aht10模块代码(aht10软件包已配置好无需再配),并以此为“根据地”,将后续其他功能加入到此main.c的工程文件中。 调用函数读取当前的温度值,并根据温度区间(<30,30-32,>32)给控制参数crl赋值(0,1,2),以备后续使用。 Led_matrix矩阵灯模块 枚举每个灯的名称,并对应地将Setcolor的函数加入不同温度区间的情况中去,即对crl使用switch语句,case0给矩阵灯赋绿色,1赋蓝色,2赋红色。 过程中要注意矩阵灯的驱动文件夹是否使能且参与编译。 蜂鸣器模块 将蜂鸣器的端口设置为输出模式后,对应地加入switch语句中,即0、1时beep_off, 2时调用beep_on。 Lcd显示屏模块 对lcd初始化后,对应不同的情况调用显示函数,分别显示rt-thread的logo,调用字符串显示函数显示实时温度和对应的工作状态(0,1为SAFE,2显示TEMPERATURE IS TOO HIGH!!!)。 过程中要注意lcd驱动文件夹是否使能且参与编译。 且要主要lcd的配置与led矩阵灯是否有冲突。 舵机 ![图片4.png](https://oss-club.rt-thread.org/uploads/20230726/2bcfab2781d565b23a51bb1d6de8c1a2.png.webp) 为了更加形象的模拟系统温度过高后的冷却功能,我们在板子上增加一个舵机外设,通过定时器输出pw波,控制舵机在aht10检测到温度过高时转动吹风来降温。为了不影响板载外设的正常功能,我们打开Stm32CubeMX,寻找空闲引脚PE5,配置成Tim9——CH1输出。 接着,对Timer进行相关配置。 ![图片5.png](https://oss-club.rt-thread.org/uploads/20230726/cd06313567c6a718f082826520fcaeb2.png.webp) 配置完成后生成代码,删除掉不需要的文件夹。 ![图片6.png](https://oss-club.rt-thread.org/uploads/20230726/0245b8f928e1dacccf096cd16324076b.png) 点击rt setting,打开时钟和PWM驱动程序 ![图片7.png](https://oss-club.rt-thread.org/uploads/20230726/8a2f787a4660ffcaa3edfac8a62e76d5.png.webp) 系统设置完成后,开始编写代码。 ![图片8.png](https://oss-club.rt-thread.org/uploads/20230726/200bdc4e6e7ae6d51449dca59370eb91.png) 窗体底端 为了观察PE5输出的PWM波形,使用逻辑分析仪连接相关引脚后,打开Pulse view软件,观测到波形如下 ![图片9.png](https://oss-club.rt-thread.org/uploads/20230726/e0319cb8fa772c2eef914bef587eddf6.png) ![图片10.png](https://oss-club.rt-thread.org/uploads/20230726/93951d38463914d7c1e5bbd153a6af59.png.webp) 与代码设置的理想波形几乎一致,因此可以确定,PWM波设置完成。 接着查阅资料,了解到给360度舵机一个PWM信号,舵机会以一个特定的速度转动,类似与电机。但与电机不同的是,360舵机是闭环控制,速度控制稳定。设置PWM周期为20ms,高电平为0.5ms时,占空比符合正向最大速度转动的要求。对代码重新进行设置后,连接舵机,发现舵机正转,符合要求。至此舵机模块配置完成。 按键控制舵机功能 本次实训中,为了完善功能,使我们的仪器更为可靠,我们创新性地加入了当温度未达到警戒值(32℃)时,也能通过手动调节的方式使舵机转动强制降温的功能。 对key1键进行分配(四个按键中最上方的按键),当此按键未pin_up状态时,强行调用mg90main函数(舵机启动函数),对一些温度传感器检测不到的故障进行强制降温,确保器件不被烧坏。 ```c void irq_callback(void *args) { rt_uint32_t sign = (rt_uint32_t) args; switch (sign) { case PIN_WK_UP : flag=1; break; case PIN_KEY1 : flag=0; break; default: LOG_E("error sign= %d !", sign); break; } } void self_sg90() { switch (flag) { case 1 : mg90main1(); break; case 0 : if(temperature<30) { mg90mainstop(); } break; default: LOG_E("error flag= %d !", flag); break; }} ``` Onenet物联网传输数据 Abstract:该开发板基于RW007 WiFi模块的在RT-Thread studio进行开发,在联网之后,再连接到ONENet,即可将本地传感器信息上传至云端 一、代码软件包的设计与使用 (1)WiFi联网(下载rw007安装包), 该软件包使用rw007是通过SPI协议进行传输,所以在配置项中要使能SPI,并在SPI项目下配置引脚 (2)通过MQTT协议连接onenet(下载onenet软件包) 基于Mqtt协议,软件包中通过板载publish topic,代码如下: ![图片11.png](https://oss-club.rt-thread.org/uploads/20230726/c0d94f5d7ecbe0bcc417ae6920e94935.png) 该函数在我们串口中初始化onenet时即调用 ![图片12.png](https://oss-club.rt-thread.org/uploads/20230726/04a657f6a793632ca2563d77916ef342.png) (3)数据上传 使用板载示例程序中的函数将注册周期上传任务到 MSH,并通过终端指令调用该函数,将数据publish到物联网中对应话题当中 ```c static void onenet_upload_entry(void *parameter) { int value = 0; while (1) { value = rand() % 100; if (onenet_mqtt_upload_digit("temperature", value) < 0) { LOG_E("upload has an error, stop uploading"); break; } else { LOG_D("buffer : {\"temperature\":%d}", value); } rt_thread_delay(rt_tick_from_millisecond(5 * 1000)); } } int onenet_upload_cycle(void) { rt_thread_t tid; tid = rt_thread_create("onenet_send",onenet_upload_entry,RT_NULL,2 * 1024, RT_THREAD_PRIORITY_MAX / 3 - 1,5); if (tid) { rt_thread_startup(tid); } return 0; } MSH_CMD_EXPORT(onenet_upload_cycle, send data to OneNET cloud cycle); ``` 二、指令调用 通过板载的rw7000连接到局域网WiFi,再通过Mqtt协议将板载传感器测量得到的数据传输到物联网,从onenet官网注册设备并接收数据 ![图片13.png](https://oss-club.rt-thread.org/uploads/20230726/6c9f980d8836aaee74218fd95a0748f2.png) 三、物联网可视化显示 在onenet官网注册并创建一个设备和项目,并将设备ID与API key绑定到软件包的配置项中 ![图片14.png](https://oss-club.rt-thread.org/uploads/20230726/ddb283b3e4297c1423592c3c9c73d559.png) 我们在可视化项目中创建新项目,规划文本和图表显示,并通过API绑定数据流进行显示。 ![图片15.png](https://oss-club.rt-thread.org/uploads/20230726/875b40ae6058b9d266b5f692b9463e84.png.webp) 最终效果图 温度低于30度led矩阵为绿色 ![图片16.png](https://oss-club.rt-thread.org/uploads/20230726/0ed85fd13d1d76219f947cb006c8a783.png.webp) 温度介于30度与32度之间led矩阵为蓝色 ![图片17.png](https://oss-club.rt-thread.org/uploads/20230726/46a0ea50c875758cff5e0af9bf6b9881.png.webp) 温度高于32度led矩阵为红色 ![图片18.png](https://oss-club.rt-thread.org/uploads/20230726/8f3fd1b510ccf07c636a3759d3de27d2.png.webp) 物联网温度数据上传效果图 ![图片19.png](https://oss-club.rt-thread.org/uploads/20230726/b1207b2de7a9dfbd555e088923473d66.png.webp) 舵机效果详见答辩演示视频。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
寻梦环游纪
这家伙很懒,什么也没写!
文章
1
回答
0
被采纳
0
关注TA
发私信
相关文章
1
RT-Thread Setings没有BSP_USING_LCD选项?
2
晶联讯19264液晶屏字库,可以读取字母、字符和数字,但是汉字读取显示错误
3
rtt studio裸机例程在调取头文件时编译会报错
4
使用littlevgl2rtt软件包实例运行不成功,emwin正常
5
qemu的LCD可以显示1920*720的分辨率?
6
移植潘多拉板子的lcd驱动到芯片上
7
缺少常用的LCD驱动软件包
8
h750XBH6 LCD rt_malloc 分配内存失败
9
rtthread fsmc驱动LCD代码无错误,且背光显示,但是无现象
10
stm32h743 lcd 驱动出现hardfault 问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
出出啊
1518
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
813
个答案
177
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
5
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部