0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用RT-Thread和PSOC6实现一个温湿度报警系统

冬至子 来源:忧清aa 作者:忧清aa 2023-07-31 16:01 次阅读

简介

项目名称:温湿度传感报警系统

设计思路:项目使用RT-Thread系统和PSOC6开发板,实现一个温湿度报警系统。该系统通过wifi连接将数据上传至OneNET云,后经过前端开发,可以使数据清晰的展示。并且在温湿度高于或低于某一数值时,蜂鸣器就会报警。

项目的优势:利用简单的构建实现了对温湿度的实时监控,操作简单,成本较低。

流程图

1.jpg

硬件部分

软件部分

软件包配置

1.jpg

.onenet_upload_entry代码

static void onenet_upload_entry(void *parameter)
{
rt_pin_mode(deep, PIN_MODE_OUTPUT);
float t_l=10,t_h=40;//温度下限10上限40
float hu_l=20,hu_h=65;//湿度下限20上限65
float hum,temp;
aht10_device_t dev;
const char *i2c_bus_name="i2c3";
rt_thread_mdelay(2000);
dev=aht10_init(i2c_bus_name);
if(dev==RT_NULL)
{
rt_kprintf("The sensor initializes failure");
}
rt_pin_write(deep, PIN_HIGH);
temp=aht10_read_temperature(dev);
hum=aht10_read_humidity(dev);
rt_thread_mdelay(1000);
while (1)
{
hum=aht10_read_humidity(dev);
rt_kprintf("humidity : %d.%d %%n",(int)hum,(int)(hum*10)%10);
temp=aht10_read_temperature(dev);
rt_kprintf("temperature: %d.%d C nn",(int)temp,(int)(temp*10)%10);
rt_thread_mdelay(1000);
/*蜂鸣器报警*/
if((int)tempt_h)
{
beep2();
}
else if ((int)humhu_h)
{
beep2();
}
/*上传数据*/
onenet_mqtt_upload_digit("temperature", temp);
rt_thread_mdelay(1000);
onenet_mqtt_upload_digit("humidity", hum);
if (onenet_mqtt_upload_digit("temperature", temp) ||onenet_mqtt_upload_digit("humidity", hum) < 0)
{
LOG_E("upload has an error, stop uploading");
break;
}
else
{
LOG_D("buffer : {"temperature":%f C},{"humidity":%f%%}", temp,hum);
}
rt_thread_delay(rt_tick_from_millisecond(5 * 1000));
}
}

前端开发

定时器代码

setInterval(
//设置定时器,7s更新一次
function () {
if (!getData())
return;
updateTemperature();
updateHumidity();
updateTH();
},
7000
);

定时器主要完成四个功能:

getData():获取最新数据,并加入到数据数组中
updateTemperature():更新温度刻度盘
updateHumidity():更新湿度刻度盘
updateTH():更新温湿度面积堆叠图

updateTemperature()、updateHumidity()、updateTH()代码

function updateHumidity() {
option = {
tooltip: {
formatter: "{a}
{b} : {c}℃",
},
toolbox: {
feature: {
restore: {},
saveAsImage: {},
},
},
series: [
{
name: "当前湿度",
type: "gauge",
min: 0,
max: 100,
detail: { formatter: "{value}%" },
data: [{ value: ydata_hum[ydata_hum.length - 1], name: "湿度" }],
axisLine: {
lineStyle: {
color: [
[0.5, "#ff6b6b"],
[0.65, "#ffa94d"],
[0.8, "#69db7c"],
[1, "#4dabf7"],
],
},
},
},
],
};
mCharts2.setOption(option);
}
获取最新温湿度数据

function getData() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
}
};
xmlhttp.open("GET", "http://api.heclouds.com/devices/product_id/datastreams", true);
xmlhttp.setRequestHeader("api-key", "your API Key");
xmlhttp.send();
...
}

项目功能

数据页面展示

1.jpg

该项目实现了对温湿度的实时监控,通过ATH10获取温湿度数据,利用rw007将数据上传到onenet云端,通过前端开发将数据可视化。可以设定温湿度上下限,当温湿度不在范围内时,蜂鸣器工作,进行报警。

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

    关注

    23

    文章

    3246

    浏览量

    114720
  • 蜂鸣器
    +关注

    关注

    12

    文章

    891

    浏览量

    45919
  • 温湿度传感器

    关注

    5

    文章

    579

    浏览量

    35706
  • RT-Thread
    +关注

    关注

    31

    文章

    1285

    浏览量

    40085
  • OneNET
    +关注

    关注

    1

    文章

    51

    浏览量

    12800
收藏 人收藏

    评论

    相关推荐

    【英飞凌PSoC 6 RTT开发板试用】通过软件和硬件I2C接口获取数字温湿度传感器SHT30的数据

    。本文使用的开发环境为RT-Thread Studio,设备上运行的是RT-Thread实时系统。本文主旨在于,介绍如何在PSoC开发板上使用软件I2C和硬件硬件I2C驱动外设。
    的头像 发表于 07-11 09:21 3458次阅读
    【英飞凌<b class='flag-5'>PSoC</b> <b class='flag-5'>6</b> RTT开发板试用】通过软件和硬件I2C接口获取数字<b class='flag-5'>温湿度</b>传感器SHT30的数据

    怎么设计种基于Psoc6的家庭温湿度检测系统

    该项目旨在设计和构建基于家庭物联网的温湿度检测系统,以提供家庭环境的温湿度监测和警报功能。
    发表于 07-31 14:41 439次阅读
    怎么设计<b class='flag-5'>一</b>种基于<b class='flag-5'>Psoc6</b>的家庭<b class='flag-5'>温湿度</b>检测<b class='flag-5'>系统</b>?

    使用RT-Thread和CPK-RA2L1采集DHT11温湿度

    本篇文章主要介绍使用RT-Thread Studio 和瑞萨 CPK-RA2L1评估板,使用大佬的轮子采集温湿度
    的头像 发表于 10-11 11:34 1607次阅读
    使用<b class='flag-5'>RT-Thread</b>和CPK-RA2L1采集DHT11<b class='flag-5'>温湿度</b>

    采用数字温湿度传感器的多点温湿度报警系统设计

    构成  1.1 系统原理  实验室多点温湿度报警系统原理框图如图1所示,由低性价比单片机对数字温湿度传感器控制,通过模拟温度传感器通讯时序,
    发表于 11-13 10:53

    RT-Thread作品秀】精选作品集,来看看大佬是怎么玩转RT-Thread

    仓库温湿度数据的采集、上传和本地存储并在数据异常时发出警报,上位机用于实时显示本地终端上传的数据。上位机和本地终端间的数据传递通过云服务器完成。4、基于RT-Thread的室内温湿度检测器这是基于
    发表于 05-26 16:46

    怎样去搭建种基于rt-thread操作系统的迷你时钟

    本文中作者基于rt-thread操作系统搭建了迷你时钟,用来显示时间和温湿度rt-thread
    发表于 08-03 06:28

    如何去实现种基于STM32和DHT11的温湿度测量和报警系统

    DHT11数字温湿度传感器的特点是什么?如何去实现种基于STM32和DHT11的温湿度测量和报警系统
    发表于 09-29 07:31

    基于RT-Thread和N32G457的智慧家庭

    作品出处:RT-Thread作者:此生何用声声叹本项目是基于国民芯片N32G457,和RT-thread操作系统开发的智慧家庭。由于万物互联深入人心,于是便有了把自己的家庭也做成
    发表于 04-18 15:21

    基于RT-Thread + MicroLab,零基础做温湿度监控上位机

    GND board上带在DHT11温湿度传感器,RT-Thread有相应的软件包,直接利用简单快捷。在RT-Thread studio添加DHT11的软件包。
    的头像 发表于 08-03 15:41 3614次阅读

    Art_Pi学习笔记8:使用AHT10温湿度模块

    参考链接:RT-Thread Studio入门(6)— 采集温湿度数据_Willliam_william的博客-CSDN博客[链接]
    发表于 01-25 17:57 1次下载
    Art_Pi学习笔记8:使用AHT10<b class='flag-5'>温湿度</b>模块

    基于RT-Thread的家庭智能家居系统的控制平台设计

    这个系统是在英飞凌Psoc6-evaluationkit-062S2开发板的基础上,充分利用了RT-Thread实时操作系统强大的功能及丰富的软件生态,驱动ESP8266、OLED屏幕
    发表于 07-18 16:23 1017次阅读
    基于<b class='flag-5'>RT-Thread</b>的家庭智能家居<b class='flag-5'>系统</b>的控制平台设计

    怎么设计种基于RT-Thread和infineon开发板的智能家居系统

    本次设计基于RT-Thread和infineon PSoC™ 62 with CAPSENSE™ evaluation kit开发板,实现
    发表于 07-22 14:56 492次阅读
    怎么设计<b class='flag-5'>一</b>种基于<b class='flag-5'>RT-Thread</b>和infineon开发板的智能家居<b class='flag-5'>系统</b>?

    基于PSOC6开发板构建的智能小车

    本项目是基于Psoc6-evaluationkit-062S2开发板构建的智能小车。该开发板由RT-Thread与英飞凌联合推出,集成了颗32位双核CPU子系统,包括150MHz的A
    发表于 07-28 15:14 794次阅读
    基于<b class='flag-5'>PSOC6</b>开发板构建的智能小车

    如何设计种基于PSOC6的人体交互式智能家居系统呢?

    Psoc6-evaluationkit-062S2 是 RT-Thread 联合英飞凌推出的款集成 32 位双核 CPU 子系统( ARM Cortex-M4 和 ARM Corte
    的头像 发表于 07-28 16:02 1033次阅读
    如何设计<b class='flag-5'>一</b>种基于<b class='flag-5'>PSOC6</b>的人体交互式智能家居<b class='flag-5'>系统</b>呢?

    基于RT-threadPsoc6实现的多线程mpu6050读取及显示

    这次RT-thread官方主办的大学生夏令营活动,我们组使用的是Psoc6开发板,这个板子的主控是英飞凌,这个板子的的介绍在RTT的官方文档里面有。
    的头像 发表于 07-31 15:42 1164次阅读
    基于<b class='flag-5'>RT-thread</b>和<b class='flag-5'>Psoc6</b><b class='flag-5'>实现</b>的多线程mpu6050读取及显示