基于物聯(lián)網(wǎng)的智能冰箱設(shè)計與實現(xiàn)
(2)GPRS 實現(xiàn)過程
當(dāng)收到數(shù)據(jù)庫對比后請求購物的清單,通過QT 運(yùn)行以C++代碼編寫的GPRS 程序。首先從QT 里得到需要發(fā)送到客戶的信息數(shù)據(jù), 然后用OnBnClickedBtnOpen () 配置RS-232 串口連接配置GPRS, 等待GPRS 連接成功。
當(dāng)連接成功后GPRS 會返回AT+OPENAT=MODE:3# 數(shù)據(jù)確認(rèn)連接成功。然后通過OnBnClicked -BtnSend (string) 這個函數(shù)發(fā)送信息到GPRS, 然后GPRS 會根據(jù)信息內(nèi)容發(fā)送到客戶的手機(jī)內(nèi)。發(fā)送成功后GPRS 會待機(jī)5 分鐘等待客戶發(fā)送回復(fù)確認(rèn)購買。
倘若5 分鐘內(nèi)客戶尚未回復(fù)確認(rèn)購買, 則會自動取消這次食物的購買并且斷開與GPRS 連接; 若5 分鐘內(nèi)客戶回復(fù)確認(rèn)購買, 則程序會返回一個確認(rèn)購買的信息并且斷開GPRS 連接。
圖8 GPRS 算法流程圖
圖9 壓力傳感器算法流程圖
(4)控溫實現(xiàn)過程
由于PXA270 外接插口問題, 溫度傳感器基于單片機(jī)操作,不需要嵌入PAX270 開發(fā)板上。溫度傳感器會伴隨著冰箱的啟動而啟動。當(dāng)溫度傳感器測到的數(shù)據(jù)發(fā)送給單片機(jī)時, 單片機(jī)會先將冰箱內(nèi)的溫度與設(shè)置的冰箱的溫度對比, 若高于冰箱的溫度則開啟制冷裝置。制冷期間也不斷測量先冰箱的溫度并且比較設(shè)定的冰箱溫度值;若小于等于冰箱的設(shè)定的溫度值則關(guān)閉制冷裝置。單片機(jī)繼續(xù)接受從溫度傳感器傳來的冰箱的溫度并且比較設(shè)定的冰箱溫度值以準(zhǔn)備隨時開啟制冷保持冰箱的溫度。當(dāng)冰箱斷電時候單片機(jī)才會停止運(yùn)行直接冰箱通電后再次開啟并從頭初始化單片機(jī)。
圖10 控溫算法流程圖
(5)網(wǎng)上購物過程
在這一過程中, 我們指定了冰箱能夠直接訪問的物聯(lián)網(wǎng)超市網(wǎng)站,從而進(jìn)行對接。因此,我們本項目中,自己搭建了一個購物網(wǎng)站(ASP),為的就是與該類產(chǎn)品進(jìn)行交互。通過調(diào)用系統(tǒng)自帶的頭文件wininet.h>中函數(shù)HINTERNET InternetOpenUrl()來打開一個完整的FTP、Gopher 或HTTP 網(wǎng)址的資源, 從而可以獲取商品相關(guān)信息。
另外,用戶需要登錄購物網(wǎng)站才能實現(xiàn)下單操作,這里, 我們默認(rèn)每臺智能冰箱都配有一個專用的賬號來綁定登錄,通過POST 方式提交頁面。當(dāng)冰箱登錄成功后,可以實現(xiàn)購買商品并下單。
(6)數(shù)據(jù)庫實現(xiàn)
通過SQLite, 冰箱保存著食物的各種資料以便于查找。
表4 NowTab1
NowTab1 保存著上一次冰箱的食物表格, 方便于與這次RFID 讀取到得數(shù)據(jù)比對其中的變化,并且適當(dāng)刪除或者添加NowTab1 數(shù)據(jù)以便下一次的對比, 也可以顯示出現(xiàn)冰箱內(nèi)有的食物。
表5 HistoryTab3
HistoryTab3 保存著從冰箱曾經(jīng)存放過的食物,以便于客戶可以查找曾經(jīng)買過的食物。
表6 SureTab2
SureTab2 保存著冰箱基本需求的食物表。這表是為了確認(rèn)如果NowTab1 表的食物缺少一定量時跟SureTab2 對比,某食物缺少了超過界限時,就會啟動購物程序并且購買缺少的食物防止冰箱食物缺少。
表7 NameTab4
評論