簡介
項目名稱:溫濕度傳感報警系統
設計思路:項目使用RT-Thread系統和PSOC6開發板,實現一個溫濕度報警系統。該系統通過wifi連接將數據上傳至OneNET云,后經過前端開發,可以使數據清晰的展示。并且在溫濕度高于或低于某一數值時,蜂鳴器就會報警。
項目的優勢:利用簡單的構建實現了對溫濕度的實時監控,操作簡單,成本較低。
流程圖
硬件部分
軟件部分
軟件包配置
.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();
...
}
項目功能
數據頁面展示
該項目實現了對溫濕度的實時監控,通過ATH10獲取溫濕度數據,利用rw007將數據上傳到onenet云端,通過前端開發將數據可視化。可以設定溫濕度上下限,當溫濕度不在范圍內時,蜂鳴器工作,進行報警。
-
定時器
+關注
關注
23文章
3248瀏覽量
114800 -
蜂鳴器
+關注
關注
12文章
891瀏覽量
45948 -
溫濕度傳感器
+關注
關注
5文章
579瀏覽量
35723 -
RT-Thread
+關注
關注
31文章
1289瀏覽量
40129 -
OneNET
+關注
關注
1文章
51瀏覽量
12806
發布評論請先 登錄
相關推薦
評論