线程测试练习jar包 java -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.port=10086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar thread-test.jar 1
2022-04-19 13:00:51 2KB jar java
1
【RT-Thread作品秀】家用燃气泄露告警系统作者:lmkkss 概述每年天燃气、煤气、沼气等泄露引起的火灾、爆炸、煤气中毒等安全事故常有发生,而这些东西跟我们的生活息息相关,不可或缺。这些东西就成了离我们最近的易爆炸物,一旦发生泄露,很容易发生煤气中毒,火灾,爆炸等事故。这些事故场景在电视上时有报道,其惨烈程度,触目惊心。设计这个作品正是为了预防此类事故的发生,基于-Thread平台,使用ART-PI开发板,搭配燃气检测传感器和L610网络单元,实现燃气浓度的采集与泄漏告警预警。 开发环境硬件::ART-PI(STM32H750XB),广和通L610-CN-00-MiniPCIe-10,警示灯,蜂鸣器,风扇,可燃气传感器,18650电池及充放电模组, RT-Thread版本:RT-Thread V 4.0.3 开发工具及版本:RT-Thread Studio V1.0.2 RT-Thread使用情况概述调度器,信号量,UART,WebNet, PIN 硬件框架方案图 家用燃气泄露告警系统方案如下图所示,主要由两部分组成,一部分是是家庭燃气告警系统,另一部分是由网络云平台,通知用户家庭燃气发生泄露。 家庭燃气告警系统由ART-PI搭配燃气传感器,蜂鸣器,警示灯,及L610联网系统组成,负责家庭本地端的燃气信息的采集,预警及发生泄露时换气,防止爆炸中毒。另一部分由云网络,将危险信息发给用户,提示用户及时关闭燃气,防止危险发生。 软件框架说明方案框架由5部分组成,分别为网络模块,主控单元,控制单元,采集模块及供电系统组成,供电系统为提供所有模块的驱动电能,主控单元从采集模块中获取燃气浓度,根据浓度值通过控制单元和网络模块保障用气安全. 系统开机后,依次初始化所有模块,由RT-Thread系统调度驱动所有模块. 软件模块说明系统在检测有燃气泄漏时,通过蜂鸣器提示用户,燃气发生了泄漏,当空间浓度超过一定阈值后,上报云平台,通过网络提示用户注意燃气泄漏情况,如果浓度继续升高,超过一定阈值,打开排气扇,将泄漏的可燃气抽出去,稀释浓度,降低爆炸,燃气中毒风险. 演示效果比赛感悟非常荣幸能参加这次比赛,这是一次很难得的学习物联网的机会,虽然在传统嵌入式行业深耕多年,但是很少接触到这个物联网,这也是一次很难得的尝试,之前虽然写过很多代码,也写过简易的调度操作系统,当我看RT-thread系统代码,还是被RT-thread的系统很多做法叹服,我这次虽然比赛的项目并不复杂,但是由于工作原因,没有抽出很多时间做这个,所以很惭愧.后续会继续完善,慢慢把更多的产品融入RT-Thread平台,和物联网相结合,也衷心希望RT-Thread能越来越好。
1
概述 随着科技的发展,数字仪表的应用越来越广泛,逐渐替代传统型机械仪表。本应用就是基于ART-Pi开发板,使用RT-Thread系统设计开发的,面向工程机械行业的数字仪表。本应用通过CAN总线采集发动机和控制器参数,将发动机转速、冷却液温度、燃油液位等参数直观的显示出来。 开发环境硬件:ART-Pi+自制扩展板+自制屏幕 RT-Thread版本:4.0.3 开发工具及版本:RT-Thread Studio 1.1.5 RT-Thread使用情况概述程序基于ART-Pi开发板模板工程创建,BSP版本为1.0.1,RT-Thread版本为4.0.3。 程序中使用的组件包括UART设备驱动、CAN设备驱动、I2C设备驱动、PIN设备驱动、ADC设备驱动等,使用touchgfx库和gt9147软件包,其中对touchgfx库文件和gt9147软件包根据硬件资源进行适当修改。硬件方面使用了GPIO、UART、I2C、SDRAM、LCD、FDCAN、ADC等。 硬件框架 硬件结构框图如上图所示,核心板为ART-Pi开发板,板载SPI flash,SDRAM和RGB888接口。RGB888接口与LCD显示屏连接,用于显示数据;LED指示系统运行状态,系统运行后,LED以2Hz频率闪烁;CAN模块通过扩展板与ART-Pi连接,使用TJA1050 CAN收发器,与其它CAN设备进行数据交互;ART-Pi接收CAN模块数据,并传输给LCD,同时根据当前档位,发送转速控制数据,控制发动机转速。(程序中所有CAN数据帧均为模拟ID,与实际ID不同) 软件框架说明系统读取ADC数值,根据ADC数值发送转速控制数据,外部CAN设备接收到转速控制数据后,控制发动机转速,并将转速发出,系统接收外部CAN设备发送转速、水温、油位等数据,与ADC档位一起传输到LCD数据传输模块,LCD数据传输模块将档位、转速、水温、油位数据传输到LCD显示模块,将数据显示到屏幕上。 软件模块说明ADC模块:adc_thread_entry为ADC模块采集进程,间隔100ms采集电位计AD值。 CAN处理模块:CAN处理模块分为接收模块和发送模块。can_rx_thread为CAN接收进程,接收发动机转速、燃油液位和水温数据。can_tx_thread为CAN发送进程,根据ADC模块采集电位计AD值转换成的档位,向外发送控制转速。 LCD数据处理模块:LCD数据处理模块使用信号队列向LCD发送档位、转速、水温、燃油液位数据。LCD数据处理模块作为ART-Pi硬件与LCD显示之间的一个桥梁,将ART-Pi数据传输给touchgfx的model,实现硬件与touchgfx数据交互。 LCD显示模块: Touchgfx使用MVP架构实现和硬件的双向交互。如下图所示,Model提供数据,View负责显示,Presenter负责逻辑的处理。 程序中,在Model模块的Model::tick函数中接收消息队列数据,当当前显示页面为仪表盘页面时,将数据变化传输到Presenter,再将数据发送给View将数据显示处理。 界面进入仪表显示界面后,会将页面更新通知到Model,使Model中的数据更新有效,使页面在进入仪表盘页面时转速、水温、油位等数据及时更新。 演示效果视频: 视频内容说明:视频中左侧为CAN分析仪,主要用于数据对比显示,对比显LCD显示数据和CAN数据差异;右下角为串口转CAN上位机(下称上位机),用于与ART-Pi进行CAN数据交互,模拟CAN控制器。ART-Pi上面背有一个扩展板,使用一个系统运行指示LED,一个电位计和一路CAN。系统启动后,LED开始闪烁。电位计用于调整档位,ART-Pi根据档位发送转速控制帧数据,上位机接收到ART-Pi发送转速后,按设定转速发出转速;同时上位机可以发出水温和油位数据显示到LCD屏幕上。上位机无数据发出后3秒,仪表数据清零,指针复位。 比赛感悟本次比赛是我第一次接触RT-Thread系统,通过近一段时间学习,逐渐掌握了一些RT-Thread系统的工作方式,了解其运行机制。通过RT-Thread Studio进行简单的配置,即可让系统运行起来,减少了很多系统方面的设置,对初学者比较容易上手。 网站的文档中心就是一个学习的宝库,里面涉及内容广泛、详细,并配有详细的示例说明,初学者基本可以只通过文档就可以把单片机基本外设功能实现,对初学者学习能起到很大的作用。社区论坛有大量的开发者在使用中提出的问题,通过问题检索,方便查找自己在学习中遇到的问题,同时官方提供的讨论群非常活跃,回答问题及时,大大的赞。RT-Thread提供了各类最新、最流行的软件包,可以很方便的添加到工程中,对项目快速开发提供了很大的帮助。 最后感谢主办方、承办方、赞助商提供了
2022-04-16 09:21:51 2.84MB rt-thread 电路设计方案 电路方案
1
【RT-Thread 作品秀】基于RT-Thread的网络照相机作者:吴顶顶 概述随着科技的进步和互联网的发展,基于物联网的可拍照设备也越来越多的融入到人们的生活中来,例如在超市中,管理者利用拍照设备定时抓取货架照片,分析货物状态,并补充、优化货物摆放;在酒吧里,管理者会利用拍照设备定时抓拍酒架照片,传送到网络平台供大众浏览,以招揽更多顾客。本网络照相机基于STM32H7+RTThread平台,采集摄像头数据,并通过无线网络传送到服务器,提供SD卡配网、手动拍摄、定时拍摄、照片推送等功能,并提供windows上位机提供控制和照片显示功能。 主要功能有: 格式化sd卡:格式化sd卡,但是会保留网络配置文件,其他文件全部删除 设备重启:重启设备 实时拍照:发送指令给照相机,照相机拍照,并把照片回传 定时拍照:照相机依据下发的拍照时间,在时间到达时拍摄一张照片,并传给服务器 按键拍照:点击板上用户按钮,拍摄一张照片,并传给服务器 定时任务:可以新建/删除/查询定时拍照任务,任务存储在sd卡中,重启有效 开发环境硬件:ART-PI(STM32H750主控)+ OV2640模组 RT-Thread版本:4.0.3 SDK 版本:1.0.1 开发工具及版本:RT-Thread Studio 1.1.5, Qt5.14.0 RT-Thread使用情况概述内核部分:调度器,信号量,互斥锁,内存管理 调度器:多任务调度 信号量:用于唤醒对应任务 互斥锁:用于互斥资源独占访问 内存管理:动态内存申请与释放 组件部分:虚拟文件系统,IPC,I2C,RTC,NTP 虚拟文件系统:文件操作,sd卡、照片文件 IPC:mqtt发送数据需要 I2C:配置摄像头模块需要 RTC和NTP:同步时间 软件包部分:paho mqtt,cJSON,netutils pahomqtt:用于和服务器通信 cJSON:解析、封装mqtt消息 netutils:NTP网络对时 其他:base64 用于将图片文件转换成字符串,便于mqtt传输 硬件框架总体的硬件框架如下图所示: 本网络摄像机硬件结果较为简单,即art-pi连接一个摄像头模组,art-pi板上用到了AP6212无线模块,外部内存,led指示灯,和sd卡。其中,摄像头模块用于采集图像信号;AP6212用于和服务器进行通信;因一张图像数据量较大,片内内存不够,故而使用外部内存;led灯用于指示设备工作状态;sd卡用于保存网络、服务器、和定时任务配置。 软件框架说明整体的软件框架如下图所示,网络照相机内部有一个proxy线程,负责和云端进行通信,在接收到云端消息后会解析,并分发到其他的线程执行,然后将执行结果返回到云端;照相机发生了其他的事件,例如用户按键拍照,也会将数据传给proxy线程,proxy线程再将数据发送到云端。用户通过上位机终端软件连接上云服务器,实现与照相机的通信及控制。 整个系统支持接入多个照相机,如下图所示,不同的照相机通过sd卡配置文件中sn进行区分,上位机软件可以显示所有在线的照相机,但同一时间只支持操作一个。 软件模块说明1. 用户线程创建流程如下图所示为用户线程创建流程 用户线程作用描述如下: main:用于创建sd_card 线程,检测按键事件,闪灯; sd_card:用于管理与sd卡相关的工作,包括拍照,网络配置,定时任务; network:负责联网,根据sd卡的配置文件连接到指定的wifi网络; proxy:负责启动mqtt,并管理与云端的通信,其他线程都需要通过proxy线程与云端交互数据; event:定时任务和按键任务,在定时时间到达时,或者用户按键时拍摄照片并通过proxy上传云端。 2. 通信接口及流程2.1 MQTT订阅主题设备向服务器订阅主题: /ter/query/discovery,用于接收设备发现消息 /ter/sn/request,用于接收针对该设备的指令,其中sn为设备的SN号,下同 客户端向服务器订阅主题: /dev/response/discovery,用于接收设备发现回复 /dev/response/will,用于接收设备遗嘱消息 /dev/sn/response,用于接收设备操作指令回复 /dev/sn/event,用于接收设备的通知 2.2 设备发现所有的设备均订阅/ter/query/discovery主题,客户端向该主题发布发现消息,所有收到消息的设备向/dev/response/discovery回复一条消息,而客户端又订阅了/dev/response/discovery主题,故而便可以知道哪些设备在线了。 设备连上服务器的时候,会定义一个遗嘱消息,主题为/dev/sn/will,客户端订阅了该主题,当设备因为某些原因掉线,则超过一定时间之后,
2022-04-15 22:59:07 1.93MB 智能家居 单片机 物联网 rt-thread
1
LittlevGL2RTT LittlevGL2RTT 是在RTThread3.0版本以上做的LittlevGL中间框架层, 目的是无缝嵌入RTT的LCD框架, 无需开发者去移植. 如果您觉得该库看得顺眼舒服,请捐赠颗小星星. 小星星就是更新的动力!!! 感谢LittlevGL作者的开源GUI库. 原库请移步到 . 1. 效果图 2. 安装LittlevGL2RTT 目前littlevgl2rtt库已经添加到rtt官方pkgs包中, 可以直接在menuconfig在线包中直接使能. 在env中运行menuconfig. 进入RT-Thread online packages -> system packages目录. 开启LittlevGL2RTT, 选择version为lateset最新版本, 配置分辨率为你的显示屏分辨率, 然后开启demo并保存退出menuconfig. 执行pkgs
2022-04-14 12:06:11 1.37MB env rt-thread littlevgl C
1
在WPF界面上,通过Halcon演示了两个线程(图像采集,然后处理),并使用信号及互斥器同步线程。
2022-04-12 17:26:00 707KB halcon Thread WPF
1
RT-Thread X STM32 全连接大赛 智能甲醛检测仪 作者: 乔季军 开发环境:RT-Thread Studio 硬件框架:基于RT-Thread 提供的ART-PI 开发板实现,详细硬件请参考项目设计文档 【RT-Thread作品秀】智能甲醛检测仪作者:乔季军 概述家里房子装修完已经快一年了,装修完一直保持着通风,最近回家住的比较频繁,每次回去住总还是觉得比较别扭,总担心屋里的甲醛会不会还是超标,自己总想着搞一个甲醛检测仪的装置来放到屋里,这样就能够实时查看到屋里面的甲醛浓度了。调研了一番,发现市面上的比较便宜的甲醛检测装置基本都不准确,于是乎自己便开始搜寻相关传感器,寻思着能否自己DIY一个甲醛检测装置,在给自己寻找乐子的同时,也能够做一个使用的物件。 通过调研发现,目前市面上检测甲醛的传感器主要分为两类,一类是半导体式,另一类是电化学式。半导体式甲醛传感器主要是根据甲醛散发到周围空气中,导致周围空气的导电率发生变化来感知甲醛浓度的,这一类传感器主要是根据导电率的特性来检测甲醛的,很容易收到其他环境因素的影响,例如周围湿度的变化也会导致空气的导电率发生改变,因此使用这种传感器测得甲醛浓度就没有太大的参考意义了,另外一种是电化学式传感器, 这种传感器上面有一层滤膜,用来过滤空气中的其他干扰杂质,传感器中包含有一种能够和甲醛发生反应的催化剂,当催化剂和甲醛接触时,就会形成电信号的波动,电信号的波动和甲醛浓度值的变化有一定的关系,因此使用这种传感器检测的甲醛浓度相对来讲会更准确一些。 笔者在调研完之后,选择了英国达特公司设计生产的WZ-S-K 型电化学式甲醛检测传感器,用用来检测甲醛浓度值,此外,还使用到了DHT11 温湿度传感器,用于检测周围环境的温湿度信息。 该智能甲醛检测仪主要实现甲醛检测及温湿度检测功能,检测到的数据通过LCD显示屏实时的显示出来,同时还能够将传感器数据上传到ONENET物联网平台,用来记录历史传感器数据,同时也能够利用这些数据信息和其他设备联动。 开发环境硬件:ART-PI、DHT11温湿度传感器、达特WZ-S-K型甲醛传感器 RT-Thread版本:4.0.3 开发工具及版本:RT-Thread Studio 2.0.0 甲醛传感器介绍WZ-S-K 型甲醛检测传感器模组是英国达特公司设计的一款基于电化学的甲醛检测传感器,具有测量精度高、响应速度快、使用寿命长、功耗低等特点。该传感器能够直接将周围环境中的甲醛含量转换为浓度值,通过串口标准化输出,这款甲醛检测传感器能够非常方便的集成到产品中去,适用于智能家居、便携式测量仪表等产品。 RT-Thread使用情况概述使用 RT-Thread 开发物联网应用的优势已经非常明显了,借助于RT-Thread 软件包生态,开发者只需要关系自己的应用逻辑即可。 该项目使用到许多RT-Thread 的软件包,具体请参考以下截图。 演示视频: 比赛感悟这次比赛,我使用RT-Thread 从头到尾设计了一款基本满足正常使用的甲醛检测设备。整体下来,觉得使用RT-Thread 物联网操作系统进行应用开发还是非常便捷的,借助于软件生态,可以大大缩短开发周期。 设计过程中主要有两部分内容需要攻克,一部分是关于甲醛浓度检测及单位换算部分,这部分查阅了一些资料,总觉得不太合理,传感器输出的浓度单位为ppb或ppm(1ppm=1000ppb),而作为我们日常使用中,比较容易理解的单位是 mg/m3 ,从 ppb 到 mg/m3 之间的换算,网上有很多种说法,其中我找到的最不合理的说法就是 1ppm = 1mg/m3。经过深入研究,发现这其实是化学单位中常用的几个不同的单位,这两个单位之间的换算还要结合不同物质的物质的量来进行计算,经过自己实际对比验证和联系供应商验证问题,最终得出的结论为甲醛浓度单位ppm和 mg/m3 之间的换算关系为: 1ppm = 0.74666 mg/m3 这种看着不起眼的单位换算,背后还是有一些知识点需要理解的,如果单单的将 1ppm 理解为 1mg/m3 的话,最终会造成读取的数据不准确,那么这样的甲醛检测仪也就没有什么设计的意义了。 第二部分内容就是关于LCD显示部分的GUI部分,这部分开发工作相对可查的资料比较多,开源的GUI也很对,网上针对ART-PI进行的GUI适配工作也有很多分享,笔者也亲自适配了lvgl这套开源的GUI,但是对于笔者,还是希望能够在设计过程中深入理解LCD驱动和GUI部分的原理,于是乎在开发过程中,笔者自己动手编写了GUI部分的画点、画线、绘制圆、绘制矩形、显示字符等函数,在编写过程中也参考了正点原子的GUI部分的代码,但是这对于我理解GUI部分的原理已经足够了,借此机会,我还设计了几个GUI的控件,用来显示一些传感器数
2022-04-06 14:31:36 7.31MB 传感器 物联网 diy制作 开源
1
国产最优秀的嵌入式实时操作系统RT-Thread。RT-Thread是一个实时的内核(全抢占优先级调度,调度器时间复杂度O(1)),但在发展过程中,RT-Thread实时操作系统得到了来自全国嵌入式开发工程师的鼎力支持,为RT-Thread添砖加瓦,现在它不仅仅是一款高效、稳定的实时核心,也是一套面向嵌入式系统的软件平台,覆盖了全抢占的实时操作系统内核,小巧而与底层具体实现无关的文件系统,轻型的TCP/IP协议栈以及轻型的多窗口多线程图形用户界面。
2022-04-04 15:31:56 51.6MB RT-Thread 实时操作系统 嵌入式
1
图文并茂讲解如何在keil下建立Rt-Thread工程
2022-04-03 13:53:50 838KB Rt-Thread keil 工程建立
1
概述:声源自动跟随小车,方案主要是通过采集实时环境声音,计算声音的到达方向,同步小车的角度和声源方向角度并行进,达到声源跟随的目的。主要可以应用在电子宠物上,与人进行互动,也可以判断声源方向用来指示目标,是一个比较有趣的设计。 开发环境硬件:ART-Pi开发板,Raspberry Pi开发板 扩展板:四通道麦克风扩展板,GY-521 MPU-6050模块,直流电机驱动模块,锂电池电源组件 RT-Thread版本:RT-Thread Nano 开发工具及版本:STM32CubeMX 5.6.1 MDK 5.20 RT-Thread使用情况概述采用STM32CubeMX生成RT-Thread Nano的代码工程 内核部分:调度器。 调度器:创建2个线程分别实现MPU-6050的DMP角度数据读取和小车平台姿态与声源达到方向角的同步。 硬件框架ART-Pi定时读取MPU-6050的小车平台姿态数据,然后通过对比串口中断接收的Raspberry Pi声源到达方向角数据,PWM驱动直流电机芯片同步小车姿态并前进,实现声源跟随功能。 软件框架说明本项目软件分为两部分: 第一部分:Raspberry Pi 软件 通过ReSpeaker 4-Mics Pi HAT扩展板采集实时现场环境音频数据,估算声源的到达方向并通过USB TTL串口发送声源到达方向角数据到ART-Pi串口接收端。 第二部分:ART-Pi 软件 ART-Pi开发板上电之后首先完成板级外设的初始化,并初始化MPU-6050的数字运动处理器DMP实现小车姿态的获取。开启串口中断接收Raspberry Pi发送的声源到达方向角数据,输出PWM控制小车的直流电机来改变小车姿态符合声源到达方向角,再控制小车前进。 软件模块说明Raspberry Pi 软件: 安装ReSpeaker 4-Mics Pi HAT的驱动,安装声源到达方向应用mic_array,修改vad_doa.py使其能够通过USB TTL串口输出声源到达方向角数据。 ART-Pi 软件: 创建了2个线程 thread1_entry:周期性的读取MPU-6050的数字运动处理器DMP数值,并把读取到的值放入全局变量中; thread2_entry:循环检查串口数据接收变量,如有声源到达方向角数据就控制小车姿态符合声源到达方向角。 演示效果视频观看: 代码地址(附件为代码地址,下载后打开可见)比赛感悟RT-Thread Nano集成在STM32 Cubemx工具中,直接图形化配置生成初始代码真的非常方便。 由衷的感谢开源社区大佬们的贡献。 最后感谢主办方提供了这么好的一个平台,能学到很多知识。
2022-04-01 23:26:56 8.31MB 开源 rt-thread 电路设计方案 电路方案
1