2021愛智先行者 自動化房屋能源控制核心

2022-09-10 02:54:09 字數 2778 閱讀 2937

​ 冬天到了,早上醒來懶得出被窩,但是為了大家,我還是抵抗住了寒冷,冒著生命危險給大家準備了這一期的文章,就衝這一點值不值得你們給我乙個贊o(´^`)o,當然,這麼久了,知道你們不見貨是不會點讚的,那我還是先乾為敬,你們隨意。

​ 之前做了這麼多鋪墊,現在終於到了收束的時刻!這一定是石頭門的選擇!在之前的文章裡我分別完成了光照感測器,遠端燈控開關,人體存在感測器,遠端空調遙控器。今天所有的細線已經串成了一條,計畫至此進入最終階段!今天將帶大家完成我們的自動化房屋能源控制核心!

我這邊的話也已經把我家裡的乙個房間改造了一下,效果還是不錯的。可以根據房間人員檢測自動進行控制空調和燈光。當然,冬天了,可能很多人睡覺都不願意下床去開關燈或者空調啥的,這裡應用也提供了手動模式進行控制燈光和空調的功能,讓你在被窩裡玩手機也可以控制。

光照感測器

燈光開關控制

人體檢測感測器

紅外學習模組(空調遙控器)

天太冷了,敲著手疼,這裡就簡短介紹一下。

實現這個場景的目的主要是為了減少一下家裡的用電(畢竟家裡有好幾個空調和大燈)

應用的實現思路大致就是以下邏輯了:

首先光照感測器會定時去獲取最新實時資料,接著當人體感應器檢測到人體變化時會進行邏輯處理,如果在控制時間段內,這時候房間內沒人了,會去開啟關閉空調和燈光的定時器。在定時器時間段內,如果房間再次出現人,則移除定時器處理(因為可能有人去上了個廁所就回來了)。否則在定時器觸發時候,房間依然沒有人,這時候會先去關掉空調,然後再去比對光照感測器資料,檢測當前室內燈是否開啟,如果開啟,則回去關掉房間內的所有燈裝置。

注意:這裡需要利用光照感測器,因為我這邊的燈光控制裝置無法儲存狀態,所以需要對比光照,同時我這邊的燈光控制生效時間一般設定的是晚上的時候,所以說還是有點瑕疵的。

​ 由於這個場景比較綜合複雜,在寫**時候有很多需要注意的點。這裡就簡單的講一下**。

​ 和之前的一系列一樣,用的是jsre的乙個device模組,主要用來去獲取裝置傳遞給愛智的資訊,同時也是應用通過愛智向裝置傳送指令的途徑。

​ 首先這邊光照和溫度感測器的資料不是主動上報的,而是把這部分的邏輯讓愛智應用去分擔,這樣我的裝置就可以更加輕便,所以我這邊應用後端新增了定時器去定時獲取最新的資料狀態。

switch (type) );

}, 5 * 1000);

break;

case 'temp-sensor':

times[devid] = setinterval(() => );

}, 30 * 60 * 1000);

break;

default:

break;

}

而這邊獲取到資料之後,就會對資料進行相應的處理,由於**量比較大,所以處理的**這邊就簡單講一下;

在獲取到光照和溫度的值後,將資料同步到前端,同時儲存日誌;

主要邏輯是當檢測到人體感應變化時候,會去對空調和燈光進行控制,這裡需要進行控制時間段的處理和延遲響應處理。

value = data.data['micro_state'] === 'on';

// 狀態存入日誌中

if (data.method === 'report') 】中檢測$人!`);

}// 控制空調和燈光

if (value) `]);

cleartimeout(roomtimes[`light-$`]);

roomtimes[`ac-$`] = undefined;

roomtimes[`light-$`] = undefined;

} else `] === undefined && roomtimes[`light-$`] === undefined) } = room;

devids.map((item) => else if (type === 'light-control')

}});

if (ac_devids.length) `] = settimeout(() => );

});// s**elog(room_id, 'operation', `房間【$】空調被關掉了!`);

}, 30 * 1000);

}} else `] = settimeout(() => );

});// s**elog(room_id, 'operation', `房間【$】空調被關掉了!`);

}, 30 * 1000);}}

}if (light_devids.length) `] = settimeout(() => );

});// 儲存操作日誌

s**elog(room_id, 'operation', `房間【$】燈被關掉了!`, 'success');

}}, 30 * 1000);

}} else `] = settimeout(() => );

});// 儲存操作日誌

s**elog(room_id, 'operation', `房間【$】燈被關掉了!`, 'success');

}}, 30 * 1000);}}

}}

}

這裡的話不太方便給大家演示現場,直接給大家看一下實現的應用的場景吧。

​ 今天把之前的所有裝置給整合到一起了,效果還是不錯的。簡直是我這種經常忘記關家電的笨蛋,不想起床關燈和空調的懶鬼,但是又捨不得電費的窮鬼的救星,哈哈哈哈。

​ 我的手已經失去知覺了,太冷了,幸好本人養了倆只貓,冬天到了,剛好可以當暖手寶︿( ̄︶ ̄)︿,今天就到這就草草結束吧,我去選個暖手寶暖暖手。

汽車LiDAR的「先行者」 機械式LiDAR

機械式lidar是指其發射系統和接收系統存在巨集觀意義上的轉動,也就是通過不斷旋 射頭,將速度更快 發射更準的雷射從 線 變成 面 並在豎直方向上排布多束雷射 即32線或64線雷達 形成多個面,達到動態3d掃瞄並動態接收資訊的目的。機械式lidar拉開自動駕駛的序幕 2012年5月,谷歌 googl...

哪些行業會是面向服務架構(SOA)的先行者

一項突破性技術產生後,總要有第一批勇於 吃螃蟹 的先行者來示範。這個道理應該同樣對 soa適用,所以一直在思考和留心這個問題,哪些行業會是 soa的先行者?隨著 soa實際部署專案的逐漸增加,答案也慢慢浮出水面。最近,forrester 出了乙份 關於亞洲soa在各個行業應用情況的研究報告 asia...

激動 《贏在測試 中國軟體測試先行者之道》

今天睡了個懶覺,起來開啟google reader看到一本關於測試的新書 贏在測試 中國軟體測試先行者之道 很激動,因為第九章是華姐的 服務的心 相信這本書會對所有測試的同行有所啟示,因為那些都是非常寶貴的經驗。這裡有一篇別人寫的讀後感 書中被採訪者之一 如何成為乙個優秀的測試工程師 內容簡介 本書...