Advertisement

【RT-Thread作品展示】温湿度监测电路设计方案

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本项目提供了一套基于RT-Thread操作系统的温湿度监测电路设计方案,包括硬件选型、软件架构及代码实现等内容。 【RT-Thread作品秀】温湿度监测设计 作者:Star.Water 概述产生背景: 当前的温湿度监控设备大多只能显示实时环境参数,并不能查看历史记录或曲线图,无法直观地展示温度和湿度的变化情况。因此本次设计旨在开发一款可以同时显示当前数据及历史变化趋势的产品。 实现功能: 仪表盘上会实时更新并显示当前的温度与湿度;此外还提供一个图表界面用于展示过去的数据信息。 硬件环境: 使用ART-Pi平台,搭载RT-Thread操作系统版本为rt-thread-v4.0.2。开发工具采用MDK5.21。 移植了RT-Thread到STM32H50,并设置系统滴答时钟以产生每毫秒一次的中断来驱动RTOS。 #define RT_HEAP_SIZE (1024*40) // 定义堆大小为 40KB #define RT_MAIN_THREAD_STACK_SIZE 1024 // 主线程栈空间大小设为 1K 字节 其他配置沿用默认硬件框架,其中ART-Pi与STM32L4开发板均运行RT-Thread操作系统。通过串口通信实现数据传输。 传感器参数采集由阿里云的stm32L4开发板负责,并将收集到的数据记录写入SD卡中。 屏幕部分采用10*10以内的转接板,参考正点原子和野火的设计方案自行绘制电路图并通过嘉立创打样完成。考虑到显示屏尺寸为 180mm * 100mm ,因此使用了三块小板拼接而成。 软件框架说明: RT-Thread通过系统滴答定时器产生每毫秒一次的中断来驱动;LVGL则利用定时器3实现相同功能。 各个线程资源分配如下:机智云WIFI远程遥控和传感器参数采集在STM32L496板子上完成。 软件模块说明: ART-Pi与STM32L496之间的通信采用了自定义协议,该协议要求包头及尾部均需进行双字节验证以减少传输错误的概率;同时每一帧数据的结尾都会附加16位校验值来确保在受到干扰时仍能正确发送参数。 使用过程中发现RT-Thread中的printf和sprintf函数功能不全,无法支持类似%0.2这样的格式化选项用于指定小数点后的精度。 调试阶段主要依赖于VS2017环境进行LVGL的初步设置,在完成电脑端测试后迅速移植到单片机上运行。 比赛感悟: 一直以来都有计划自己编写一个LVGL项目,但由于白天工作晚上还要照顾孩子而没有足够的时间。借助这次比赛的机会给自己施加了一定压力,并且通过每天加班努力学习掌握了基本操作。 RT-Thread是一款非常容易进行移植的实时操作系统,仅需一个中断即可驱动整个系统运行;同时其软件包也非常实用,在未来的学习过程中一定要加以利用。尽管此次因为时间紧迫仍然使用MDK开发环境并手动移植了RTT,但还是决定以后要多尝试其他工具和方法。 虽然在功能实现方面还有一些设想未能完成,但是会继续努力改进和完善现有设计。 非常感谢RT-Thread提供的参赛机会,在这次比赛中不仅学到了很多知识也更加深入地了解了该操作系统。尽管比赛即将结束但在技术学习的道路上永远不会停下脚步!

全部评论 (0)

还没有任何评论哟~
客服
客服
  • RT-Thread湿
    优质
    本项目提供了一套基于RT-Thread操作系统的温湿度监测电路设计方案,包括硬件选型、软件架构及代码实现等内容。 【RT-Thread作品秀】温湿度监测设计 作者:Star.Water 概述产生背景: 当前的温湿度监控设备大多只能显示实时环境参数,并不能查看历史记录或曲线图,无法直观地展示温度和湿度的变化情况。因此本次设计旨在开发一款可以同时显示当前数据及历史变化趋势的产品。 实现功能: 仪表盘上会实时更新并显示当前的温度与湿度;此外还提供一个图表界面用于展示过去的数据信息。 硬件环境: 使用ART-Pi平台,搭载RT-Thread操作系统版本为rt-thread-v4.0.2。开发工具采用MDK5.21。 移植了RT-Thread到STM32H50,并设置系统滴答时钟以产生每毫秒一次的中断来驱动RTOS。 #define RT_HEAP_SIZE (1024*40) // 定义堆大小为 40KB #define RT_MAIN_THREAD_STACK_SIZE 1024 // 主线程栈空间大小设为 1K 字节 其他配置沿用默认硬件框架,其中ART-Pi与STM32L4开发板均运行RT-Thread操作系统。通过串口通信实现数据传输。 传感器参数采集由阿里云的stm32L4开发板负责,并将收集到的数据记录写入SD卡中。 屏幕部分采用10*10以内的转接板,参考正点原子和野火的设计方案自行绘制电路图并通过嘉立创打样完成。考虑到显示屏尺寸为 180mm * 100mm ,因此使用了三块小板拼接而成。 软件框架说明: RT-Thread通过系统滴答定时器产生每毫秒一次的中断来驱动;LVGL则利用定时器3实现相同功能。 各个线程资源分配如下:机智云WIFI远程遥控和传感器参数采集在STM32L496板子上完成。 软件模块说明: ART-Pi与STM32L496之间的通信采用了自定义协议,该协议要求包头及尾部均需进行双字节验证以减少传输错误的概率;同时每一帧数据的结尾都会附加16位校验值来确保在受到干扰时仍能正确发送参数。 使用过程中发现RT-Thread中的printf和sprintf函数功能不全,无法支持类似%0.2这样的格式化选项用于指定小数点后的精度。 调试阶段主要依赖于VS2017环境进行LVGL的初步设置,在完成电脑端测试后迅速移植到单片机上运行。 比赛感悟: 一直以来都有计划自己编写一个LVGL项目,但由于白天工作晚上还要照顾孩子而没有足够的时间。借助这次比赛的机会给自己施加了一定压力,并且通过每天加班努力学习掌握了基本操作。 RT-Thread是一款非常容易进行移植的实时操作系统,仅需一个中断即可驱动整个系统运行;同时其软件包也非常实用,在未来的学习过程中一定要加以利用。尽管此次因为时间紧迫仍然使用MDK开发环境并手动移植了RTT,但还是决定以后要多尝试其他工具和方法。 虽然在功能实现方面还有一些设想未能完成,但是会继续努力改进和完善现有设计。 非常感谢RT-Thread提供的参赛机会,在这次比赛中不仅学到了很多知识也更加深入地了解了该操作系统。尽管比赛即将结束但在技术学习的道路上永远不会停下脚步!
  • RT-Thread】——智能湿
    优质
    本项目基于RT-Thread操作系统,设计了一款智能温湿度监测电路。该系统能够实时采集环境中的温度和湿度数据,并通过显示屏进行直观显示,为智能家居、气象站等应用场景提供了精准的环境参数监测解决方案。 本段落介绍了一个基于STM32H75XB芯片的温湿度数据采集系统,并通过MQTT协议将数据传输到服务器,在网页端进行显示的同时也在OLED显示器上实时展示当前的时间与温度、湿度信息,可以作为一个智能小显示器使用。 开发环境如下: - 硬件:ARTPi(stm32h750xb) - RT-Thread版本:v4.03 - 开发工具及版本:RT-Thread Studio v1.15 在项目中,我们主要利用了RTOS的线程调度功能来实现不同的工作,并使用I2C框架和Sensor框架等组件。具体来说: - `main.c`文件用于初始化系统并开启各个线程。 - `dht11_sample.c`处理DHT11传感器的相关内容,包括温湿度数据读取及创建相应的线程。 - `MQTT_sample.c`负责通过MQTT协议将采集到的温湿度信息发送至云端服务器。 - `ssd_1306...cpp`用于OLED显示相关功能开发。 在此次比赛中,我不仅接触到了操作系统相关的知识,并且实际应用了RT-Thread系统。起初觉得操作较为复杂,但随着对官方文档的学习和理解逐渐深入后发现其实并不难掌握。此外,在使用RT Studio这一IDE过程中也感到非常方便快捷,能够快速添加所需的功能模块。 感谢电路城提供的这次比赛机会让我有机会学习更多知识,并希望有共同兴趣的人们一起努力向前!
  • RT-Thread】心率试仪
    优质
    本项目旨在设计一款基于RTOS RT-Thread的心率测试仪电路方案,结合硬件与软件优化,实现高效、低功耗的心率监测功能。 本段落概述了基于STM32H750芯片开发的心率测试仪项目。该设备能够测量人的心率,并通过心率传感器采集数据并在屏幕上显示结果。用户可以在家中使用此仪器,无需前往医院进行心率检测,其体积小巧且易于操作。 在硬件方面,该项目采用ART-Pi作为主板并配备了一个心率传感器和HMI串口屏。所使用的RT-Thread版本为4.0.3,并通过RT-Thread Studio与USART HMI开发工具完成项目开发工作。 内核部分使用了调度器来创建多个线程以实现不同功能,而组件方面则包括ADC框架和UART框架:前者用于采集引脚电压值,后者用来向串口屏发送指令显示心电图数据。在硬件层面上,MCU定时读取心率传感器的电压,并通过串口将信息传递给屏幕。 软件架构分为两部分: 第一部分是心率采集,在设备启动后会自动初始化板级外设和ADC采样引脚以开始采集。 第二部分负责展示结果:当系统上电时,HMI屏也会随之开启并等待MCU发送的数据进行更新显示。 在整个项目开发过程中,通过查阅RT-Thread官网文档中心的学习资源,掌握了线程创建、内存管理和定时器等内核组件的应用,并将理论知识与实践相结合。感谢RT-Thread社区中同伴们的积极帮助和支持,让我能够顺利完成该项目。最后要特别感谢主办方提供了这样一个优秀的平台,使我有机会学习到更多关于物联网设备开发的知识和技术,在未来我将继续深入研究并为RT-Thread开源社区贡献自己的力量。
  • RT-Thread】CAN-Monitor-解决
    优质
    本项目是基于RTOS RT-Thread开发的CAN总线监控系统,提供了一套完整的硬件电路设计方案,旨在简化CAN网络的设计与维护。 随着科技的进步,数字仪表在各个领域得到广泛应用,并逐渐取代了传统的机械式仪表。本应用基于ART-Pi开发板并使用RT-Thread操作系统设计而成,专为工程机械行业提供服务。该应用程序通过CAN总线收集发动机及控制器的数据信息,展示包括发动机转速、冷却液温度以及燃油水平等关键参数。 在硬件方面,项目采用了ART-Pi主板加上定制的扩展板和显示屏。软件开发环境使用了RT-Thread Studio 1.1.5版本,并基于模板工程创建了一个BSP(Board Support Package)为1.0.1版本的应用程序。整个系统包括UART设备驱动、CAN设备驱动、I2C设备驱动等组件,还整合了touchgfx库和gt9147软件包来实现图形用户界面。 硬件设计方面,核心是ART-Pi开发板,并集成了SPI闪存(Flash)、SDRAM以及RGB888接口。显示屏通过RGB888接口连接到LCD屏上以显示数据;系统运行时LED会闪烁指示其状态;CAN模块则利用TJA1050 CAN收发器与扩展板相连,以便和其他设备进行通信。 软件架构方面,程序从ADC读取数值并发送转速控制指令给发动机。当外部CAN设备收到这些命令后调整引擎的运转速度,并将此信息反馈回系统;与此同时,它还会传递水温和燃油水平等参数到LCD数据传输模块中,在那里处理完之后再传送给显示界面。 具体来说,软件架构包括ADC采集进程(每100毫秒读取一次电位计AD值)、CAN通信的接收和发送子程序、以及将信息转换成屏幕可见形式的数据处理层。Touchgfx采用MVP模式实现与硬件之间的双向互动:Model提供数据源;View负责展示内容;Presenter则进行逻辑运算。 在演示视频中,左边显示的是一个CAN分析仪用于对比LCD上的数据显示情况,右边是一个串口转CAN的上位机模拟器来发送和接收ART-Pi的数据。整个系统启动后LED开始闪烁,并通过电位计调整档位设置发动机控制指令;同时也能从外部设备获取水温和燃油水平信息显示在屏幕上。 此次参赛让我首次接触到了RT-Thread操作系统,经过一段时间的学习之后逐渐掌握了它的使用方法并了解了其运行机制。借助于文档中心和社区论坛的支持,在项目开发过程中遇到了很多有用的资源和技术指导,这对于初学者来说是非常宝贵的。
  • RT-Thread】OLED显-解决
    优质
    本项目展示了基于RT-Thread操作系统的OLED显示技术应用,并提供了详细的电路设计方案和实现方法。适合嵌入式开发者参考学习。 【RT-Thread作品秀】OLED显示演示 作者:谢博翔 概述:初步体验 RT-Thread 出的 ART-Pi 平台,并使用 U8g2 图形库在 OLED 屏幕上进行开发。 硬件平台:ART-Pi RT-Thread 版本:4.0.3 开发工具及版本:RT-Thread Studio 2.0 软件包使用情况概述: 选用的软件包为 u8g2。U8g2 是一个针对嵌入式设备设计的单色图形库,支持 SSD1305、SSD1306 等控制器,并且 RT-Thread 已经提供了对应的软件包。 选择 U8g2 的原因: 该库平台适应性好,几乎适用于所有开发板;显示控制器兼容性强,市面上大部分 OLED 屏幕都能完美适配;API 函数丰富,支持多种字体和中文显示功能。 硬件框架与软件框架说明: 添加 u8g2 软件包,并修改 I2C 接口配置以及显示内容。完成编译及烧录后运行程序,在监视串口中输入 shell 命令:u8g2_ssd1306_12864_sw_i2c_example。 软件模块说明: 通过修改 I2C 接口参数,定义 RT_USINF_PIN 以实现自定义显示内容的功能。 演示效果视频地址未提供(原链接已省略)。 比赛感悟:多学习、勤思考和积极实践是关键;不应满足于基础操作的掌握,应更多地进行编码练习,并合理安排时间。未来操作系统领域将更加依赖 RTOS 和 Linux,RT-Thread 作为开源项目具有良好的生态系统及实用性,在众多国产实时操作系统中脱颖而出。感谢电路城平台提供的机会和支持,希望今后能够在此平台上分享和学习更多的知识和技术。 加油!
  • RT-Thread】智能
    优质
    本项目基于RTOS RT-Thread开发,旨在设计一款高效智能路灯系统。通过优化电路设计,实现自动调节亮度、远程监控及故障预警等功能,提升城市照明管理水平和能源利用效率。 【RT-Thread作品秀】智能路灯 作者:杨满意 概述: 目前大多数的路灯采用定时功能控制开关灯时间,但四季更替导致日出日落的时间不同,若使用统一时间定时开闭灯,则会造成不必要的电力浪费。通过无线网络和根据日出日落时间来动态调节路灯开关状态的方式可以实现灵活、精准地节能管理。 开发环境: 硬件:art-pi RT-Thread版本:V 4.0.3 开发工具及版本:MDK 5.27 RT-Thread使用情况概述: 内核部分: 调度器,信号量,消息队列。 1. 调度器用于创建多个线程来实现不同的任务; 2. 信号量用来同步不同线程的执行过程; 3. 消息队列则实现了各线程间数据传递的功能。 组件部分:SPI框架、Sensor框架及SAL套接字抽象层。 1. SPI框架被用以驱动温度传感器,提高了代码可重用性; 2. Sensor框架为上层提供统一的操作接口,简化了底层驱动开发的难度; 3.SAL套接字抽象层完成对不同网络协议栈或实现接口的封装,并向开发者提供了标准的BSD Socket API。 软件包部分:Webclient、paho_mqtt、Onenet、cJSON及at_device等。 1. Webclient提供设备与HTTP Server的基本通讯功能; 2.pahomqtt基于Eclipse paho-mqtt源码设计,实现MQTT客户端程序; 3.Onenet使RT-Thread设备能够方便地连接OneNet平台,并完成数据的发送接收、注册控制等功能; 4.cJSON是C语言实现的轻量级解析JSON格式软件包; 5.at_device支持多种AT指令集设备。 硬件框架与软件框架说明: 首先初始化硬件,通过WiFi模块接入路由器并连接到OneNET服务器。根据工作模式(手动或自动)来决定路灯开关状态:如果是手动控制,则接收来自OneNet平台的远程命令;在自动模式下则依据预设地理坐标数据计算日出/落时间,并结合实时钟信息进行判断。 软件模块说明: 1. onenet_mqtt_init_entry负责初始化onenet_mqtt,成功后释放信号量通知其他线程可以开始上传数据; 2.onenet_upload_data_entry通过获取到的信号量和邮箱中的内存地址来发送数据至OneNET云平台及上位机; 3. led_entry从实时时钟读取时间并转换为时间戳,判断工作模式是否需要开关灯。 演示效果代码已在附件中提供。比赛感悟: 陆游曾言:“纸上得来终觉浅,绝知此事要躬行。”此诗句完美地表达了我在此次比赛中获得的收获与体会。 首次接触RT-Thread平台,在此前已熟悉FreeRTOS的情况下,发现两者在多线程调度、信号量管理等方面存在相似之处。值得一提的是rtthread官方生态系统的完善性令人印象深刻,各种插件集成度高,使得开发者能够更加专注于核心功能开发而无需过多关注底层细节。 感谢主办方提供这样一个机会让我接触并学习RT-Thread这一优秀平台,这为未来的项目提供了更多可能性与选择空间。
  • RT-Thread】基于RT-Thread的远程气压控系统的
    优质
    本项目介绍了一种基于RTOS RT-Thread设计的远程气压监控系统电路,实现环境气压数据的实时采集与传输。 【RT-Thread作品秀】基于RT-Thread的远程气压监控系统 作者:靳春幸 概述: 该远程温气压监控系统是使用ART-Pi开发板并基于AP6212模块的WiFi功能进行开发,旨在替代人为采集气压值,并解决在极端环境下的人为风险。 开发环境 硬件: ART-Pi STM32H750 RT-Thread版本:4.0.3 开发工具及版本:RT-Thread Studio 2.0.0 使用情况概述: 内核部分包括调度器,信号量和消息队列。 组件部分包含SAL套接字抽象层、LWIP以及WiFi框架。 软件包部分则有Webclient, pahomqtt, Onenet及cJson。 硬件架构 主控板采用的是ART_Pi。温度传感器使用了兼容IIC和SPI接口的芯片,即LSP22HH,它可以采集温度与气压值,并通过SPI通信方式连接到主控制板上。 WiFi模块则采用了开发版自带的AP6212。 软件架构 该设计基于RT_Thread进行构建,主要包含两个执行线程:Main 线程、Onenet上传线程和LPS22HH 线程。整体框架通过上述组件实现气压数据采集与传输功能。 软件模块说明: - Main线程: 负责初始化WiFi自动连接及Onenet组件的功能,同时启动LED周期性反转。 - Onenet线程:负责定期上报气压值至OneNet平台。 - LPS22HH线程:用于定时获取传感器数据并处理这些信息。 比赛感悟: 非常荣幸能够参加这次大赛,在此期间我使用了官方提供的ART-PI开发板进行了多项实验,包括TouchGFX、sram、fal和easyflash等。RTT平台与硬件设备为我的学习提供了诸多便利,让我受益匪浅。然而由于工作原因未能全心投入比赛,对此感到十分遗憾。 感谢主办方给予的机会!
  • RT-Thread】STM32简易波器
    优质
    本项目为基于STM32微控制器的简易数字示波器硬件与软件设计方案,适用于电子爱好者和工程师学习信号采集处理技术。 【RT-Thread作品秀】基于stm32的简易示波器 作者:詹敏 概述: 本项目是基于STM32F103芯片及自带ADC开发的一款简易示波器,能够实现电压范围为0至3.3V、频率范围从1Hz到10kHz的正弦波和方波显示。该设备提供自动采样模式、普通模式以及单次触发模式,并支持上升沿与下降沿两种触发方式及0~3.3V之间的触发电平设置,适用于常见场合使用需求。 开发环境: 硬件:STM32F103-指南者板卡和一块带有ILI9341显示屏的电路板; RT-Thread版本:v3.0.3 软件工具:MDK 5.26 RT-Thread 使用情况概述: 内核部分使用了调度器、信号量以及消息队列,其中调度器用于创建多个线程以实现不同的功能;通过信号量来同步各线程的执行过程,并利用消息队列进行数据传递。 硬件框架: 该系统采用ADC采集波形发生器产生的模拟信号,经由STM32F103芯片处理后在ILI9341液晶屏上显示出来。核心部分包括了对输入信号的采样、转换以及后续的图形化展示等环节。 软件架构说明: 本项目主要包含四个线程:波形获取(GetWave_thread)、波形绘制(PlotWave_thread)、按键扫描(KeyScan_thread)和设置执行器(Setting_thread)。此外,还有三条消息队列用于不同模块之间的通信协调。通过这种方式可以确保各个组件之间高效协同工作。 软件框架说明: 本项目采用分层设计思想,将整个系统划分为多个独立的功能块,并且每个功能块内部都具有良好的封装性与可扩展能力;同时,在实现过程中充分利用了RT-Thread提供的丰富API接口以简化开发流程、提高代码复用率。例如:线程管理模块主要负责创建和调度各个任务单元(如波形采集器),并通过信号量机制来确保操作间的同步关系。 演示效果: 为了展示项目的实际应用情况,我们录制了一段视频并上传至相关平台。在该视频中详细介绍了系统的各项功能,并通过多个实例展示了其使用场景与性能表现。(注:此处省略了具体链接) 比赛感悟: 此次参赛经历对我而言是一次宝贵的学习机会,在了解到这次活动后虽然起初有些犹豫不决,但最终还是决定参与进来以检验自己所学知识的实际应用能力。尽管由于时间紧迫导致作品存在一些不足之处,但我仍然认为这是一个非常有意义的过程;通过本次项目不仅加深了对RTOS的理解与掌握程度,还增强了动手解决问题的能力和团队协作精神。未来我会继续努力改进和完善自己的设计,并且期待着能够有机会再次参加类似的竞赛活动。 感谢主办方为我们提供了一个宝贵的学习平台以及RT-Thread团队提供的强大技术支持!
  • RT-Thread】写字机器人-
    优质
    本作品为基于RT-Thread操作系统的写字机器人项目,详细介绍其电路设计方案与实现过程,探索嵌入式系统在创意硬件中的应用。 【RT-Thread作品秀】写字机器人作者:乔城阳 概述(说明应用产生的背景、实现功能) 在实际生产线上,由于效率不及打印机,写字机器人的使用并不广泛。然而,在学习阶段它具有很高的价值,因为其结构简单且成本低廉,并能模仿人手写风格。本设计包含了路径规划、直线插补以及加减速控制等常用电机运动算法;软件方面则会涉及DXF文件解析及OpenCV图像处理技术以生成G代码,为后续对激光切割机、雕刻机和3D打印机的研究奠定基础。 开发环境(所采用的软硬件方案) 硬件:ART-PI、Arduino、TM4C123GXL RT-Thread版本: 3.14 开发工具及版本: MDK-ARM5.31, VSCode 内核部分使用了线程调度和资源分配,组件包括DFS文件系统与UART串行异步通信。除此之外还有CAN通信、UDP通信以及cJSON编解码。 硬件框架(概述应用所采用的硬件方案框图,并对核心部分做介绍) 写字机器人设计分为图像处理模块、运动控制模块及G代码生成模块三大部分。 软件框架说明(介绍应用所采用的软件方案框图,流程图等并加以解说) 在该作品中,Grbl控制器基于ATmega328型芯片输出高速精准电机脉冲,并支持各种标准G代码。为保证grbl缓冲区内始终有16-20个指令以实现平稳加速和无冲击转弯动作,ART-PI需读取其状态并及时发送相应命令。 软件模块说明(介绍应用中关键部分的逻辑、采用的实现方式等) RT-thread实时操作系统通过从SD卡上读取NC文件并与grbl控制器通信来控制设备运行。同时它还提供了丰富的人机交互功能,如显示工作路径和进度,并支持暂停续写等功能。 演示效果 此处省略了图片与视频链接。 比赛感悟:在此次比赛中使用到了RT-thread和Grbl两款开源软件,前者用于人机界面及指令发送,后者则负责运动控制。尽管它们仅需2kB RAM即可运行,但功能却十分强大且模块化设计良好。 为了更好地理解这些工具的工作原理,在图书馆借阅了关于RTOS的相关书籍进行学习,但仍有许多内容未能完全掌握,需要继续努力充实自己。 本次项目让我有机会实现对伺服电机的精准控制,并体验到随着指令变化而产生的声音与动作。这不仅加深了我对运动控制系统及其重要性的认识,还带来了极大的成就感和乐趣。