Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
gpio中断
模拟IIC_I2C
RT-Thread全球嵌入式电子设计大赛+星火一号+温控
发布于 2024-09-17 16:17:07 浏览:224
订阅该版
首先感觉RT-Thread论坛,RT-Thread可以为嵌入式系统开发者和学生,通过实际项目展示他们在物联网、智能设备等领域创新和技术实力的平台。也感谢给与我机会参加大赛的机会。 下面我正式开始我的温控功能解说: 目录: 一、环境平台 二、星火一号介绍 三、功能介绍 四、传感器介绍与配置 五、功能演示 六、总结 **一、环境平台** 安装RT_Thread我就省略了,因为这个安装非常的简单,我就把安装SDK的步骤介绍一下。 因为是开源,这个是软件下载地址,需要的请查收。 https://download-sh-telecom.rt-thread.org:9153/download/studio/RT-Thread%20Studio_2.2.8-setup-x86_64_202405200930.exe 文件--新建--RT_Thread项目 ![screenshot_1726557515789.jpg](https://oss-club.rt-thread.org/uploads/20240917/14f35696926761a325afdfa7f4c46e48.jpg) 基于开发板--开发板--然后找到对应的星火一号的开发板SDK等待安装完成就可以了。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240917/b15dffc480064ca9bee1c147e542d421.png) 选择STM32F407-RT-SPARK下拉菜单,然后勾选1.2,再点安装资源包,就可以出现我下图界面。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240917/2430f1c75279512cdf74c7e4ebe86aea.png.webp) 然后就可以找到对应的示例进行功能验证和软件代码的编写了。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240917/59290afe0078c8bfae929d29c7e73951.png) **二、星火一号介绍** 星火一号相关资料地址: 星火一号(https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/hw-board/spark-1/spark-1); RT-Spark 开源网站:https://rt-thread-board.gitee.io/stm32f407-spark 资料链接: 百度网盘:https://pan.baidu.com/s/10Toony2CCGN82_hoX5y5PA?pwd=xh1h 提取码:xh1h SDK github:https://github.com/RT-Thread-Studio/sdk-bsp-stm32f407-spark SDK gitee:https://gitee.com/RT-Thread-Studio-Mirror/sdk-bsp-stm32f407-spark 下面我贴出一下原理图: [SCH_Spark-1_V1_0.pdf](https://club.rt-thread.org/file_download/0b57c65e935ba2fb) 按键: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240917/079e7ebcaf8fce15e8865e55821cfc14.png) 蜂鸣器: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240917/e8aed7a0b2c87781a89d8b3f24f9f74d.png) WS2812灯: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240917/7bbe1595c7c6dc1f5e50a4eea009f4d8.png.webp) LCD屏: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240917/f56859816ca03685000ae9c5f5678806.png.webp) LED/温度传感器: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240917/6d3ed0fdd2422ad7d78f448060dd7b7f.png) 板载资源: 复位按键、轻触按键 X4、自锁开关 蜂鸣器 LR1220 RTC 后备电池座 ST-Link USB-FS 麦克风、4 极耳机 SD 卡座 8MB NorFlash 红外发射、红外接收 ICM20608 六轴传感器、AP3216 接近传感器、AHT20 温湿度传感器 RW007 WIFI 240x240 并行 LCD 支持背光调节 19 灯等距全彩 LED 全彩 LED 外接 3.3V 电源扩展、5V 电源扩展 扩展接口: RS485 接口 CAN 接口 40Pin 树莓派标准扩展无冲撞 IO Spark-10Pin 创意堆叠平台 PMOD 接口 x2 支持的 IDE:RT-Thread Studio、MDK。 **三、功能介绍** 温控系统的基本原理是通过传感器对环境温度进行监测,再根据设定的温度值和实际温度值之间的差距来控制加热或降温设备的运行,从而使环境温度保持在合适的范围内。 涉及传感器、407MCU控制器和IO口控制(这里手动模拟)三个基本部分: 传感器:负责测量温度,并将其转换为电信号输出给控制器。常用的温度传感器包括热电偶、热敏电阻和红外线传感器等。星火一号是利用板载传感器AHT21作为温控检测。 控制器:根据传感器测得的温度值与设定值之间的差距来生成控制信号。控制器是温控系统的核心部分,常用的有PID控制器、模糊控制器和神经网络控制器等。 执行器:根据控制信号控制加热或降温设备的开关状态,以调节环境温度。常用的执行器包括继电器、晶体管和可控硅等。这里我使用手来模拟了一下加热装置,原计划是使用MOS管驱动电阻作为加温装置的,没来的及焊接,少了几个器件,就用手来模拟了一下。 这个是显示界面: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240917/3fc2934d57a7dffd4eba634372890d3a.png.webp) LCD显示屏: 除了显示温度外,LCD显示屏还用于显示LOGO或其他图形信息。 WS2812: 用于工作照明模拟。 AHT21: 温湿度采集。 GPIO: 模块加温工作(LED指示)。 蜂鸣器: 实现加温报警。 **四、传感器介绍与配置** 首先是打开设计,找到传感器,--配置--。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240917/8de1b666aa16e47bf46c73dbb0e83ed4.png.webp) 使能传感器,IIC3. ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240917/974ffb0bceef55237c53cdc872a9add8.png.webp) 然后AHT21就可以实现通信功能了。 AHT21引脚定义: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240917/440ae75342d0df860d0c225655a01f10.png.webp) 规格书: [AHT21.pdf](https://club.rt-thread.org/file_download/5ce8dba2cf8f8b50) ```c 核心代码: rt_thread_mdelay(50); lcd_clear(WHITE); /* show RT-Thread logo */ lcd_show_image(0, 30, 240, 69, image_rttlogo); lcd_show_string(15, 80 + 16 + 24, 32, "STM32F407ZGT6"); lcd_show_string(15, 140 + 16 + 24, 32, "Starfire No.1"); /* set the background color and foreground color */ key_pin(); led_pin(); //rt_thread_mdelay(100); // rt_wlan_connect(ssid, key); /* 等待传感器正常工作 */ rt_thread_mdelay(2000); lcd_set_color(WHITE, BLACK); lcd_clear(WHITE); aht10_device_t dev; /* 总线名称 */ const char *i2c_bus_name = "i2c3"; /* 初始化 aht10 */ dev = aht10_init(i2c_bus_name); if (dev == RT_NULL) { LOG_E(" The sensor initializes failure"); return 0; } while(1) { lcd_show_image(0, 0, 240, 69, image_rttlogo); humidity = aht10_read_humidity(dev); temperature = aht10_read_temperature(dev); /* show some string on lcd */ lcd_show_string(40, 100+50, 32, "TEMP: %d.%d",(int)temperature, (int)(temperature * 10) % 10); lcd_show_string(40, 155 + 48, 32, "HUMI: %d.%d %", (int)humidity, (int)(humidity * 10) % 10); lcd_show_string(210-5+1, 145, 24, "o"); lcd_show_string(215-10+8+8,150, 32,"C"); lcd_show_string(30, 90, 32, "Temperature"); lcd_show_image(15,155 + 48, 24, 32, gImage_water); lcd_show_image(18,145 , 15, 36, gImage_temp); ``` 功能框图: ![screenshot_1726622020738.jpg](https://oss-club.rt-thread.org/uploads/20240918/770dd698afdc546a2b2a1b33c5a9e0fb.jpg) **五、功能演示** https://www.bilibili.com/video/BV1LotheVEQY/ **六、总结** 温控系统通过传感器AHT21监测环境温度,将温度数据转换为电信号送至407MCU控制器。控制器根据预设温度与实际温度的差异,智能生成控制信号,驱动执行器(本例中为手动模拟的加热装置)来调节环境温度,确保环境维持在适宜范围。LCD显示屏不仅实时显示温度,还展示LOGO与图形信息,增强用户体验。WS2812提供工作照明模拟,AHT21负责温湿度精准采集,GPIO通过LED指示加温工作状态,蜂鸣器则在必要时发出加温报警,确保系统安全运行。整个系统集成了传感、控制、显示与报警功能,展现了现代温控技术的智能化与高效性。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
meiyao
这家伙很懒,什么也没写!
文章
5
回答
0
被采纳
0
关注TA
发私信
相关文章
1
模拟IIC中 SCL 延时的问题
2
在RTT中增加IIC设备
3
rt-thread ov2640 模拟iic 初始化失败
4
模拟I2C使用,线程调度貌似有问题
5
RTT studio打开软件IIC加载不出来drive_iic.c文件
6
使用max30102软件包时出现线程断言错误
7
F407zgoled编译报错
8
stm32F103核心板使用IIC出现的问题
9
rt_thread IICunlock问题
10
使用sensor_lsm6dsm时,出现了传感器可以注册成功却无法读数的问题
推荐文章
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总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
cubemx
PWM
flash
packages_软件包
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
出出啊
1516
个答案
342
次被采纳
小小李sunny
1440
个答案
289
次被采纳
张世争
799
个答案
171
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
1
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
4
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部