前言:
為什么我首先想到要做廚房安全系統(tǒng)呢?廚房不僅是一個(gè)經(jīng)?;顒?dòng)的場(chǎng)所,而且是家中危險(xiǎn)系數(shù)最高的地方,您是否也有這樣的擔(dān)心,擔(dān)心家人忘記關(guān)掉煤氣、煲湯時(shí)忘記時(shí)間……一些小細(xì)節(jié)的疏忽大意,就可能危害到家庭的健康。
廚房智能監(jiān)控系統(tǒng)介紹:
該系統(tǒng)可以監(jiān)測(cè)廚房這樣需要特別關(guān)注安全的地方。設(shè)備具備多種傳感器接入,并且根據(jù)用途自由配置傳感器的種類。設(shè)備接入云平臺(tái),可以通過智能手機(jī)實(shí)時(shí)了解當(dāng)前狀態(tài),通過智能算法評(píng)估出安全系數(shù),來做出針對(duì)性的防護(hù)措施。并且還可以手動(dòng)作出修正處理。
智能廚房安全監(jiān)控三部分:
- 家庭衛(wèi)士通過多傳感器對(duì)廚房溫濕度、燃?xì)?、明火、煙霧進(jìn)行監(jiān)控;
- 通過算法對(duì)廚房各項(xiàng)環(huán)境數(shù)據(jù)進(jìn)行綜合評(píng)估分析,判斷險(xiǎn)情;
- 手機(jī)APP遠(yuǎn)程控制消防設(shè)備,處理危險(xiǎn)
軟件開發(fā)過程分析:
軟件開發(fā)由三部分組成:下位機(jī)單片機(jī)程序、云端建立、以及手機(jī)端APP開發(fā)。用機(jī)智云做平臺(tái)開發(fā)起來特別快,原因是有Gokit這樣的開發(fā)板,并且有豐富底層代碼范例的Dome程序。另外機(jī)智云建立云端數(shù)據(jù)的界面也特別友好,很適合入門者快速上手。還有最關(guān)鍵的是機(jī)智云有多個(gè)開源的手機(jī)APP的Dome源碼提供參考,大大降低了開發(fā)門檻。
- 下位機(jī)程序
下位機(jī)程序中單片機(jī)和WiFi模塊的通訊,以及WiFi模塊接入以太網(wǎng)的規(guī)則,官方代碼已經(jīng)給的很完善了,初學(xué)者完全可以繞開這一段直接進(jìn)行單片機(jī)開發(fā),就和大家通常在普通STM32平臺(tái)做功能一樣的。
這里需要提出比較關(guān)鍵的一點(diǎn)是代碼中的一個(gè)參數(shù):product key。這是我們的設(shè)備連接到機(jī)智云平臺(tái)哪一個(gè)云數(shù)據(jù)庫的唯一判斷依據(jù)。我們的開發(fā)板就是靠這個(gè)識(shí)別,來連接到你自己在機(jī)智云平臺(tái)簡(jiǎn)歷的數(shù)據(jù)接口的。這個(gè)product key是你建立屬于自己的云端空間時(shí)機(jī)智云系統(tǒng)分配給你的,這個(gè)接下來要說的。我們做下位機(jī)單片機(jī)程序時(shí),要把這個(gè)串碼寫進(jìn)去。
官方代碼把這個(gè)串碼做在一個(gè)宏里,位于Procotol.h文件里:
為了大家直接在開發(fā)板上調(diào)試方便,我從官方Dome程序簡(jiǎn)單修改了一個(gè)程序,大家可以下載下來測(cè)試。
下位機(jī)單片程序參考代碼詳見附件內(nèi)容。
注意:由于Gokit2開發(fā)板改版了,但是官方歷程還未更新,RGB燈那里的代碼需要做一些修改,具體位置是在hal_rgb_led.c文件里初始化RGB時(shí)需要把GPIOA0拉高:
- 云端建立
這需要在機(jī)智云官網(wǎng)上注冊(cè)一個(gè)賬號(hào),然后就可以建立一個(gè)屬于自己的云端數(shù)據(jù)空間了,簡(jiǎn)單四五個(gè)步驟就搞定,并且每一步都有指導(dǎo)說明,特別人性化,新手無痛入門!
1、首先要取一個(gè)云端設(shè)備名稱,這個(gè)名稱就是以后你手機(jī)APP上搜到的設(shè)備名稱,比如我們這里叫做:智能廚房3。當(dāng)搜到多個(gè)設(shè)備時(shí),我們可以以設(shè)備的MAC地址區(qū)分不同設(shè)備。
2、然后我們要選擇你所使用的開發(fā)板,并且選擇一個(gè)云端范例模板。這里機(jī)智云簡(jiǎn)直就做的是傻瓜模式,我們完全可以利用模板輕松改一個(gè)自己的云端數(shù)據(jù)空間。當(dāng)然也可以從新建議一個(gè),不過新手建議從模板來改。
3、接下來我們要在模板中修改適合自己的數(shù)據(jù),數(shù)據(jù)名稱需要和前邊下位機(jī)中給出的數(shù)據(jù)列表對(duì)應(yīng)起來,名稱需要完全一致,否則會(huì)導(dǎo)致對(duì)應(yīng)不上。
我們開發(fā)板用到的設(shè)備數(shù)據(jù)包括如下,云端建立數(shù)據(jù)時(shí),名稱和類型要和下面結(jié)構(gòu)體里定義的一樣:
4,最后設(shè)置完成之后提交,機(jī)智云就會(huì)分配給你一個(gè)屬于你自己的product key。我們需要把它更新到你的下位機(jī)單片機(jī)程序里。
- 手機(jī)app開發(fā)
這個(gè)因?yàn)橛泄俜介_源的Dome源碼,所以我們只要有一些安卓或者ios開發(fā)基礎(chǔ),就可以輕松的從官方Dome中改一個(gè)出來。如果僅僅是學(xué)習(xí)測(cè)試使用,甚至可以直接用官方給的IOE Dome測(cè)試,因?yàn)檫@個(gè)Dome里沒有都設(shè)備的product key進(jìn)行篩選,所以凡是接入到機(jī)智云的Gokit開發(fā)板在局域網(wǎng)里都能被這個(gè)Dome APP找到并連接。
這里給一個(gè)智能廚房的APP,大家可以連接到Gokit開發(fā)板測(cè)試一下。因?yàn)槭蔷唧w應(yīng)用的APP,所以對(duì)product key做了篩選,只識(shí)別連入智能廚房云端的在線設(shè)備。所以測(cè)試時(shí)Gokit開發(fā)板需要使用前面代碼里給的這個(gè)這個(gè)product key才可以。
APP測(cè)試中按如下對(duì)應(yīng)關(guān)系參考:
1溫濕度對(duì)應(yīng)Gokit開發(fā)板上的溫濕度傳感器,顯示溫濕度;
2火焰?zhèn)鞲衅?/a>對(duì)應(yīng)開發(fā)板上的紅外對(duì)管傳感器,用手遮擋時(shí)紅外對(duì)管時(shí),明火報(bào)警;
3換氣扇操作對(duì)應(yīng)開發(fā)板上的馬達(dá),打開換氣扇按鈕,馬達(dá)開始正轉(zhuǎn);
4插座開關(guān)對(duì)應(yīng)開發(fā)板的RGB LED中的紅燈,打開插座開關(guān)按鈕,紅燈亮。
安卓手機(jī)客戶端詳見附件內(nèi)容。