龍祖連 寧愛民 幸敏
摘要:本設(shè)計(jì)是通過Arduino開發(fā)板將溫濕度傳感器(DHT11)對土壤溫濕度信息的采集,然后將采集到的信息經(jīng)過藍(lán)牙模塊傳輸?shù)轿覀冎谱鞯氖謾C(jī)App中,從而實(shí)現(xiàn)我們對植物澆水的遠(yuǎn)程自動或手動管理。
關(guān)鍵詞:Arduino;App Inventor;DHT11傳感器
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)22-0063-02
1 設(shè)計(jì)原理
1)設(shè)計(jì)背景:我們的家庭經(jīng)常種植一些盆景,給我們的生活增添一些綠色;但是在對這些植物的管理,有時候都被我們忽略(比如澆水),從而導(dǎo)致一些植物生長不好或是死亡。基于這個問題,我們設(shè)計(jì)了“植物管家”系統(tǒng),來解決這個問題。
2)工作原理:傳感器當(dāng)檢測到植物土壤的信息(及土壤的濕度和溫度)時,并將信息通過我們的Arduino開發(fā)板經(jīng)藍(lán)牙模塊傳輸?shù)轿覀兊氖謾C(jī)上,我們就可以實(shí)時監(jiān)測到植物土壤的情況;同時我們的Arduino開發(fā)板在對我們的傳感器采集到的信息進(jìn)行分析,等待我們手機(jī)App發(fā)出命令控制對植物澆水或關(guān)水;當(dāng)我們Arduino開發(fā)板接收到命令后就開始對澆水裝置進(jìn)行控制澆水或關(guān)水,從而使我們的植物生長在適宜的土壤環(huán)境,健康成長。設(shè)計(jì)框圖:如圖1所示。
2 硬件設(shè)計(jì)
在本系統(tǒng)中我們選擇的是Arduino開發(fā)板,作為主控的系統(tǒng),它是一個開源,對于做創(chuàng)新創(chuàng)意或電子DIY的之類的電子產(chǎn)品,相當(dāng)方便;它提供了很多函數(shù)庫給我們選擇使用,使用C語言編程,容易理解。在信息采集部分,我們選擇了DHT11溫濕度傳感器,它是集成溫度與濕度一起的,接線簡單,測量范圍(濕度:20-90%RH,溫度:0-50°C),合適在我們的設(shè)計(jì)的系統(tǒng)中使用。在無線傳輸方面,我們選擇的是藍(lán)牙模塊來進(jìn)行傳輸,藍(lán)牙模塊是低功耗,只要手機(jī)開啟藍(lán)牙就可以連接,不需要其他中間介質(zhì)。澆水裝置,我們通過繼電器來控制水泵開與關(guān)。電源部分,整個“植物管家”系統(tǒng)設(shè)計(jì)是按低功耗來設(shè)計(jì)的,因此我們使用的電池供電即可。
3軟件設(shè)計(jì)
3.1 DHT11傳感器數(shù)據(jù)的采集
DHT11與微處理器之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時間4ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體格式在下面說明,當(dāng)前小數(shù)部分用于以后擴(kuò)展,現(xiàn)讀出為零。操作流程如下:
一次完整的數(shù)據(jù)傳輸為40bit,高位先出。
數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)
+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)
+8bit校驗(yàn)和
數(shù)據(jù)傳送正確時校驗(yàn)和數(shù)據(jù)等于“8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)”所得結(jié)果的末8位。用戶MCU發(fā)送一次開始信號后,DHT11從低功耗模式轉(zhuǎn)換到高速模式,等待主機(jī)開始信號結(jié)束后,DHT11發(fā)送響應(yīng)信號,送出40bit的數(shù)據(jù),并觸發(fā)一次信號采集,用戶可選擇讀取部分?jǐn)?shù)據(jù)。從模式下,DHT11接收到開始信號觸發(fā)一次溫濕度采集,如果沒有接收到主機(jī)發(fā)送開始信號,DHT11不會主動進(jìn)行溫濕度采集。采集數(shù)據(jù)后轉(zhuǎn)換到低速模式。
3.2 手機(jī)端“植物管家”App的設(shè)計(jì)
在手機(jī)App的設(shè)計(jì),我們采用的是App Inventor。App Inventor 是由Google實(shí)驗(yàn)室所設(shè)計(jì),由來自麻省理工學(xué)院(MIT)有“App Inventor 之父”之稱的哈爾艾貝爾森教授及其團(tuán)隊(duì)負(fù)責(zé)主導(dǎo)開發(fā)。它以圖形化界面為主要特色,是一種簡單、快速開發(fā)Android的應(yīng)用程序的開發(fā)平臺。主要面向沒有程序設(shè)計(jì)基礎(chǔ)、想快速學(xué)會移動應(yīng)用程序設(shè)計(jì),以及想迅速開發(fā)出App的初學(xué)者。App Inventor 最大的特點(diǎn)是不需要編寫代碼,開發(fā)程序就如拼圖、堆積木般簡單,能夠幫助讀者快速完成專屬的、能夠運(yùn)行在模擬器、Android手機(jī)或平板電腦,App Inventor易學(xué)、易用、有助于鍛煉邏輯思維,是幫助移動開發(fā)初學(xué)者的好工具。
1)植物管家App界面設(shè)計(jì)
我們通過App Inventor設(shè)計(jì)界面如下圖2所示。
1)搜索藍(lán)牙的設(shè)計(jì)
在界面設(shè)計(jì)中用列表選擇框1來設(shè)計(jì)我們的搜索藍(lán)牙功能,程序設(shè)計(jì)如下圖3所示。
3)連接藍(lán)牙的設(shè)計(jì)
在界面設(shè)計(jì)中用按鈕1來設(shè)計(jì)我們藍(lán)牙的連接,在“連接藍(lán)牙”按鈕行為設(shè)計(jì)里增加了兩個行為;一是藍(lán)牙連接時啟動定時器;二是藍(lán)牙斷開時,關(guān)閉定時器;如下圖4所示。
4)澆水模式選擇設(shè)計(jì)
設(shè)計(jì)界面的時候,我們用按鈕2表示“自動澆水”,當(dāng)按鈕按下時,App像手機(jī)發(fā)送一個數(shù)字0,當(dāng)Arduino板子經(jīng)過藍(lán)牙模塊接收到字符0的時候,就自動對比我們設(shè)置好的濕度值,檔低于我們設(shè)置的濕度值,就去控制我們的水泵開始工作一定的時間;當(dāng)高于我們設(shè)置的濕度值,就控制水泵停止工作。設(shè)計(jì)編程如下圖5所示。
總結(jié),我們對設(shè)計(jì)好的植物管家系統(tǒng)進(jìn)行測試,在手機(jī)App端可以顯示相應(yīng)的數(shù)據(jù),同時也可以實(shí)現(xiàn)手機(jī)端的操控,達(dá)到我們的設(shè)計(jì)效果。
參考文獻(xiàn):
[1] 趙志.Arduino開發(fā)實(shí)戰(zhàn)指南[M].北京:機(jī)械工業(yè)出版社,2016.
[2] 謝作如,鄭詳,張潔.跟我學(xué)AppInventor 2[M]. 北京:清華大學(xué)出版社,2017.