Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
LCD
舵机
星火1号_spark_星火一号_开发板
[RT-Thread x 大学生夏令营]基于星火一号的温度检测与报警散热系统
发布于 2023-07-25 23:59:04 浏览:1216
订阅该版
项目文档 21组 项目名称:基于星火一号的温度检测与报警散热系统 小组成员:纪梓翰,赵柏宇,毕昕鹏,廖弘毅 流程图:  开发板:星火一号  正面  背面 基础逻辑功能的实现 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矩阵灯是否有冲突。 舵机  为了更加形象的模拟系统温度过高后的冷却功能,我们在板子上增加一个舵机外设,通过定时器输出pw波,控制舵机在aht10检测到温度过高时转动吹风来降温。为了不影响板载外设的正常功能,我们打开Stm32CubeMX,寻找空闲引脚PE5,配置成Tim9——CH1输出。 接着,对Timer进行相关配置。  配置完成后生成代码,删除掉不需要的文件夹。  点击rt setting,打开时钟和PWM驱动程序  系统设置完成后,开始编写代码。  窗体底端 为了观察PE5输出的PWM波形,使用逻辑分析仪连接相关引脚后,打开Pulse view软件,观测到波形如下   与代码设置的理想波形几乎一致,因此可以确定,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,代码如下:  该函数在我们串口中初始化onenet时即调用  (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官网注册设备并接收数据  三、物联网可视化显示 在onenet官网注册并创建一个设备和项目,并将设备ID与API key绑定到软件包的配置项中  我们在可视化项目中创建新项目,规划文本和图表显示,并通过API绑定数据流进行显示。  最终效果图 温度低于30度led矩阵为绿色  温度介于30度与32度之间led矩阵为蓝色  温度高于32度led矩阵为红色  物联网温度数据上传效果图  舵机效果详见答辩演示视频。
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
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
FAL
RTC
rt-smart
I2C_IIC
cubemx
UART
ESP8266
WIZnet_W5500
BSP
ota在线升级
PWM
flash
packages_软件包
freemodbus
潘多拉开发板_Pandora
ADC
GD32
定时器
编译报错
flashDB
keil_MDK
socket
中断
rt_mq_消息队列_msg_queue
Debug
ulog
SFUD
msh
C++_cpp
at_device
本月问答贡献
出出啊
1524
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
821
个答案
179
次被采纳
crystal266
555
个答案
162
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
Pai同学
7
篇文章
10
次点赞
RTT_逍遥
2
篇文章
8
次点赞
Rick98
1
篇文章
2
次点赞
河南理工大学恁带劲儿
1
篇文章
2
次点赞
加缪
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部