關(guān)志明 蔡園星 鄒蘇楠
(廣東科學(xué)技術(shù)職業(yè)學(xué)院,廣東 珠海 519090)
水稻是我國最重要的糧食作物之一。水稻加工后成為大米,我們平常都會用袋子或米桶來儲存大米,這里面可能就隱藏著先前大米中的蟲卵,到了適宜的溫度下,尤其是在炎熱潮濕的夏季,這些蟲卵到達(dá)了所需的條件,也就開始孵化生蟲。
當(dāng)大米受潮后,水分活度值升高,霉菌和蟲卵就會吸收大米中的水分進(jìn)而分解和使用大米中的營養(yǎng)成分,然后,我們的大米也就開始霉變。
霉變的大米往往呈現(xiàn)的是淡黃色,經(jīng)查找資料后得知,那是黃曲霉,它是有島青霉、桔青霉、黃綠青霉的有毒代謝物的統(tǒng)稱。而黃曲霉素是一級致癌物。
以此,為了解家庭米的存儲問題,本文設(shè)計了“米童子”,存儲米的容器,同時添加了抽出式通風(fēng)設(shè)計,保證米的通風(fēng)性,通過手機(jī)APP 到產(chǎn)品的聯(lián)系,實現(xiàn)智能化存儲米。
整體結(jié)構(gòu)
容器采用硬度和韌度高、三維結(jié)構(gòu)穩(wěn)定的PET 材料。使用擴(kuò)展板,集成開關(guān)、壓力傳感器,電機(jī)、風(fēng)機(jī)等硬件功能,手機(jī)通過續(xù)電器來控制容器的電機(jī)開關(guān)、出米量。米通過風(fēng)機(jī)制造的氣流被吸上出口,壓力傳感器感知出米的重量并關(guān)閉電機(jī)開關(guān),壓力傳感器同時感知米的剩余量,當(dāng)米儲量為空,返回一個信號并提示加米。當(dāng)風(fēng)機(jī)工作時,米從底部往上抽,存在一個臨時的空間并由傳感器稱重,當(dāng)重量達(dá)到需求量時,風(fēng)機(jī)停止工作,電機(jī)打開,米從臨時空間出去。如圖1 所示:

圖1:米桶截面圖
風(fēng)機(jī)工作時,米從吸嘴進(jìn)入管道、濾米系統(tǒng),進(jìn)入風(fēng)機(jī)。通過電機(jī)內(nèi)部通道冷卻電機(jī)后,把空氣排放。由于氣流到電機(jī)會產(chǎn)生局部真空度損失,在實際應(yīng)用中,風(fēng)機(jī)的真空度H 與風(fēng)量Q 隨著吸口的面積變化而相應(yīng)變化,當(dāng)電機(jī)風(fēng)量最大Qmax,真空指數(shù)為零,此時效率最低。實驗表明,電風(fēng)機(jī)的最高效率在1/2Hmax 和1/2Qmax附近。可選擇H=(0.5~ 0.6)Hmax、Q=(0.4~0.52)Qmax。在萬能電路板上焊接Arduino 板和繼電器,繼電器通過萬能電路板與Arduino 板連接,Arduino 板BLE藍(lán)牙模塊使用時與被控制的風(fēng)機(jī)連接,通過BLE 藍(lán)牙模塊檢測信號,利用Arduino 控制器來控制風(fēng)機(jī)啟停。
該模塊使用壓力傳感器對米的重力進(jìn)行數(shù)據(jù)化,Arduion UNO 實現(xiàn)數(shù)據(jù)處理,HX711傳感器對數(shù)據(jù)化的重量進(jìn)行A/D轉(zhuǎn)換,轉(zhuǎn)換后對數(shù)據(jù)送達(dá)Arduion UNO進(jìn)行處理。稱重作用的實現(xiàn)是通過壓力傳感器采集到米的重量并將其轉(zhuǎn)換成電信號,輸出電壓信號通常很小,需要通過前端信號處理電路進(jìn)行準(zhǔn)確的線性放大。原理:V1=V2*W。其中:V1 表示滿量程輸出電壓;V2 表示激勵電壓;W 表示靈敏度。AVDD=VBG*(R1+R2)/R2,由此計算壓力傳感器的電壓AVDD。將A/D 值逆轉(zhuǎn)為重力值,把數(shù)據(jù)通過藍(lán)牙傳輸?shù)绞謾C(jī)上。臨時空間稱重模塊與電機(jī)擋板通過壓力傳感器發(fā)出的信號進(jìn)行通信,可以控制擋板的關(guān)閉。
本系統(tǒng)使用雙極步進(jìn)電機(jī),電機(jī)與擋板設(shè)計是將步進(jìn)電機(jī)與擋板連接,采用步進(jìn)電機(jī)帶動擋板齒輪的方式,利用步進(jìn)器可以正反兩個方向旋轉(zhuǎn)的特性,實現(xiàn)擋板的升降。Arduino 開發(fā)板與步進(jìn)電機(jī)驅(qū)動芯片連接,當(dāng)臨時空間的稱重模塊檢測到重量時,發(fā)送信號至電機(jī)Arduino 開發(fā)板,由Arduino 開發(fā)板發(fā)出脈沖信號使步進(jìn)電機(jī)正向運作帶動擋板齒輪,使擋板下降關(guān)閉。容器邊設(shè)有擋板凹槽,使擋板關(guān)閉時與容器貼合更緊密。臨時空間稱重模塊測量出所需求米的重量時,通過藍(lán)牙模塊把數(shù)據(jù)發(fā)送到手機(jī),手機(jī)控制電機(jī)Arduino 開發(fā)板發(fā)出脈沖信號使步進(jìn)電機(jī)反向運作帶動擋板齒輪,使擋板開啟,米從臨時空間出去。
為了避免風(fēng)機(jī)工作時,米粒進(jìn)入風(fēng)機(jī)內(nèi)部造成機(jī)器損壞。在風(fēng)機(jī)口處加裝濾網(wǎng)裝置,本產(chǎn)品使用8 目篩孔尺寸:2.00mm——標(biāo)準(zhǔn)目數(shù):10 目的濾網(wǎng),以圓臺型安裝在風(fēng)機(jī)口處,該濾網(wǎng)為可拆卸式,方便維修與清潔。
“米童子”APP 系統(tǒng)(如圖2 所示)利用藍(lán)牙4.0 與手機(jī)APP 建立起的通信協(xié)議來控制Arduion UNO 開發(fā)板,進(jìn)而控制續(xù)電氣的開關(guān)。藍(lán)牙4.0 的特點是超低的運行功耗和待機(jī)功耗,一小塊電池就可以使它超強(qiáng)待機(jī),所以建立的網(wǎng)絡(luò)也是低功耗的。使用擴(kuò)展板,集成開關(guān)、壓力傳感器,電機(jī)、風(fēng)機(jī)等硬件功能。手機(jī)通過續(xù)電器控制開關(guān),壓力板通過米的重量返回信號,通過藍(lán)牙的信號傳輸顯示在手機(jī)上。

圖2:APP 結(jié)構(gòu)設(shè)計圖
開發(fā)環(huán)境為eclipse,這是個對新手友好,并且開源免費的開發(fā)環(huán)境。采用開發(fā)手機(jī)應(yīng)用的 安卓平臺Arduino UNO 和XML 作為輔助進(jìn)行的“米童子”手機(jī)APP 的開發(fā)。采用操作簡捷、語法簡單、發(fā)展成熟、具有很大靈活性、可跨平臺運行的java編程語言。安卓操作系統(tǒng)是基礎(chǔ)java 開發(fā)的操作系統(tǒng),對java 開發(fā)的App 有著良好的操作體驗。在編寫java 語言中,完成了開關(guān)顯示與設(shè)置、余米顯示、輸入功能、藍(lán)牙連接提示功能以及余米不足時的警報功能,集這寫功能為一體,完成整個APP 功能的設(shè)計。
開啟一個線程,這個線程主要是建立一個端口。
這里做了兩件事,一是通過UUID 建立端口,第二是新建了另一個線程。
值得注意的是,UUID 含義是通用唯一識別碼,是一種用作識別一些硬件設(shè)備的編號,這里的UUID 在客戶端和服務(wù)端必須是同一個,不然無法建立連接!這里使用默認(rèn)MY_UUID
通過IO 流進(jìn)行信息傳輸獲得。
服務(wù)端主要的操作便是開啟一個服務(wù)端口,然后等待連接訪問。
藍(lán)牙通訊是建立一個端口通訊的過程。而且IO 通訊在服務(wù)端完全可以通用,在demo 中可將這兩部分用同一個接口來實現(xiàn)。
主控板將擴(kuò)展板上壓力傳感器處理的數(shù)據(jù)返回藍(lán)牙芯片,利用虛擬串口,將數(shù)據(jù)傳遞給手機(jī)藍(lán)牙并進(jìn)行接收,最后由手機(jī)端的界面上顯示相應(yīng)參數(shù)的變化。
藍(lán)牙連接過程。
我們將藍(lán)牙模塊與主控板連接,藍(lán)牙模塊與安卓手機(jī)端配對,使用應(yīng)用程序?qū)?shù)據(jù)從手機(jī)發(fā)送到藍(lán)牙模塊,通過主控板從藍(lán)牙模塊讀取數(shù)據(jù),最后顯示數(shù)據(jù)并控制基于數(shù)據(jù)。我們這里使用BLE 藍(lán)牙模塊,BLE 藍(lán)牙模塊是一種基于藍(lán)牙協(xié)議的簡單無線通信設(shè)備。藍(lán)牙設(shè)備分為主從兩種模式,一個是主機(jī)模式,一個是從機(jī)模式。作為主設(shè)備時,它可以查找和連接其它設(shè)備;作為從設(shè)備時只能被其它設(shè)備連接;本系統(tǒng)以移動終端作為主設(shè)備,以BLE 藍(lán)牙模塊作為從設(shè)備。通訊模式分為兩種模式:透明傳輸、AT 命令模式。本系統(tǒng)運用AT 命令模式,我們用主板進(jìn)行設(shè)置AT 命令模式,進(jìn)入 AT 模式設(shè)置藍(lán)牙的接線如下:Arduino 5V 端口連接VCC,Arduino GND 端口連接GND,Arduino Pin3 端口連接TXD,Arduino Pin4 端口連接RXD。我們可以通過USB-TTL 模塊將藍(lán)牙BLE 與電腦連接,在保證該模塊沒有被連接的情況下對藍(lán)牙BLE模塊設(shè)置AT 指令。
當(dāng)移動端、藍(lán)牙、Arduion UNO 開發(fā)板達(dá)成通訊協(xié)議后,手機(jī)APP 便可以通過藍(lán)牙控制開發(fā)板。人在手機(jī)APP 輸入出米重量,然后點擊執(zhí)行,風(fēng)機(jī)便開始運轉(zhuǎn),把米從底部往上抽,抽到一個臨時存米的空間。臨時空間的壓力傳感器會稱重米的重量,當(dāng)米達(dá)到輸入的數(shù)值后,返回一個信號,讓電機(jī)停止工作,并于APP 界面中顯示工作已完成,如圖3 所示APP 工作流程圖:

圖3:APP 工作流程圖
手機(jī)進(jìn)入“米童子”APP 后,如果沒有打開藍(lán)牙,則APP 將會提示打開藍(lán)牙。打開藍(lán)牙后就開始搜索設(shè)備,彈出“RiceChild”后,點擊便可實現(xiàn)手機(jī)與單片機(jī)的藍(lán)牙配對
APP 功能實現(xiàn)界面。
當(dāng)手機(jī)終端與Arduino 單片機(jī)藍(lán)牙即“Rice’Child”連通后,便可實行手機(jī)終端與硬件部分臺燈及單片機(jī)的通信。界面顯示中。右上角顯示藍(lán)牙是否連接,中間的“幾人吃飯”則是控制輸出米的重量,根據(jù)調(diào)查,一個成年人一次吃掉的大米在150g—200g 之間,所以這里的一人份輸出的大米設(shè)置為170g。下方為米的剩余量,當(dāng)米剩余量不足1kg 時,紅燈閃爍。下方為風(fēng)機(jī)開關(guān)。如圖4 所示:

圖4:APP 界面圖
本產(chǎn)品是是由java 開發(fā)的APP,通過藍(lán)牙控制Arduino 開發(fā)板,從而控制米桶并且監(jiān)測米的余量的米桶的設(shè)計,由Arduino 開發(fā)板采集需要的數(shù)據(jù)傳輸?shù)绞謾C(jī)并從APP 頁面顯示,稱重模塊壓力傳感器發(fā)送信號控制電機(jī)擋板關(guān)閉,在功能方面實現(xiàn):控制米量輸出,檢查米的存量,彈出信號提示等。設(shè)計打破傳統(tǒng)米桶功能的單一性,使米桶更智能化,進(jìn)而使得生活更加智能化。