【RT-Thread 开源作品秀】小型蚯蚓养殖监控系统

开源地址:https://gitee.com/bltas/earthworm_home


概述:

小型蚯蚓养殖监控系统主要探索在家庭等局限场地下,蚯蚓的正常养殖,从而得到蚯蚓粪和蚯蚓液。系统基于ART-PI & RT-Studio 开发,使用了dht11,ds18b20,土壤湿度,mpu6050监测养殖环境中的空气温湿度,土壤温湿度和蚯蚓的抖动密度。外置的风扇和水泵对上述环境变量进行控制。连接onenet后可以及时在后台远程观测环境变量并加以控制。

开发环境

硬件:ART-Pi STM32H750

扩展板:DS18B20防水数字温度传感器,DHT11温湿度传感器,2pcs MPU6050 传感器,土壤湿度传感器

RT-Thread版本:RT-Thread V 4.0.3

开发工具及版本:RT-studio2.0.0

RT-Thread使用情况概述

调度器:创建多个线

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
RT-Thread作品】基于RT-Thread的姿态解算控制平台设计作者:黄国盛 概述是一个姿态解算算法验证平台以及控制算法验证平台 实现步骤: 使用CubeMax HAL库开发; 使用Python project_generator生成工程; 精简RTT Master内核并加入C++支持; 配置调试接口; 构建C/C++混合编程框架; 硬件IIC驱动GY-86传感器驱动; MATLAB设计IIR Butterworth四阶低通滤波器; 传感器校准; Mahony互补滤波算法 实现姿态解算; 加入mavlink/私有协议、UDP/USB上传数据到PC; 通过MATLAB/STM32验证和比较各种算法; 搭建单轴单桨一维角度控制平台; …… 开发环境硬件: 碳纤管碳纤桨电机座、电机电调电源、ART_Pi、GY86、按键模块、硅胶线…… RT-Thread版本: Master 4.0.3 开发工具及版本: STM32CubeMX 6.0.1、IARforARM8.32.1、BeyondCompare4、MATLAB R2019b、VSCode、SmartGit20.1.5、匿名飞控地面站-0512…… RT-Thread使用情况概述Pin、serial、cplusplus、time、finsh 硬件框架ART_Pi、GY86、按键模块、电调…… 软件框架说明C/C++混合编程,进程和Loop Schedule结合 软件模块说明核心部分:关于GY86的驱动以及姿态解算的Mahony 演示效果演示视频: 比赛感悟4/11/2020Will_Watson 关于AHRS,卡尔曼滤波或互补滤波理解起来 简单但实施难度较大因为很多参数有待测定; 发现各开源项目用的最多的是Mahony算法,关于它的PI部分的本质着实难以理解; 当发现BP神经网络逼近好像可以和卡尔曼滤波一样,就当成滤波器,而且它还可以是一个逼近式的滤波器,免不了一番测试比较; 而后查看Madgwick原文中提到“梯度下降法”,瞬间明白了它的根源和本质; 当学习BP神经网络逼近的时候的思考流程如下: 逼近的需求来源是什么?可能是为了预测系统下一个输出,为了做前馈控制? 预测 ——> 观测器 ——> 逼近式滤波器??? 神经逼近网络的特性有哪些?不具有长时记忆,短时记忆即可以说只具有最近时刻原系统的逼近特性; 尝试检测滤波特性,从这个角度理解逼近网络也是一个不断修正的预估观测器或者说卡尔曼滤波器 从执行流程/滤波效果上 分析一维卡尔曼滤波 和 NNI-BP逼近一维非线性系统的 区别: 卡尔曼滤波流程:先验估计值——>先验估计方差——>依据各方差融合传感器数据做后验估计——>更新后验估计方差; NNI-BP逼近流程: 由网络前状态和新输入直接计算输出——>与原系统输出比较修正网络状态(是为了下一次直接获得预估输出); 注:把原系统输出当成需滤波数据;把神经网络输出当成滤波后数据 卡尔曼滤波没有阶数的概念,而NNI-BP逼近的滤波特性具有一定延迟 卡尔曼滤波器的主要控制参数(基于现实过程噪声和观测噪声)不可控,转移矩阵协方差矩阵需测得; NNI-BP逼近 的主要 控制参数(学习速率和动量因子)可控 即滤波效果可调节,逼近系统特性; 也有一部分“内闭环软拟硬输入输出”思想 当然算法的表现依然可以看起来就是加减乘除那么简单,双重卡尔曼看起来和做起来可能没那么友好;
RT-Thread作品】基于RT-Thread的气压温度测量系统作者:安静的句型 概述(说明应用产生的背景、实现功能)基于ART-Pi,利用MS-P2XD10气压传感器模块,L610-CN-00-MiniPCIe-10Cat模块,设计了一款气压温度测量系统,测量环境的大气压力和温度,并上报到阿里云,连接到物模型,实时显示。 开发环境(所采用的软、硬件方案)硬件:ART-Pi;L610;LPS22HH RT-Thread版本:4.0.3 开发工具及版本:MDK-v5.27.0.0 RT-Thread使用情况概述(简要总结下应用中RT-Thread使用情况:内核部分、组件部分、软件包部分、内核、其他)使用了RT-Thread内核中使用线程、信号量、 邮箱、内存池等功能,在读取到传感器数据后,将气压和温度数据通过邮箱传输到阿里云发布线程,向云端发送。 调用了FinSH组件用于系统过程调试,监视线程应用情况、设备使用情况、其它信息等。 加载了多个软件包: AT DEVICE软件包,用于L610的驱动。 WebClient软件包,测试L610功能。 ali_iotkit软件包,配置阿里云三元组信息,连接阿里云。 cJSON软件包,进行数据封装。 硬件框架(概述应用所采用的硬件方案框图,并对核心部分做介绍)利用ART-Pi作为主控单元,通过I2C接口与LPS22HH气压传感器模块通讯,获取气压和温度值。通过UART接口与L610Cat通讯模块通讯,与云端连接。 其中LPS22HH需注意连线,具体连线如下: LPS22HH板 ART-Pi 定义 VDD P1-1 3.3V VDDIO P1-1 3.3V SA0 P2-39 GND SDA P1-3 I2C-SDA SCL P1-5 I2C-SCL CS P1-1 3.3V GND P1-39 GND 其中VDD和VDDIO都是为LPS22HH供电,直接使用ART-Pi的3.3V电源。SA0是用于选择地址,接地后地址为0x5C。SDA和SCL是I2C接口“i2c3”。CS作为片选信号,接高电平后选择接口为I2C。 L610连线如下: L610板 ART-Pi 定义 UA1_TX P1-10 UART-TX UA1_RX P1-8 UART-RX AUTO_POWER_ON_1 P1-6 GND AUTO_POWER_ON_2 P1-12 PI5 CTS短路帽不接。 电源短路帽接至VUSB。 连接USB接口供电和通讯。 软件框架说明(介绍应用所采用的软件方案框图、流程图等,并加以解说)在main.c文件中首先进行了L1610的上电,mqtt初始化,lps22hh初始化等,并创建了四个线程,LED闪烁线程、阿里云发送数据线程、接收阿里云命令线程、定时器线程。 当前实现了基础功能: 通过控制台发送读取传感器数据指令后,在阿里云显示的功能。 后期还需继续完善两个功能: 硬件定时器功能,可按设定的时间间隔进行工作,采集传感器数据并上报云端,当前使能了timer13,但是定时器无法正常工作,程序是按照文档和原潘多拉板直接移植的,暂未找到问题原因。 阿里云下发命令功能,阿里云可以下发命令控制LED开关,下发命令控制硬件定时器定时间隔,随时修改传感器上报数据频率。除了阿里云在线调试界面,暂未找到如何下发命令方法。 还有一些问题: L610的初始化过程有些不太清楚,看at_device_l610.c文件,是在其中创建了一个初始化的线程并直接调用了,这个怎么能在main中统一初始化呢,现在是在main中延时了10秒等待初始化完成后再执行mqtt等初始化。 对接sensor设备框架未成功,尝试了创建sensor设备成功,但是初始化过程应该有问题,对于一个传感器两个参数的情况暂未了解透彻。 软件模块说明(介绍应用软件关键部分的逻辑、采用的实现方式等)sensor_st_lps22hh应用模块直接调用了st的函数库lps2hh_reg,首先创建了stmdev_ctx_t变量,完成了寄存器读写函数的实例化,在此需注意lps22hh的地址,选择了sa0为gnd后地址为0x5c,此地址为7位,可以直接在i2c设备框架中直接赋值无需右移。另外在读取寄存器值时应首先写地址然后才是读数据。参考st的polling文件,编写了初始化函数和读取数据函数,直接读取气压和温度值,并发送至邮箱。 api_ali应用模块参考ali-iotkit的mqtt_example文件,在ENV中配置好三元组信息后,进行mqtt初始化,读取三元组,与云端建立mqtt连接,并订阅了发布和读取主题。编写了数据发布函数,可由发布线程直接调用。试验了cJSON软件包,直接打包成json数据,试验了直接赋值字符串,均可正常实现。试验了接收命令线程,在阿里云中
RT-Thread作品】基于物联网云平台的智能环境监测设计作者:赵帅 概述智能环境监测系统基于 STM32H7系列芯片开发,通过光照传感器与温湿度传感器采集环境中的光照与温湿度数据,通过WIFI将系统采集到的环境数据实时的上传至物联网云平台,也可以通过PC端软件实时的监控环境数据。该系统适用于家庭、办公室、教室等场所的进行环境监控,该系统具有实时性高、功耗低,丢包率低,随时随地监控数据等特点,是一个实用的设计。 开发环境下位机:硬件:stm32f407-atk-explorer 扩展板:DHT11温湿度传感器,BH1750光照传感器,板载AP6212 WIFI模块 RT-Thread版本:RT-Thread V 4.0.3 开发工具及版本:RT-Sudio 上位机: Qt版本:Qt5 开发工具:Qt Creator4.11.0 RT-Thread使用情况概述内核部分:调度器,信号量,事件集 调度器:创建多个线程来实现不同的工作。 信号量:用来同步线程。 事件集:通知数据采集完成 组件部分:IIC框架, Sensor框架,SAL 套接字抽象层 IIC框架:驱动光照传感器,获取光照强度数据 Sensor框架:将温湿度传感器注册到sensor上。使用该框架提高了代码的复用性。 SAL套接字抽象层:该组件实现了对不同网络协议栈或网络实现接口的抽象,并对上层提供一组标准的API接口,方便网络应用的开发与稳定性。 软件包部分: cJSON:C语言实现的极简的解析 JSON 格式的软件包。 Onenet:RT-Thread 针对 OneNET 平台连接做的的适配,通过这个软件包,可以让设备在 RT-Thread 上非常方便的连接 OneNet 平台,完成数据的发送、接收、设备的注册和控制等功能。 pahomqtt,:本软件包是在 Eclipse paho-mqtt 源码包的基础上设计的一套 MQTT 客户端程序。 Webclient:提供设备与 HTTP Server 的通讯的基本功能。 硬件框架使用stm32h7做为系统主控,通过外接dht11传感器、bh1750传感器来采集外界的温湿度数据与光照强度。 使用AP6211wifi模块,实现设备的联网,以及连接云平台的功能。 软件框架说明下位机流程图: 上位机流程图: 上位机数据的获取是通过调用OneNet云平台的API接口来获取数据,因此需要使用HTTP协议。在QT中,QNetworkAccessManager类可以完成基于HTTP协议的数据传输。既可以向网络发送请求,也可以接收网络的应答。但是,具体的网络请求需要通过QNetworkRequest类实现,网络的应答通过QNetworkReply类来实现。在数据获取成功之后,通过调用QT中JSON相关的API函数,根据数据格式匹配出相应的环境数据。之后发送dataSignal()信号,执行setVallue槽函数将数据显示在用户界面上。通过定时器来定时发送get请求,实现数据实时更新的目的。流程图如下图所示。 软件模块说明art_mqtt_init_entry:初始化 mqtt,初始化成功后,释放信号量,通知ArtOneNetUploadThread线程可以向OneNet发送数据。 art_onenet_upload_entry:线程接收到事件后,将数据发送至OneNet云平台 art_dht11_read_entry:温湿度数据采集线程,采集到数据后发送事件 art_bh1750_read_entry:光照采集线程,采集到数据后发送事件 演示效果演示视频 代码地址(附件为代码地址,下载后打开可见)比赛感悟通过这次RT-Thread x STM32 全连接创意创客大赛,增加了我的实际动手能力。 在这次比赛中,通过 RT-Thread官网上的文档中心,让我学到了多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等知识点,也了解了多线程的编程技术。通过这次比赛,让我对这些知识点有了进一步的理解。 由于rt-thread提供了各种传感器相关的软件包支持,这是使我能够快速完成一个项目的重要原因。如果没有这些软件包,项目到开发将不会如此之快。感谢rt-thread社区提供的开源软件包。
RT-Thread作品】基于RT-Thread的智慧农业物联网网关作者:frankpyq 概述智慧农业是目前物联网一个比较广泛的发展方向,基于从事农业物联网相关硬件的开发,结合这次RTT大赛,决定基于RT-Thread设计一款物联网网关。本物联网网关基于STM32H7为主芯片进行设计,分为硬件网关和物联网平台。硬件网关有以ART-PI开发板为核心板,自行设计了一个扩展板,板载一路4G通讯模块,一路LORA无线采集模块,一路RS485电路,2路继电器输出,4路LED指示,1路DS18B20温度采集,1个蜂鸣器;硬件网关可以通过无线LORA采集节点数据,最多可以接收32路无线节点采集;也可以通过RS485电路采集传感器数据。采集到数据后,通过4G模块发送到物联网平台。这里物联网平台我使用的是深圳市模拟科技有限公司的TLINK物联网平台。板载2路继电器和LED指示灯,可以通过平台下发命令控制开关。 开发环境硬件:ART-PI(STM32H750XB), ART-PI_TOP扩展板; RT-Thread版本:RT-Thread V 4.0.3 开发工具及版本:RT-Thread Studio版本: 2.0.0 RT-Thread使用情况概述(1)内核部分:调度器,信号量等。 调度器:创建多个线程来实现不同的工作。 信号量:用来线程间的同步。 (2)组件部分:UART框架,SENSOR框架。 UART框架:使用了3个串口,分别连接4G模块,LORA模块,RS485;分别用于跟平台通讯和采集传感器数据。 SENSOR框架:使用DS18B20采集设备机箱温度。 (3)软件包:暂未使用相关软件包。 硬件框架软件框架说明软件模块说明项目工程文件是基于官方SDK的点灯示例程序开始的。 (1)read_temp_entry线程:用于读取板载DS18B20温度传感器的数值。 (2)LoraU6RxData线程:用于采集无线LORA传感器节点的数据。传感器节点采用主动上报方式传输数据,最多挂载32个节点。 (3)led_shine_entry线程:LED灯闪烁,用于指示设备状态; (4)Task_Tlink_Tx线程:跟TLINk云平台通讯,包含登录和主动上报数据。 (5)TlinkRxData线程:用于接收和解析TLINK云平台下发的控制指令,并执行相关继电器动作。 演示效果(1)设备照片: (2)平台接收数据照片: (3)云组态照片: (4)演示视频: 比赛感悟认识RT-Thread已经是很多年前的事情了,当初也买了第一代的魔笛网络收音机开发板,但是很遗憾一直都没有在实际项目中使用到。主要原因都是我手头的项目都是基于裸机开发的,都没有使用过RTOS。基于RTT大赛的机缘,我就想努力尝试一把,先用起来,然后决定以后项目中有需要的都上RTT系统。但是完事开头难,我这个项目当初想起来挺容易,但是实际做起来的时候,真的还是很不容易的。主要还是我的RTOS编程经验匮乏,对系统内核以及进程通信机制没有理解透彻,导致写程序的时候出了不少问题。从最开始的点灯,到后面的添加传感器驱动框架,添加串口驱动框架,实现了DS18B20传感器采集,实现了串口跟GPRS模块和LOR模块的通讯,实现了数据上TLINK云平台。完成数据上报云平台以及云平台下发控制指令和执行动作等等功能。这其中,我基本没有使用额外的软件包和驱动等,主要还是对RTT不是很熟悉,可以说还基本没有上手。按照当初的设想,本来是要使用广和通的L610的模块,使用AT指令软件包,ONENET软件包等上移动ONENET云平台。但是由于时间太紧和基础太差的原因,20号之前只能完成这么多了。其实这两天我已经用L610模块连上了ONENET云平台,但是详细功能还没有实现,后面我会继续把这个项目做下去,争取把这个产品做完善。最后感谢举办方给我一个很好的学习和锻炼的机会,RTT我相信我会一直用下去。
RT-Thread操作系统资料包是为了方便开发者了解和使用RT-Thread操作系统而提供的一系列资料资源。 首先,RT-Thread操作系统资料包包含了操作系统的详细介绍和架构说明,让开发者能够了解RT-Thread的基本原理和设计思想。这对于初次接触RT-Thread的开发者来说是非常有价值的,可以帮助他们更好地理解操作系统的工作机制。 其次,RT-Thread操作系统资料包还提供了丰富的应用实例和案例分析,这些案例涵盖了不同领域的项目,如嵌入式系统、物联网设备等。这些实例可以帮助开发者更加直观地了解RT-Thread的功能和特性,以及如何在实际项目中使用RT-Thread进行开发。 此外,RT-Thread操作系统资料包还包含了详细的开发文档和API参考手册,这些文档可以为开发者提供操作系统的使用方法和开发技巧。开发者可以根据文档中的指导来进行基于RT-Thread的应用开发,从而提高开发效率和减少开发难度。 最后,RT-Thread操作系统资料包还提供了相关的开发工具和驱动程序,这些工具和驱动可以帮助开发者更好地进行开发和调试工作。开发者可以通过这些工具和驱动来实现硬件与操作系统的有效交互,加快项目的开发进度。 总的来说,RT-Thread操作系统资料包是一套全面而实用的开发资源,可以帮助开发者更好地理解和使用RT-Thread操作系统,提高开发效率和项目的成功率。无论是新手还是有经验的开发者,都能从中获得帮助和指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值