基于onenet的温湿度智能检测系统设计流程

电子说

1.2w人已加入

描述

系统设计流程

RTThread

首先通过添加软件包的形式为HMI_borad添加rw007、onenet及AHT10的配置文件,然后更改配置使其顺利联网,之后在onenet平台上上线设备,初步工作完成

RTThread

其次设计RTT系统流程,首先创建优先级较低的线程entry_tem使其获取AHT10的实时数据,同时由于采集数据较为波动,采用滑动滤波的方式将数据进一步处理,并完成数据更新

entry_tem代码如下:

void hal_entry(void)
{
rt_kprintf("nHello RT-Thread!n");
float humidity, temperature;
aht10_device_t dev;
/ 开启总线 /
const char i2c_bus_name = "i2c1";
int count=0;
rt_thread_mdelay(2000);//等待传感器正常工作
dev = aht10_init(i2c_bus_name);//初始化aht10
if(dev == RT_NULL)
{
rt_kprintf("The sensor initializes failure");
return 0;
}
while (1)
{
rt_pin_write(LED_PIN, PIN_HIGH);
rt_thread_mdelay(500);
rt_pin_write(LED_PIN, PIN_LOW);
rt_thread_mdelay(500);
/ 循环读取温度和湿度的值 /
humidity = aht10_read_humidity(dev);
rt_kprintf("湿度 : %d.%d %%n ", (int)humidity, (int)(humidity
10)%10);
temperature = aht10_read_temperature(dev);
rt_kprintf("温度 : %d.%dn ", (int)temperature, (int)(temperature*10)%10);
rt_thread_mdelay(1000);
}
}
信号量的使用:在滑动滤波完成之后使标志位flag = 1;当flag = 1时释放信号量

//此处输入信号量相关代码
滑动滤波算法如下所示:

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;
}

最后通过创建较高优先级的线程entry_sent使其在接受到tem的信号量之后完成数据发送,完成整个温湿度检测装置

static void onenet_upload_entry(void *parameter)
{
int value = 0;
while (1)
{
value = rand() % 100;
if (onenet_mqtt_upload_digit("temperature", value) < 0)
{
LOG_E("upload has an error, stop uploading");
break;
}
else
{
LOG_D("buffer : {"temperature":%d}", value);
}
rt_thread_delay(rt_tick_from_millisecond(5 * 1000));
}
}

系统使用前景

室内环境监测:温湿度检测可用于室内环境监测,例如家庭、办公室、商店和工厂等场所。通过监测温度和湿度,可以调节空调、加湿器或除湿器等设备,提供舒适的室内环境。
农业和温室:温湿度检测对于农业和温室种植非常重要。合适的温湿度水平有助于植物的生长和发育。通过监测温度和湿度,可以实现自动控制系统,确保植物在适宜的环境条件下生长。
食品贮存和运输:在食品行业中,温湿度检测对于食品贮存和运输至关重要。恶劣的温湿度条件可能导致食品变质和腐败。监测温度和湿度可以帮助确保食品在安全的条件下保存和运输。
医疗保健:在医疗保健领域,温湿度检测可用于监测医院、实验室和药品存储区域的环境条件。合适的温湿度水平有助于维持病人的舒适和保持药品的有效性。
环境监测:温湿度检测在环境监测方面也具有重要作用。通过监测温度和湿度,可以评估气候变化、火灾风险、洪水预警等方面的情况,并采取相应的措施来保护环境和人类安全。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分