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

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

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

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

圖4:APP 界面圖
本產品是是由java 開發的APP,通過藍牙控制Arduino 開發板,從而控制米桶并且監測米的余量的米桶的設計,由Arduino 開發板采集需要的數據傳輸到手機并從APP 頁面顯示,稱重模塊壓力傳感器發送信號控制電機擋板關閉,在功能方面實現:控制米量輸出,檢查米的存量,彈出信號提示等。設計打破傳統米桶功能的單一性,使米桶更智能化,進而使得生活更加智能化。