Advertisement

RT-Thread作品秀 分布式温度监控系统-电路方案

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


简介:
分布式温度监控系统以STM32系列芯片为基础开发,能够采集多达六个分节点的温度数据。网关节点通过WIFI连接云端实时监视环境温度,同时支持本地串口与PC端的数据交互,实现上位机对分节点温度信息的实时显示。该系统适用于家庭、办公室及教室等小型场所的多点温度监测,无线传输距离可达100米至500米,并具备低功耗、低丢包率和远距离传输等特点,为实用设计提供了可靠的技术保障。 开发环境硬件配置包括STM32F407ATK-Explorer。扩展板选用DS18B20数字温度传感器、NRF24L01无线射频模块及ESP8266 WIFI模块等组件。RT-Thread运行于版本4.0.3,开发工具为MDK 5.27。系统内核采用多线程调度机制,并通过信号量实现资源同步,同时依赖消息队列来保证数据传输的高效性。 在组件部分中,SPI框架负责温度传感器的驱动控制,上层代码可提升代码的重用性;Sensor框架为上层提供统一的操作接口,简化底层开发流程。SAL套接字抽象层通过标准化BSD Socket API实现对不同网络协议栈的支持,从而提高系统的兼容性和开发效率。 软件包功能方面,Web client提供了设备与HTTP服务器之间的通信基础。Pahomqtt基于Eclipse Paho-mqtt源码设计的 MQTT客户端程序,并为本项目进行了适配优化。Onenet是针对OneNET平台开发的应用层适配程序,支持设备在RT-Thread环境下完成数据发送接收及连接控制等功能。cJSON则采用C语言实现了一种简洁高效的JSON解析工具包。at_device组件提供了针对多种AT设备移植的文件和示例代码,目前支持ESP8266、M26、MC20等设备。NRF24L01软件包为该无线模块提供了驱动支持。 在系统架构设计中,发送节点采用3个线程及消息队列机制实现温度数据的定时传输:read_temp_entry用于周期性读取传感器值并入队;nrf24l01_send_entry接收传感器检测到的温度信息并通过NRF24L01发送至接收节点;led_shine_entry则每隔一定时间改变系统状态以反映运行状况。接收节点通过6个线程及信号量机制实现数据处理:nrf24l01_receive_entry负责正确接收到数据后触发事件并将其存入ring buffer,同时申请内存池存储数据;save_recv_p0_data_entry、save_recv_p1_data_entry等子线程分别对接收节点发送的各类型数据进行保存操作。

全部评论 (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展示】基于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】智能环境测的物联网云平台设计
    优质
    本项目展示了一种基于RT-Thread操作系统的智能环境监测物联网云平台电路设计,实现数据采集、处理与云端传输。 【RT-Thread作品秀】基于物联网云平台的智能环境监测设计 作者:赵帅 **概述** 该系统采用STM32H7系列芯片开发,通过光照传感器(BH1750)与温湿度传感器(DHT11)采集环境中的光照、温度和湿度数据,并利用WIFI将这些数据实时上传至物联网云平台。用户可以通过PC端软件监控这些环境参数的变化。该系统适用于家庭、办公室或教室等场所的环境监测,具有高实时性、低功耗及低丢包率等特点。 **开发环境** - **下位机** - 硬件: STM32F407-atk-explorer扩展板 - 扩展传感器:DHT11温湿度传感器, BH1750光照强度传感器,AP6212 WIFI模块 - RT-Thread版本: V4.0.3 - 开发工具及版本: RT-Sudio **上位机** - Qt 版本: 5 - 开发工具: Qt Creator 4.11.0 **RT-Thread使用情况概述** 内核部分包括调度器、信号量和事件集。通过创建多个线程实现不同的任务,利用信号量来同步这些线程,并用事件集通知数据采集完成。 组件方面涉及IIC框架、Sensor框架以及SAL套接字抽象层。 软件包主要包括cJSON(用于解析 JSON 格式)、Onenet(针对 OneNET 平台的适配)、pahomqtt (MQTT 客户端)和Webclient(提供设备与 HTTP Server 的通讯功能)。 **硬件框架** 该系统使用STM32H7作为主控,通过外接DHT11传感器、BH1750光照强度传感器采集环境数据。AP6212 WIFI模块用于联网及云平台的连接。 **软件框架说明** 下位机流程图与上位机流程图详细描述了整个系统的运行机制。 - **下位机** - 数据通过MQTT协议上传至OneNet,初始化完成后释放信号量通知数据发送线程启动 - 温湿度和光照强度的数据采集分别由独立的线程完成,并将结果发布给其他组件 - **上位机** - 使用QNetworkAccessManager类实现HTTP请求以获取云平台上的环境监测数据。 - JSON解析器用于从接收到的数据中提取温湿度及光线信息,然后更新用户界面。 通过定时器定期发送GET请求来确保显示的数值能实时反映当前状况。
  • 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展示】STM32F407结合RT-Thread的智能水培设计
    优质
    本项目介绍基于STM32F407微控制器和RT-Thread操作系统开发的智能水培系统,涵盖硬件电路与软件架构的设计思路。 【RT-Thread作品秀】基于STM32F407与RT-thread的智能水培系统 本产品面向城市家用市场,在现代家庭园艺领域具有广泛应用。随着生活水平提升和对绿色健康生活方式的关注增加,越来越多的人开始关注家庭园艺,并希望通过在家种植花卉、多肉植物或蔬菜来享受这一过程,尤其是在疫情期间出行不便的情况下,更多人倾向于尝试在家中进行种植以收获纯天然无污染的蔬菜。 我们设计的一款智能水培机是物联网终端设备。通过云平台辅助降低家用水培门槛,兼顾灵活性和自动化特点,并提供方便省时的方式让用户体验家庭水培的乐趣。用户可以通过APP端一键自动完成植物种植并全程监测,同时支持硬件按钮或APP手动控制设备操作以探索个人化的种植习惯与方式;此外还能够利用云平台存储及分享自己的种植规程数据。 开发环境 - 硬件:STM32F407ZGT6; - RT-Thread版本:RTT Nano; - 开发工具及版本: KEIL 5. 在本项目中,采用RT-thread nano版组件将各任务(如传感器读取、LORA通信、WIFI模块与云平台交互等)封装成独立线程。使用事件集和信号量实现这些线程间的同步协调以及信息传递功能。 硬件框架 - 主控芯片:STM32F407ZGT6,基于HAL库编写程序,并搭载RT-thread nano操作系统; - 传感器层包括水温监测(DS18B20)、空气温度湿度检测(DHT11)、EC值及pH值测量、光敏模块和浊度计等; - 控制部分涉及光照控制(LED灯带),加湿与打氧操作,以及营养液处理; 通信方面则通过ESP8266-01模块结合MQTT协议实现设备端向云端上传传感器数据及接收来自APP的指令。
  • RT-Thread展示】- RT-Thread驱动的485数据采集设计
    优质
    本项目展示了基于RT-Thread操作系统的485数据采集系统电路设计方案,详细介绍硬件选型、电路布局及软件开发过程。 【基于RT-Thread的485数据采集系统】作者:刘迪 概述:该系统采用STM32H75XB芯片开发,能够连接多个485传感器,并在此项目中仅收集了一个温湿度传感器的数据。通过MQTT协议将这些数据发送到服务器端,并在手机APP上以折线图的形式展示。 硬件设备及软件环境: - 硬件平台:ARTPi(stm32h750xb) - RT-Thread版本:v4.03 - 开发工具及其版本号:RT-Thread Studio v1.15 使用情况概述: 内核部分采用了信号量机制,调度器则通过创建多个线程来执行不同的任务。此外还利用了RT-Thread的SPI框架和Sensor框架。 软件模块说明: 在main.c文件中的serial_thread_entry()函数中实现传感器数据采集,并将获取的数据存储到数组中。 connect_mqtt.c 文件里的mqtt_emqx_entry() 函数用于向服务器发送收集来的数据。 演示效果:该系统能够成功地通过手机APP展示从温湿度传感器得到的折线图数据。 比赛感悟:一开始感觉很困难,但经过一段时间的研究和实践后发现其实并不难。关键在于多思考、多动手操作即可实现预期的功能。
  • 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开源社区贡献自己的力量。