Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
LittlevGL_LVGL
onenet
夏令营
RTT夏令营实践作业——基于onenet的温湿度智能检测系统
发布于 2023-07-27 12:26:43 浏览:397
订阅该版
[tocm] # RTT夏令营实践作业——基于onenet的温湿度智能检测系统 ## 系统设计 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230727/bb734c601766b9d68adbdd54c458a4f8.png) 首先通过添加软件包的形式为HMI_borad添加rw007、onenet及AHT10的配置文件,然后更改配置使其顺利联网,之后在onenet平台上上线设备,初步工作完成 其次设计RTT系统流程,首先创建优先级较低的线程entry_tem使其获取AHT10的实时数据,同时由于采集数据较为波动,采用滑动滤波的方式将数据进一步处理,并完成数据更新 ### entry_tem代码如下: ```c void hal_entry(void) { //lvgl初始化 lv_init(); //上云线程 onenet_thread = rt_thread_create("onenet_name", onenet_entry, NULL, 2048, 10, 10); if (!onenet_thread) { LOG_E("onenet_thread is failed!\n"); } rt_thread_startup(onenet_thread); //lvgl界面线程 lvgl_thread = rt_thread_create("lvgl_name", lvgl_entry, NULL, 4096, 10, 10); if (!lvgl_thread) { LOG_E("lvgl_thread is failed!\n"); } rt_thread_startup(lvgl_thread); //aht10线程,由于aht10损坏我就先写出aht10如何得出,然后进行模拟。 aht10_thread = rt_thread_create("aht_name", aht_entry, NULL, 1024, 10, 10); if (!aht10_thread) { LOG_E("lvgl_thread is failed!\n"); } rt_thread_startup(aht10_thread); } ``` ### 滑动滤波算法如下所示: ```c int32 update(int32 data) { int i = 0; int32 sum = 0; for (i = 0; i <= depth - 2; i++) { buffer_fiter[i] = buffer_fiter[i + 1]; sum += buffer_fiter[i]; } sum += data; buffer_fiter[depth - 1] = data; return sum / depth; } ``` onenet线程: ```c // onenet线程入口 void onenet_entry(void *parameter) { while (1) { if (onenet_mqtt_init() != 0) { return; } // 根据标志符上云 onenet_mqtt_upload_digit("hum", hum_angle); rt_thread_mdelay(1000); } } ``` ### lvgl线程 ```c //LVGL线程入口 void lvgl_entry(void *parameter) { //定义样式和基本类 lv_style_t style; lv_style_init(&style); lv_style_set_text_font(&style, &lv_font_montserrat_16); lv_obj_t *label1 = lv_label_create(lv_scr_act()); lv_obj_t *label2 = lv_label_create(lv_scr_act()); //加载图片 LV_IMG_DECLARE(backgroup); lv_obj_t * img1 = lv_img_create(lv_scr_act()); lv_img_set_src(img1, &backgroup); lv_obj_set_pos(img1, 0, 160); while (1) { lv_obj_set_style_bg_color(img1, lv_color_hex(0xffffff), 0); lv_obj_add_style(label1, &style, 0); lv_obj_add_style(label2, &style, 0); lv_label_set_text_fmt(label1, "Hum: %d", (int) hum_angle); lv_label_set_text_fmt(label2, "Tem: %d%%", (int) hum_angle); lv_obj_set_align(label1, LV_ALIGN_CENTER); lv_obj_align_to(label2, label1, LV_ALIGN_OUT_BOTTOM_MID, 0, 0); rt_thread_mdelay(1000); } } ``` ### aht10线程入口 ```c //AHT10线程入口 void aht_entry(void *parameter) { //aht初始化 aht10 = aht10_init("i2c1"); while (1) { if (!aht10) { rt_kprintf("you are failed\n"); } //得出数值 tem = aht10_read_temperature(aht10); hum = aht10_read_temperature(aht10); rt_kprintf("tem :%d hum:%d \n", (int) tem, (int) hum); //进行模拟 hum_angle += 1; tem_angle += 1; rt_thread_mdelay(1000); } } ``` ## 系统演示效果 B站视频:【rtt夏令营作品展示-哔哩哔哩】 https://b23.tv/KyjOrIs ## 系统使用前景 1. 室内环境监测:温湿度检测可用于室内环境监测,例如家庭、办公室、商店和工厂等场所。通过监测温度和湿度,可以调节空调、加湿器或除湿器等设备,提供舒适的室内环境。 2. 农业和温室:温湿度检测对于农业和温室种植非常重要。合适的温湿度水平有助于植物的生长和发育。通过监测温度和湿度,可以实现自动控制系统,确保植物在适宜的环境条件下生长。 3. 食品贮存和运输:在食品行业中,温湿度检测对于食品贮存和运输至关重要。恶劣的温湿度条件可能导致食品变质和腐败。监测温度和湿度可以帮助确保食品在安全的条件下保存和运输。 4. 医疗保健:在医疗保健领域,温湿度检测可用于监测医院、实验室和药品存储区域的环境条件。合适的温湿度水平有助于维持病人的舒适和保持药品的有效性。 5. 环境监测:温湿度检测在环境监测方面也具有重要作用。通过监测温度和湿度,可以评估气候变化、火灾风险、洪水预警等方面的情况,并采取相应的措施来保护环境和人类安全。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
OGES_7242
这家伙很懒,什么也没写!
文章
2
回答
2
被采纳
0
关注TA
发私信
相关文章
1
studio中onenet包使能自动注册设备功能,编译缺少代码
2
rt-thread如何上传GPS的经纬度到onenet?
3
MQTT 在“ read 0:1, break “后断开重连
4
ONENET+esp8266连接报错
5
有哪位实现了ONENET包获取onenet数据源数据吗
6
请问一下使用BC26对接ONENET的步骤是什么呀
7
AT Client receive failed???
8
onenet示例程序运行异常
9
如何使用OneNet软件包上传2个以上数据流
10
OneNET 浮点数据上传,但小数部分却被截掉
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
812
个答案
177
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
2
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部