概述当前国内物联网市场的云端生态已经相对完善,但物联网终端设备仍然各成一家、相互隔绝,需要在多种场景下进一步规范化物联网终端软硬件接口。 本作品针对这一市场痛点,以ART-Pi开发板和RTT操作系统为基础,从软件接口层构建一个相对统一设备至设备(D2D)与设备至云端(D2C)的小型通信接口,使用多种输入设备与多种输出设备验证其实际效能,为RTT与STM32强强联合实现“全连接”的目标提供一个最优实践与解决方案。 项目应用场景:工业现场、车载与家庭环境。 开发环境硬件:ART-Pi开发板 RT-Thread版本:4.0.3 开发工具及版本:RT-Thread Studio版本: 1.1.5 RT-Thread使用情况概述内核部分: 调度器:创建多个线程来实现不同的工作。 信号量:用来同步线程。 事件集:通知数据采集完成 组件部分: Sensor框架,SAL 套接字抽象层 Sensor框架:将温湿度传感器注册到sensor上。使用该框架提高了代码的复用性。 SAL 套接字抽象层:该组件实现了对不同网络协议栈或网络实现接口的抽象,并对上层提供一组标准的API接口,方便网络应用的开发与稳定性。 驱动部分: Pin设备:通过控制GPIO高低电平控制外接设备。 串口设备:监控系统运行状态,可作为输入控制。 第三方软件包部分: cJSON:C语言实现的极简的解析 JSON 格式的软件包。 onenet: RT-Thread 针对 OneNET 平台连接做的的适配,通过这个软件包,可以让设备在 RT-Thread 上非常方便的连接 OneNet 平台,完成数据的发送、接收、设备的注册和控制等功能。 Paho-mqtt,:本软件包是在 Eclipse paho-mqtt 源码包的基础上设计的一套 MQTT 客户端程序。 Webclient:提供设备与 HTTP Server 的通讯的基本功能。 硬件框架硬件设备以ART-Pi开发板及其板载设备为主。 软件框架说明软件框架以标准RT-Thread操作系统为基础,通过添加网络模块AP6212的设备驱动,以及SAL 套接字抽象层,实现系统的基础联网功能。 在此基础上,添加cJSON 、onenet、paho-mqtt 软件支持,并在onenet云端建立基于MQTT的产品与设备,将身份认证信息写入软件包,实现系统通过MQTT协议与云端服务器远程通信协议支持。 最后,基于系统和第三方MQTT协议的API接口,实现业务代码。添加设备节点与解析程序,并以线程的形式载入系统中。 软件模块说明应用软件的关键业务代码部分基于系统和第三方MQTT协议的API接口实现,并以动态创建线程的方式加入到RT-Thread系统中。 关键操作主要有两步: 获取传感器信息,并上传至服务器; 接收onenet的远程MQTT服务器发来的信息,解析并转换为底层硬件的执行指令,控制底层硬件的状态。 演示效果比赛感悟通过这次比赛,更加深刻的认识到了RT-Thread不只是一个操作系统内核,而是代表了整个嵌入式生态。作为一名 RTOS 的开发者,也许比赛前对 RT-Thread 还比较陌生。然而,随着深入接触,逐渐发现 RT-Thread 的魅力和它相较于其他同类型 RTOS 的种种优越之处。RT-Thread 是一款完全由国内团队开发维护的嵌入式实时操作系统(RTOS),具有完全的自主知识产权。经过近 12 个年头的沉淀,伴随着物联网的兴起,它正演变成一个功能强大、组件丰富的物联网操作系统。 总而言之,RT-Thread在这次比赛中充分发挥了一个物联网操作系统及其生态所蕴含的优势,这是以往嵌入式开发中由工程师只能自己手动搭建软件系统所远不能及的,衷心祝愿RT-Thread 社区越办越好,走向产业,走向世界。
2022-11-10 22:14:09 508KB 智能家居 物联网 rt-thread 电路方案
1
作者:zlljackx 概述:基于ART-Pi的多点倾角采集系统,支持采集四个节点的三轴倾角数据,终端设备收集分节点的数据并通过Lora发布给基站,基站将整合好的四个节点的数据发送给组态屏。该系统适用于超长仪器平台调平、设备姿态监测、条幅悬挂等场景,无线传输距离可达2km,具有功耗低,丢包率低,传输距离远等特点。 开发环境硬件:ART-Pi、自制终端设备PCB、Lora基站 扩展板:ADXL345,Lora,GPRS RT-Thread版本:RT-Thread V 4.0.3 开发工具及版本:RT-Thread studio RT-Thread使用情况概述内核部分:调度器,信号量,消息队列。 调度器:创建多个线程来实现不同的工作。 信号量:用来同步线程。 消息队列:用来实现线程之间传递的数据。 在原有串口库的基础上把广州大彩显示屏的驱动代码移植进去。 软件框架说明终端设备:1.STM32F103c8t6通过ADXL345获取设备角度 2.STM32F103c8t6打包三轴数据通过sx1278发送给基站 基站设备:1.基站扫描接收已经准备好发送数据的lora终端设备 2.将接收到的所有终端设备的数据打包好发送给显示设备 显示设备:1.lora设备接收基站发来的显示数据 2.lora设备将接收到的数据通过串口发送给ART-PI 3.ART-PI将接收到的数据进行拆解,并通过串口控制显示屏的显示 系统设备展示终端设备: 基站设备: 显示设备: 演示视频: 比赛感悟 之前没有接触过片上系统,rt-thread学习起来还是很吃力。但是这次比赛过后敢觉自己对片上系统有了深深的感触,突然觉得自己原来跑裸机好Low。接下来会更加任真的学习一下rt-thread,争取以后能将rt-thread用在今后的项目中。 由于rt-thread比较新,生态不是很好,例程代码不太好找。有些地方明明很简单,但是没有例程就变的很苦恼,需要自己去试错,时间成本很大。还有一些时候,代码可有可无,或是代码放在什么位置效率最高不能明确,也是因为没有相关例程去学习。 比赛中的lora基站是的一家公司的产品,由于公司知识产权封锁,所以用起来很受束缚。下一步要自己攻克Lora设备这一问题,自己做Lora设备和Lora基站,今后用起来就会灵活方便很多。
2022-08-17 12:50:38 103.15MB 传感器 adxl345模块 rt-thread LoRa
1
玩转ART-Pi(七)——TouchGFX从文件系统中读取图片的demo演示。 教程地址:https://blog.csdn.net/sinat_31039061/article/details/109763842
2021-11-23 20:16:43 87.79MB art-pi
1
STM32H750XBH6的datasheet,欢迎下载。 它也是ART-Pi的主芯片。
2021-10-28 20:05:06 2.84MB stm32 art-pi
1
art-pi uboot+linux+kboot 修改了波特率,统一使用115200,压缩包里含三个文件,rtthread.bin烧录到内部flash,uboot.bin烧录到0x90000000,linux文件烧录到0x90080000,在串口里输入boot即可启动
2021-10-13 20:02:03 4.77MB art-pi
1
【RT-Thread作品秀】温湿度监测设计作者:Star.Water 概述产生背景:当前温湿度监控设备大多只能显示当前环境参数,不能查看历史记录和历史曲线图,不能直观的显示温度湿度的变化情况。所以本次设计预计做出一款可以显示当前和历史曲线的产品。 实现功能:仪表盘显示当期的温度,湿度;历史曲线显示历史数据。 开发环境硬件:ART-Pi RT-Thread版本:rt-thread-v4.0.2 开发工具及版本:MDK5.21 RT-Thread使用情况概述移植RT-Thread到STM32H50,设置系统滴答时钟产生1ms中断,驱动RT-Thread. #define RT_HEAP_SIZE (1024*40) //1024 #define RT_MAIN_THREAD_STACK_SIZE 1024 #define RT_USING_HEAP 其他为默认 硬件框架以ART-Pi为主,驱动1024*600 7寸电容触摸屏,阿里云stm32L4开发板负责传感器参数采集,数据记录写入SD卡。ART-Pi和stm32L4都是用RT-Thread RTOS,通过串口通讯。 屏幕: 屏幕转接板参考正点原子和野火的屏幕,自己画板,嘉立创打样,10*10以内5元,由于屏幕大小位180mm*100,所以用3块板子拼接而成。 软件框架说明RTT通过系统滴答定时器产生1ms中断驱动;LVGL通过定时器3产生1ms中断驱动。 各个线程资源分配如下: 机智云WIFI远程遥控和传感器参数采集在STM32L496板子上。 软件模块说明APT-Pi与STM32L496通讯采用自定义的协议,协议内容如下: 协议包头包尾均采用双字节验证,减小内容中出现包头包尾的概率,每一帧数据的结尾添加16bit的校验值,避免通讯受到干扰时发送参数错误。 在使用过程中发现RT-Thread的printf和sprintf函数功能不完善,不能使类似%0.2来确定小数的位数和格式。 演示效果LVGL调试使用VS2017,在电脑断调试完成后快速移植到单片机。以下图片为仿真截图。 视频见附件。 代码地址代码见附件。 比赛感悟一直想要自己写一个LVGL,但是白天需要上班,晚上带孩子,没有时间搞,借助这次比赛给自己压力,每天晚上加班总算把LVGL入门了。 RT-Thread是一款很方便移植的RTOS,仅需要一个中断来驱动就好,方便移植。之前一直没有使用RTT的软件包,这次发现RTT的软件包很方便,以后一定要学习一下,这次因为时间紧迫,所以还是使用MDK开发,自己手动移植RTT,其他驱动自己添加。在功能上还有很多预想没有实现,后期会组不添加完善功能。 非常感谢RT-Thread提供的参赛机会,让我学到了知识,也了解了更多关于RT-Thread,比赛虽然快要结束了,但是在学习的道路上永不止步!
2021-10-02 14:32:59 292.53MB stm32h750 rt-thread STM32L496 ART-Pi
1
art-pi 配置好文件系统,wifi,ftp和touchgfx的位图缓存功能的工程,BSP版本1.10 一定要在sd卡或者16M nor flash里面有相应图片的二进制文件这个工程才可以正常运行,如何操作见我的博客
2021-08-17 09:04:22 83.41MB art-pi rt-thread
1
配置好文件系统,wifi,ftp和touchgfx的工程
2021-08-17 09:04:22 83.21MB art-pi rtthread
1
基于STM32H750:ART-Pi的智能配电箱电路,实现实时读取220V电压及电流,实时获取温湿度,网络自动上报等功能。
2021-08-02 16:51:14 132KB 物联网 电路设计方案 STM32 电路方案
1
一.概览 本人虽然是电子信息技术专业出身,在毕业后从事的是偏软件的工作,大多数是PC软件的开发,但一直以来,闲暇时间会利用STM32做些小的作品。对于RT-Thread这国内的物联网操作系统,其实早有耳闻,期间也参加过深圳的一次RT-Thread线下交流活动,所以对于RT-Thread是有所了解而未实际应用的程度。 借着此次RT-Thread大赛的机会,我想将PC的一些图像处理和图像识别算法放到art-pi试跑一下看看效果如何,所以本次参赛将会使用art-pi获取OV7670的图像来做像处理和图像识别。 二.开发环境 硬件:PC、ART-PI、OV7670、RGB_LCD RT-Thread版本:rt-thread4 .0.3,art-pi adk 1.1.0 开发工具及版本:立创EDA,RT-Studio,SecureCRT 三.RT-Thread使用情况概述 线程:创建图像处理线程用于通过DCMI获取OV7670的图像,图像处理后完显示在LCD上 信号量:用于DCMI图像获取,当捕捉完一帧图像后,释放信号量给图像处理线程。 驱动:使用了drv_dcmi驱动并参考drv_ov2640移植drv_ov7670驱动 四.实现功能展示 通过摄像头采集图像进行图像识别,然后将结果显示在LCD屏幕上。 五.硬件框架 本次的硬件核心由ART-PI、OV7670、LCD三部分组成: ART-PI:stm32H750作为控制核心部分,采集图像源数据、处理图像源生成处理结果、将处理结果送到LCD显示 OV7670:作为图像源,提供320*240的RGB565图像 LCD:实时显示图像源图像和显示处理结果 六.软件流程图 1. 硬件初始化:时钟、I2C、DCMI、SDRAM、LTDC 2. 进入图像处理线程,启动拍照并等待拍照完成信号量 3. 完成拍照释放拍照完成信号量 4. 得到图像后,进行图像处理与图像识别 5. 将图像识别结果在LCD上显示 6. 回到步骤2 七.图像识别功能介绍 通过DCMI驱动获取OV7670的分辨率为320*240的RGB565原始图像。RGB565每个像素使用用下图的方式存储,每个像素占用2个字节。所以每帧320*240的图像所需内存为320*240*2=153600字节。 实际上,我们在这次项目中并不需要使用到彩色特征,所以先将RGB565转换为灰色度。灰度图其实就是每个像素占用一字节,用0-255值来形容一个像素的灰度值。因此320*240所占用的内存为76800字节。 RGB565转灰度图公式如下:Gray = R*0.299 + G*0.587 + B*0.114 提取的灰度图后,我们还需要再进行一次二值化处理,因此设定一个阈值,当灰色像素大于这个阈值我们将它改为255,低于这个值变成0。这样就得到一帧只有0和225值的图像。 得到二值化图像后,我们便可以寻找要识别物体了。在此使用九宫格的方式提取连通分量,原理其实很简单,就是在九宫格里寻找连在一起的像素,如果能找到便将该像素便将该像素的坐标(位于X行,y列)写入到链表里。如此循环,直到找完所有像素。 完成连通分量的提取后便是特征提取了,我们还是采用九宫格分割法,将取得的图像平均分割为9个区域,再计算9个区域中值为255像素的个数。通过这一步算法,我们得到了9组特征数据。 本次用了两种特征提取方式: 1.通过水平与垂直方向的穿越数找出部分数字 以数字0和7为例,在1/2宽度处,0和7稳定的得到垂直穿越数是2.而在1/2高度,0的水平穿越数是2,7的水平穿越数是1. 2.在图像的水平和垂直的中间切分成四块,根据四个部分不同像素比例找出其他数字。以2和3为例 ,在右下角部分,3的每一行都会有像素点,而2会缺几行。因此2的像素更少从而区分2和3。 最终检测效果如下图: 八.比赛感悟 虽然标题是比赛感悟,实际上比赛并不是我的目的。RT-Thread我知道它更久了,但是一直没有去更进一步使用RT-Thread。这次比赛让我深入了解了RT-Thread的生态系统,给我的感觉真的太惊喜了。RT-Thread平台拥有丰富的组件,完善的各种外设驱动,通过官方的RT-Studio基本上做到入手即用了。 当时拿到ART-PI,通过RT-Thread SETTING进行勾选,再使用CubeMX选择外设,生成引脚初始化代码后。我本次项目的软件基本平台已经完成了,我只需要专注于我的应用层开发便可以了,这真的是太便利了。 通过本次比赛,让我对RT-Thread获得相当大的好感,我想未来硬件项目当中,我会毫不犹豫的选择RT-Thread代替其他实时操作系统。
2021-07-11 10:13:25 10.2MB ov7670 图像识别 图像处理 rt-thread
1