【《基于STM32單片機(jī)的智能花架設(shè)計(jì)》10000字】_第1頁(yè)
【《基于STM32單片機(jī)的智能花架設(shè)計(jì)》10000字】_第2頁(yè)
【《基于STM32單片機(jī)的智能花架設(shè)計(jì)》10000字】_第3頁(yè)
【《基于STM32單片機(jī)的智能花架設(shè)計(jì)》10000字】_第4頁(yè)
【《基于STM32單片機(jī)的智能花架設(shè)計(jì)》10000字】_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

緒論1.1選題背景 隨著我國(guó)經(jīng)濟(jì)快速穩(wěn)定的發(fā)展,在物質(zhì)方面得到了極大的改善和豐富后,人們對(duì)生活質(zhì)量追求越來(lái)越高[1]。高樓越建越高,建筑密度變得越來(lái)越大,交通錯(cuò)綜復(fù)雜,城市化水平顯著提高。但是,許多問(wèn)題也接踵而來(lái),空氣污染、噪音污染、水資源污染、城市熱島效應(yīng)等各種各樣的生態(tài)問(wèn)題日益嚴(yán)重,可供綠化的土地稀缺,人們生活在缺少綠色的環(huán)境里。在如今快節(jié)奏的時(shí)代背景下[2],不同年齡段的人都面臨著各種各樣的壓力,人們對(duì)于緩解心理壓力的需求也更加迫切。 為了尋找緩解心理壓力的方法,人們把目光投向綠色植物,投向自然界,也就是我們?nèi)祟?lèi)誕生以來(lái)最熟悉的環(huán)境。自然療法有益于人的身心健康,但是在城市生活中我們很難接觸到大面積的綠色環(huán)境。所以人們對(duì)自然生態(tài)的渴求逐漸強(qiáng)烈[3],開(kāi)始在意自身居住環(huán)境的綠化,比如公園、花卉、盆栽等,讓我們即便身處城市也能感受到自然?,F(xiàn)在許多家庭和溫室大棚都種植各種植物,不僅可以美化環(huán)境、凈化空氣,還能讓人們?cè)诟邏旱纳鐣?huì)環(huán)境中緩解身心的疲憊。但是在城市的快節(jié)奏生活下,大多數(shù)人沒(méi)有太多的時(shí)間去打理植物。有時(shí)候也因?yàn)閷?duì)植物的生長(zhǎng)習(xí)性缺乏了解,不能按照特定的規(guī)律進(jìn)行澆水,導(dǎo)致植物生長(zhǎng)不好。 由于科學(xué)技術(shù)的飛速發(fā)展,使得上述問(wèn)題能夠得到解決,如采用單片機(jī)技術(shù)進(jìn)行自動(dòng)化控制。家庭以及工業(yè)種植中開(kāi)始應(yīng)用傳感器技術(shù)、嵌入式技術(shù)、自動(dòng)控制技術(shù),這些先進(jìn)的技術(shù)使得效率大大提高,讓機(jī)器來(lái)解決問(wèn)題,也降低了出錯(cuò)率。單片機(jī)還可以與互聯(lián)網(wǎng)相結(jié)合,使產(chǎn)品實(shí)現(xiàn)物聯(lián)網(wǎng),通過(guò)技術(shù)手段實(shí)現(xiàn)物與物的聯(lián)系。萬(wàn)物互聯(lián)成為未來(lái)發(fā)展的必然趨勢(shì),正在改變?nèi)藗兊纳頪4]。1.2選題意義 隨著我國(guó)產(chǎn)業(yè)結(jié)構(gòu)的不斷調(diào)整和種植業(yè)不斷發(fā)展,對(duì)環(huán)境的要求越來(lái)越嚴(yán)格,對(duì)智能化設(shè)備的要求也越來(lái)越高。目前,在家用方面的花架只有能自動(dòng)加水的花架,使用簡(jiǎn)單的自動(dòng)補(bǔ)水裝置,一臺(tái)裝置只能控制一盆,存在復(fù)雜、易碎、不易管理等缺點(diǎn),無(wú)法對(duì)不同的植物進(jìn)行養(yǎng)護(hù)和種值。在大規(guī)模的種植上,一般的農(nóng)戶大都數(shù)都是自己搭建較為簡(jiǎn)易的大棚,結(jié)構(gòu)簡(jiǎn)單、智能化較低、不能夠根據(jù)溫濕度變化進(jìn)行澆水,很難保證植物能在適宜的環(huán)境下生長(zhǎng)。而且在傳統(tǒng)方式下,植物的養(yǎng)護(hù)需要充足的時(shí)間和相關(guān)的知識(shí)。如果打理不當(dāng),不能按照不同植物的生長(zhǎng)習(xí)性和規(guī)律進(jìn)行澆水,很容易導(dǎo)致植物生長(zhǎng)不良甚至枯萎。雖然市場(chǎng)上也有某些大型企業(yè)制造的智能控制系統(tǒng),但是這些產(chǎn)品價(jià)格昂貴,大多數(shù)人難以負(fù)擔(dān)的起。而且對(duì)用戶也有一定的技術(shù)要求,需要能看懂相應(yīng)的操作手冊(cè),較為繁瑣。因此,研究一款操作簡(jiǎn)單、價(jià)格便宜、實(shí)用性強(qiáng)的智能花架具有極為重要的現(xiàn)實(shí)意義。它具有如下幾點(diǎn)意義:智能化。它利用單片機(jī)為核心控制器來(lái)實(shí)現(xiàn)檢測(cè)植物環(huán)境因素,對(duì)各個(gè)模塊進(jìn)行控制,整個(gè)過(guò)程無(wú)需人為干預(yù),并且精準(zhǔn)高效。節(jié)約資源。整個(gè)系統(tǒng)根據(jù)設(shè)置好的程序運(yùn)行,定時(shí)定量對(duì)植物進(jìn)行澆水,相比于人工能避免浪費(fèi)水資源。3、可大規(guī)模制造。整個(gè)系統(tǒng)僅使用單片機(jī)、外設(shè)模塊和花架構(gòu)成。成本低、 制造難度小,穩(wěn)定性強(qiáng)?,F(xiàn)在全球的種植業(yè)已經(jīng)發(fā)展到了一個(gè)新的高度,越來(lái)越多的自動(dòng)化技術(shù)應(yīng)用于種植業(yè)[5],而且種植業(yè)將不斷邁入智能化階段。未來(lái)在這一領(lǐng)域,還將快速發(fā)展并且擁有巨大的發(fā)展空間。1.3論文內(nèi)容與結(jié)構(gòu) 論文根據(jù)現(xiàn)實(shí)社會(huì)需要設(shè)計(jì)了智能花架,智能花架基于高性能的ARMCortex-M3處理器的STM32單片機(jī),通過(guò)外接傳感器、顯示屏、WIFI傳輸模塊等硬件,實(shí)現(xiàn)檢測(cè)溫濕度、實(shí)時(shí)顯示、澆水等目的。本文首先對(duì)現(xiàn)實(shí)的需求進(jìn)行分析,從而提出了設(shè)計(jì)智能花架的構(gòu)思,并進(jìn)一步研究,提出了相應(yīng)的解決方案。根據(jù)方案設(shè)計(jì)了智能花架的控制系統(tǒng)。最后通過(guò)實(shí)驗(yàn)表明,該智能花架方便有效,穩(wěn)定性好。 本文分為五個(gè)部分,共五章: 第一章:介紹了現(xiàn)實(shí)背景以及設(shè)計(jì)智能花架的意義。 第二章:介紹了系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)、硬件組成以及工作原理,包括STM32單片機(jī)的介紹;DHT11溫濕度傳感器的介紹與以及電路連接;FC-28土壤濕度傳感器的工作原理以及電路連接;LED的原理圖和電路連接;蜂鳴器的電路圖和連接;OLED顯示原理和電路連接方法;ESP8266WIFI模塊的引腳說(shuō)明和連接;STM32單片機(jī)和繼電器、水閥的電路連接。 第三章:介紹了系統(tǒng)軟件設(shè)計(jì)的主要流程,包括整個(gè)系統(tǒng)的工作流程;開(kāi)發(fā)環(huán)境的搭建;DHT11傳感器的初始化流程;FC-28傳感器和ADC的初始化并且通過(guò)ADC獲取數(shù)據(jù)的流程;LED的初始化流程;蜂鳴器的初始化流程;SSD1306的初始化流程;生成字模并且通過(guò)編寫(xiě)代碼將漢字顯示在OLED顯示屏上的流程;通過(guò)AT指令配置ESP8266WIFI模塊的流程;OneNET云平臺(tái)環(huán)境的搭建;通過(guò)MQTT協(xié)議傳輸數(shù)據(jù)到OneNET云平臺(tái)的流程;判斷溫濕度數(shù)據(jù)并通過(guò)I/O口輸出高電平使繼電器開(kāi)關(guān)閉合打開(kāi)水閥澆水的流程。 第四章:包括對(duì)本設(shè)計(jì)系統(tǒng)的調(diào)試和實(shí)驗(yàn)過(guò)程,其中有包括檢測(cè)溫濕度數(shù)據(jù)的準(zhǔn)確性,檢測(cè)OLED顯示的準(zhǔn)確性,檢測(cè)數(shù)據(jù)是否能夠上傳到移動(dòng)云OneNET并進(jìn)行查看,是否能正確判斷發(fā)出警告并完成整個(gè)澆水的流程。 第五章:主要是對(duì)本次設(shè)計(jì)的成果進(jìn)行展示以及總結(jié),對(duì)系統(tǒng)的缺點(diǎn)或不足進(jìn)行詳細(xì)的闡明,并分析如何改善。

智能花架硬件系統(tǒng)2.1總體結(jié)構(gòu)設(shè)計(jì) 控制模塊為ALIENTEKMiniSTM32開(kāi)發(fā)板,芯片型號(hào)為STM32F103RCT6。顯示模塊選用OLED顯示屏,傳感器選用DHT11溫濕度檢測(cè)傳感器和FC-28土壤濕度傳感器,WIFI模塊選用ESP8266,開(kāi)關(guān)控制模塊使用繼電器控制水閥。圖2-1為本系統(tǒng)各部分的構(gòu)成框圖:圖2-SEQ圖2-\*ARABIC1系統(tǒng)總體框圖 STM32單片機(jī)接入電源后,整個(gè)系統(tǒng)開(kāi)始運(yùn)行。此時(shí)單片機(jī)不斷地接受并處理傳感器采集到的數(shù)據(jù),并顯示在OLED上。同時(shí)不斷向OneNET云平臺(tái)傳輸數(shù)據(jù)。整個(gè)判斷過(guò)程為: 當(dāng)檢測(cè)到空氣溫度過(guò)高或者土壤濕度過(guò)低時(shí),單片機(jī)就會(huì)控制相應(yīng)的I/O口輸出高低電平,低電平來(lái)控制LED1閃爍,高電平控制蜂鳴器發(fā)出警告以及使繼電器開(kāi)關(guān)閉合,打開(kāi)水閥實(shí)現(xiàn)澆水。2.2STM32單片機(jī)模塊 本文設(shè)計(jì)的系統(tǒng)基于STM32單片機(jī),它搭載ARMCortex-M內(nèi)核,專(zhuān)門(mén)為那些高性能、低成本的嵌入式應(yīng)用而設(shè)計(jì)。具有很強(qiáng)的擴(kuò)展能力,易于移植[6]。其I/O口豐富,能夠滿足本次設(shè)計(jì)外接模塊的需求。其外觀圖與原理圖如圖2-2,圖2-3所示。圖2-SEQ圖2-\*ARABIC2STM32RCT6芯片外觀圖圖2-SEQ圖2-\*ARABIC3STM32RCT6原理圖2.2.1STM32F103RCT6芯片概述 STM32F103RCT6芯片是意法半導(dǎo)體公司研制的一款高性能、低價(jià)格、低功耗的芯片,其內(nèi)部集成了時(shí)鐘、串口、定時(shí)器、ADC等資源[7]。它的時(shí)鐘頻率達(dá)到72MHz[8]。因此,在設(shè)計(jì)的數(shù)據(jù)運(yùn)算處理方面,能夠高效、快速地完成讀取、計(jì)算和傳輸工作,能精確的對(duì)數(shù)據(jù)進(jìn)行判斷,這也是保證設(shè)計(jì)系統(tǒng)穩(wěn)定性的原因之一。智能花架系統(tǒng)設(shè)計(jì)使用的開(kāi)發(fā)板如圖2-4所示。圖2-SEQ圖2-\*ARABIC4ALIENTEKMiniSTM32開(kāi)發(fā)板2.3傳感器模塊 智能花架設(shè)計(jì)所用到的傳感器有DHT11和FC-28傳感器。DHT11傳感器用于檢測(cè)溫度和空氣濕度,F(xiàn)C-28傳感器用于檢測(cè)土壤濕度。這兩款傳感器的價(jià)格實(shí)惠,在軟件設(shè)計(jì)方面,時(shí)序簡(jiǎn)單,更容易編寫(xiě)代碼。2.3.1DHT11溫濕度傳感器 DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器[9]。該產(chǎn)品具有品質(zhì)好、響應(yīng)快、能更好抵擋外界干擾、價(jià)格便宜、性能強(qiáng)等優(yōu)點(diǎn)。圖2-5為DHT11與MCU的連線。圖2-SEQ圖2-\*ARABIC5DHT11與MCU相連 由于在STM32F103上并沒(méi)有直接相對(duì)應(yīng)的接口,所以我們必須利用杜邦線外外接。VDD與單片機(jī)的5V相連,GND與單片機(jī)的GND相連,DATA與單片機(jī)的PB14(GPIO口可以自己選擇,編寫(xiě)代碼的時(shí)候只需要注意相應(yīng)IO口)相連。DATA端口用于STM32單片機(jī)與DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時(shí)間為4ms左右[10]。DHT11與單片機(jī)連接如圖2-6所示。圖2-SEQ圖2-\*ARABIC6DHT11與單片機(jī)相接 2.3.2FC-28土壤濕度傳感器 設(shè)計(jì)所用的土壤濕度傳感器型號(hào)為FC-28。該傳感器是利用的水分不一樣時(shí)對(duì)傳感器的電阻值影響不一樣,導(dǎo)致傳感器的電阻值發(fā)生變化,由此可以得出土壤的水分值[11]。它的工作電壓是3.3-5V,表面積大,可以提高導(dǎo)電性能。 為了方便使用這個(gè)傳感器,還外加了一個(gè)LM393比較器。板上有一個(gè)PWR-LED(電源指示燈)和一個(gè)DO-LED(工作指示燈)。當(dāng)土壤比較干的時(shí)候,DO-LED關(guān)。當(dāng)土壤比較濕的時(shí)候,這時(shí)DO-LED變亮(水分過(guò)大)。 FC-28土壤濕度傳感器的引腳接到LM393的+引腳和-引腳,如圖2-7所示。VCC接STM32的3.3V,GND接STM32的GND,AO與STM32的PA1相連,DO不連(DO主要用于超出范圍報(bào)警)。FC-28插入到土壤中獲得到一個(gè)模擬信號(hào),通過(guò)LM393轉(zhuǎn)化為數(shù)字信號(hào)。FC-28和LM393接線圖如圖2-8所示。圖2-SEQ圖2-\*ARABIC7FC-28接LM393圖2-SEQ圖2-\*ARABIC8土壤檢測(cè)部分總的接線2.4LED模塊 設(shè)計(jì)所用的ALIENTEKMiniSTM32開(kāi)發(fā)板上集成了3個(gè)LED指示燈。因?yàn)檐浖O(shè)計(jì)只需要兩個(gè)LED,所以用開(kāi)發(fā)版上集成的兩個(gè)LED就可以滿足需求。在使用手冊(cè)上有相應(yīng)驅(qū)動(dòng)代碼,減少了設(shè)計(jì)的時(shí)間。其原理圖如圖2-9所示。圖2-SEQ圖2-\*ARABIC9LED原理圖 其中PWR為STM32開(kāi)發(fā)板的電源指示燈。LED0和LED1為低電平點(diǎn)亮。2.5蜂鳴器模塊 因?yàn)锳LIENTEKMiniSTM32開(kāi)發(fā)板上并沒(méi)有集成蜂鳴器,但是我們?cè)趯?shí)驗(yàn)的時(shí)候需要用到蜂鳴器發(fā)出警報(bào),所以需要在開(kāi)發(fā)板上通過(guò)杜邦線外接有源蜂鳴器。實(shí)物圖如圖2-10所示。圖2-SEQ圖2-\*ARABIC10蜂鳴器實(shí)物 有源蜂鳴器是以固定頻率工作[12],高電平觸發(fā),電壓越高,聲音越大。蜂鳴器的電路圖如圖2-11所示。它有三個(gè)引腳,分別為VCC、GND、I/O,VCC接單片機(jī)的5V,GND接單片機(jī)的GND,I/O接單片機(jī)的PB8。圖2-SEQ圖2-\*ARABIC11蜂鳴器電路圖2.6OLED模塊 OLED(有機(jī)發(fā)光二極管)是一種高亮度、寬視覺(jué)、全固化的電致發(fā)光器件[13],相比于TFT和LCD屏,它的價(jià)格低廉、功耗低、體積小、IO口占用少。OLED不像LCD屏那樣需要背光源,它可以自發(fā)光。由于分辨率高、對(duì)比度高、響應(yīng)速度快等特點(diǎn)被應(yīng)用與各個(gè)領(lǐng)域。 OLED顯示屏尺寸大小為0.96寸,僅需3.3V電源供電,亮度高。ALIENTEKMiniSTM32開(kāi)發(fā)板上有直接的OLED插口,無(wú)需杜邦線相連,簡(jiǎn)單方便。模塊外觀圖2-12所示。圖2-SEQ圖2-\*ARABIC12OLED外觀 OLED模塊的控制器是SSD1306,該模塊支持4種連接方式:8位6800并口、8位8080并口、IIC以及四線SPI等四種通信方式[14]。SSD1306的顯存總共為128*64bit大小,每次寫(xiě)入按字節(jié)寫(xiě)入,在畫(huà)點(diǎn)的時(shí)候,只要讓對(duì)應(yīng)顯存的位置為1,就可以在OLED上點(diǎn)亮該點(diǎn)。2.7ESP8266WiFi模塊 ESP8266系列芯片是樂(lè)鑫信息科技在2015年推出的WiFi芯片,EPS8266的集成度高、功耗低、使用方便使得它在物聯(lián)網(wǎng)應(yīng)用方面獲得了極大的認(rèn)可,是實(shí)現(xiàn)基于Wi-Fi遠(yuǎn)程控制最好選擇[15]。ESP8266模塊外觀圖如圖2-13所示。圖2-SEQ圖2-\*ARABIC13ATK-ESP8266硬件外觀圖 在ESP8266模塊外觀圖中,各引腳的詳細(xì)描述如表2-1所示:表2-1ESP8266引腳說(shuō)明引腳說(shuō)明VCC電源(3.3-5V)GND電源地TXD模塊串口發(fā)送腳RXD模塊串口接收腳RST復(fù)位(低電平有效) 在硬件連接上,VCC接STM32單片機(jī)的3.3V供電,GND接STM32單片機(jī)的GND,RST接STM32單片機(jī)的PA4端口。STM32與ESP8266通訊使用串口2,將單片機(jī)溫濕度數(shù)據(jù)傳給ESP8266,所以TXD連接STM32單片機(jī)的PA3,RXD連接PA2。硬件連接如圖2-14所示。圖2-SEQ圖2-\*ARABIC14ESP8266與STM32相連2.8開(kāi)關(guān)控制模塊 開(kāi)關(guān)控制模塊由繼電器和水閥組成。水閥通過(guò)電線與繼電器的公共端和常開(kāi)端。繼電器的VCC接單片機(jī)的5V,GND連單片機(jī)的GND,繼電器的IN連接單片機(jī)的PB13。其連接圖如圖2-15所示。圖2-SEQ圖2-\*ARABIC15繼電器與水閥

第三章智能花架控制系統(tǒng)軟件設(shè)計(jì)3.1系統(tǒng)軟件設(shè)計(jì)流程 系統(tǒng)的軟件設(shè)計(jì)流程圖如圖3-1所示。硬件資源的初始化包括中斷優(yōu)先級(jí)的設(shè)置、延遲初始化、串口初始化、ADC初始化以及一些外接模塊的初始化。網(wǎng)絡(luò)初始化包括ESP8266的初始化以及WIFI的接入。 系統(tǒng)上電后,開(kāi)始硬件和網(wǎng)絡(luò)的初始化,當(dāng)初始化完成后LED0會(huì)閃爍提醒,OLED屏幕開(kāi)始顯示漢字。之后進(jìn)入循環(huán),不斷讀取土壤濕度和空氣溫濕度數(shù)據(jù),檢測(cè)到的溫濕度數(shù)據(jù)可以通過(guò)串口1在串口調(diào)試工具上顯示,也會(huì)顯示在OLED屏上。在程序中,我們定義了一個(gè)變量t。每循環(huán)一次,t的次數(shù)加1。當(dāng)t的次數(shù)大于30時(shí),即間隔時(shí)間為3秒,會(huì)把數(shù)據(jù)傳輸?shù)絆neNET云平臺(tái),再判斷溫濕度數(shù)值。如果t的次數(shù)未達(dá)到30次則直接進(jìn)入溫濕度數(shù)值的判斷。當(dāng)空氣溫度大于30度或者土壤濕度小于20%時(shí),LED1閃爍且蜂鳴器發(fā)出警報(bào),單片機(jī)端口輸出高電平使得繼電器開(kāi)關(guān)閉合,打開(kāi)水閥澆水。圖3-SEQ圖3-\*ARABIC1總體軟件設(shè)計(jì)流程圖3.2開(kāi)發(fā)軟件環(huán)境搭建 設(shè)計(jì)所用的編程軟件為keil5,使用uVision5IDE集成開(kāi)發(fā)環(huán)境,是目前針對(duì)ARM處理器,尤其是Cortex-M內(nèi)核處理器的最佳開(kāi)發(fā)工具[16]。 不同最初學(xué)習(xí)所用的51單片機(jī),STM32有一套豐富的固件庫(kù)。固件庫(kù)就是函數(shù)的集合,調(diào)用固件庫(kù)比操作寄存器更加方便。STM32資源豐富,如果直接操作寄存器十分麻煩。所以,選擇用固件庫(kù)開(kāi)發(fā),可以縮短開(kāi)發(fā)周期,提高開(kāi)發(fā)效率,降低開(kāi)發(fā)難度[17]。 接下來(lái)將介紹如何新建工程,以及如何移植模塊。 新建工程的流程為:新建工程——工程命名——選擇芯片——工程下新建三個(gè)文件夾USER(存放用戶自己的文件)、CORE(存放啟動(dòng)文件與內(nèi)核函數(shù))、stm32f10x_FWLIB(存放庫(kù)函數(shù)文件)——OptionsOfTarget——在c/c++下添加頭文件地址。搭建好之后如圖3-2所示。圖3-SEQ圖3-\*ARABIC2開(kāi)發(fā)環(huán)境搭建 之后添加模塊的話只需要添加.c文件和.h文件,在c/c++里添加.h文件的地址,在main.c文件中調(diào)用就可以。這樣使我們的程序更加清晰易懂。3.3傳感器軟件設(shè)計(jì)3.3.1DHT11溫濕度傳感器軟件設(shè)計(jì) 因?yàn)镈HT11溫濕度傳感器的DATA口和單片機(jī)的PB14相連,所以需要對(duì)PB14端口口進(jìn)行初始化,主要包括使能PB14端口的時(shí)鐘,設(shè)置I/O口的輸出模式為推挽輸出(推挽輸出可以輸出強(qiáng)高低電平),設(shè)置端口的速度為50MHz,并復(fù)位DHT11,最后用函數(shù)DHT11_Check()檢查DHT11正常與否。復(fù)位DHT11的函數(shù)DHT11_Rst()以及檢測(cè)DHT11存在的函數(shù)DHT11_Check()中有對(duì)總線的操作,DHT11的初始化流程圖如圖3-3所示。圖3-SEQ圖3-\*ARABIC3DHT11初始化 DHT11傳感器的通訊過(guò)程如圖3-4所示。總線空閑狀態(tài)為高電平,單片機(jī)把總線拉低等待DHT11響應(yīng),單片機(jī)把總線拉低必須大于18ms,保證DHT11能檢測(cè)到起始信號(hào)。單片機(jī)發(fā)送開(kāi)始信號(hào)結(jié)束后,延時(shí)等待20-40us。當(dāng)DHT11接收到單片機(jī)的開(kāi)始信號(hào)后,發(fā)送80us低電平響應(yīng)信號(hào)。等待DHT11的80us低電平信號(hào)結(jié)束,然后判斷DHT11是否發(fā)出80us的高電平;如果是,即可開(kāi)始采集數(shù)據(jù)[18]。圖3-SEQ圖3-\*ARABIC4DHT11通訊過(guò)程3.3.2FC-28土壤濕度傳感器軟件設(shè)計(jì) 由于FC-28土壤濕度傳感器的AO引腳的輸出信號(hào)為模擬信號(hào),在2.3.2小節(jié)中有相關(guān)介紹,所以在FC-28的軟件設(shè)計(jì)部分需要ADC模塊。 STM32F103RCT6芯片有3個(gè)ADC功能,本設(shè)計(jì)需要用到STM32的ADC1,并將PA1作為模擬輸入口。首先對(duì)ADC1進(jìn)行初始化,包括GPIOA和ADC時(shí)鐘開(kāi)啟,設(shè)置分頻因子為6、復(fù)位和使能ADC1,開(kāi)啟AD校準(zhǔn)。初始化的程序設(shè)計(jì)流程圖如圖3-5所示。圖3-SEQ圖3-\*ARABIC5ADC初始化 接下來(lái)要獲取ADC1的數(shù)值。設(shè)置ADC1采樣時(shí)間,使能軟件轉(zhuǎn)換啟動(dòng)功能,然后由標(biāo)志位來(lái)判斷轉(zhuǎn)換是否結(jié)束,最后返回ADC1規(guī)則組的轉(zhuǎn)換結(jié)果,取多次平均值后返回到主函數(shù)。如圖3-6所示。圖3-SEQ圖3-\*ARABIC6獲取數(shù)值3.4LED軟件設(shè)計(jì) ALIENTEKMiniSTM32開(kāi)發(fā)板上集成了設(shè)計(jì)所需要的LED0和LED1,LED0和LED1分別接在開(kāi)發(fā)板的PA8和PD2端口。對(duì)PA8和PD2的初始化需要先使能PD和PA的時(shí)鐘,再將PA8和PD2設(shè)為推挽輸出,端口速度為50MHz。由于PA8和PD2都是低電平點(diǎn)亮,所以一開(kāi)始需要將兩個(gè)端口設(shè)為高電平。LED的初始化如圖3-7所示。圖3-SEQ圖3-\*ARABIC7LED初始化3.5蜂鳴器軟件設(shè)計(jì) ALIENTEKMiniSTM32開(kāi)發(fā)板上沒(méi)有集成蜂鳴器,所以得用杜邦線將蜂鳴器的IO與PB8相連。軟件設(shè)計(jì)部分與LED部分大致相同,初始化的端口改為PB8。因?yàn)榉澍Q器是高電平觸發(fā),所以在初始化的時(shí)候要讓PB8為低電平。蜂鳴器初始化流程圖如圖3-8所示。圖3-SEQ圖3-\*ARABIC8蜂鳴器初始化3.6OLED軟件設(shè)計(jì) 首先對(duì)OLED模塊的驅(qū)動(dòng)ICSSD1306進(jìn)行初始化。先復(fù)位SSD1306,再對(duì)SSD1306序列初始化,開(kāi)啟顯示功能。清屏之后就可以開(kāi)始顯示。SSD1306的初始化流程如圖3-9所示。圖3-SEQ圖3-\*ARABIC9SSD1306初始化 因?yàn)槲覀冃枰贠LED上顯示漢字,所以我們必須生成新的字模,之后再用相關(guān)的函數(shù)調(diào)用(在程序中漢字顯示的函數(shù)為OLED_Show_Font)。新建字模用PCtoLCD2002軟件,如圖3-10所示。圖3-SEQ圖3-\*ARABIC10新建字模 接下來(lái)要在OLED屏幕上顯示,只要在主函數(shù)調(diào)用顯示字符串的函數(shù)OLED_ShowString()和顯示漢字的函數(shù)OLED_Show_Font()就可以在OLED屏幕上分別顯示字符串和漢字。 顯示漢字和顯示字符串的函數(shù)都必須先選擇好坐標(biāo),才能在該坐標(biāo)之后進(jìn)行顯示。顯示字符串的函數(shù)選擇好字體大小之后先判斷是否為非法字符,如果不是非法字符,就調(diào)用字符串字庫(kù)中相應(yīng)字符的點(diǎn)陣,之后OLED上畫(huà)點(diǎn)顯示。而由于漢字的字?jǐn)?shù)很多,不能夠建立全部字模。所以在漢字字庫(kù)中只存在需要用到的漢字的字模。我們選擇不同的編號(hào)就可以獲得不同的點(diǎn)陣編碼。顯示字符串和顯示漢字的流程如3-11和3-12所示。圖3-SEQ圖3-\*ARABIC11顯示字符串圖3-SEQ圖3-\*ARABIC12顯示漢字3.7WiFi軟件設(shè)計(jì) 在這一部分,我們需要將STM32通過(guò)串口2連接ATK-ESP8266,ATK-ESP8266再通過(guò)MQTT協(xié)議將溫濕度數(shù)據(jù)傳輸至OnenNet云平臺(tái)。所以我們要介紹STM32與ATK-ESP8266連接的軟件部分;OneNET云平臺(tái)環(huán)境配置;ATK-ESP8266通過(guò)MQTT協(xié)議將溫濕度數(shù)據(jù)傳輸至OnenNet云平臺(tái)。3.7.1STM32與ATK-ESP8266連接 因?yàn)镋SP8266與STM32單片機(jī)通過(guò)杜邦線相連,所以需要對(duì)PA2和PA3初始化。首先啟用PA的時(shí)鐘。對(duì)PA2和PA3進(jìn)行端口配置,PA2連接的是ESP8266的RXD(接收)引腳,所以設(shè)為推挽輸出,速度為50MHz。PA3連接的是ESP8266的TXD(發(fā)送)引腳,所以端口設(shè)為浮空輸入,速度為50MHz。因?yàn)镾TM32用串口2與ESP8266通訊,所以需要使能串口2。ESP8266的RST引腳與單片機(jī)的PA4相連,需要初始化PA4。之后用串口2發(fā)送AT指令到ESP8266,配置ESP8266。首先串口發(fā)送AT進(jìn)行測(cè)試,無(wú)誤之后串口會(huì)發(fā)回OK。之后繼續(xù)用AT指令選擇WIFI為STA模式,使能DHCP。用串口發(fā)送需要連接WIFI的賬號(hào)密碼、云平臺(tái)的IP地址、端口號(hào)等數(shù)據(jù)用來(lái)建立TCP連接,ESP8266的配置就完成了。用到的AT指令如表3-所示,ESP8266具體配置流程如圖3-12所示。表3-1AT指令表指令說(shuō)明AT測(cè)試指令A(yù)T+CWMODE=<MODE>選擇WIFI應(yīng)用模式<MODE>1STA模式(客戶端模式)2AP模式(接入點(diǎn)模式)3AP+STA模式(兩種模式共存)AT+CWDHCP=<MODE>,<EN><MODE>0:設(shè)置AP1:設(shè)置STA2:設(shè)置AP和STA<MODE>0:失能DHCP1:使能DHCP本設(shè)置掉電重啟設(shè)置仍保留。AT+CWJAP=<SSID>,<PASSWORD><SSID>接入WIFI名稱(chēng)<PASSWORD>接入WIFI密碼例AT+CWJAP=<OneNET>,<12345678>本設(shè)置掉電重啟設(shè)置仍保留。AT+CIPSTART=<TYPE>,<ADDR>,<PORT><TYPE>表示連接類(lèi)型“TCP”建立TCP連接“UDP”建立UDP傳輸“SSL”建立SSL連接<ADDR>遠(yuǎn)程服務(wù)器IP地址<PORT>遠(yuǎn)程服務(wù)器端口號(hào)例AT+CIPSTART=”TCP”,”183.230.40.39”,”6002” 圖3-SEQ圖3-\*ARABIC13ESP8266配置 我們通過(guò)串口可以查看初始化過(guò)程信息。如圖3-14所示。圖3-SEQ圖3-\*ARABIC14WIFI連接 這樣我們的ESP8266初始化的部分就完成了。3.7.2OneNET云平臺(tái)環(huán)境配置 首先我們進(jìn)入OneNET——中國(guó)移動(dòng)物聯(lián)網(wǎng)開(kāi)放平臺(tái),在創(chuàng)建賬號(hào)之后,點(diǎn)擊右上角控制臺(tái)。在控制臺(tái)里我們選擇全部產(chǎn)品服務(wù),在全部產(chǎn)品服務(wù)中,選擇多協(xié)議接入,MQTT舊版。產(chǎn)品和設(shè)備添加完之后己住產(chǎn)品ID、設(shè)備ID、鑒權(quán)信息等。在應(yīng)用管理中添加應(yīng)用,OneNET云平臺(tái)配置完之后如圖3-15和3-16所示。圖3-SEQ圖3-\*ARABIC15產(chǎn)品概況圖3-SEQ圖3-\*ARABIC16添加完成的應(yīng)用3.7.3MQTT協(xié)議將溫濕度數(shù)據(jù)傳輸至OnenNet云平臺(tái) MQTT是一種基于發(fā)布/訂閱模式的“輕量級(jí)”通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上[19]。MQTT協(xié)議適用于設(shè)備和平臺(tái)之間需要長(zhǎng)時(shí)間保持聯(lián)系的場(chǎng)景,它的特點(diǎn)在于可以實(shí)現(xiàn)設(shè)備間的消息傳播而不依賴(lài)其他服務(wù)。MQTT協(xié)議十分適用于本次設(shè)計(jì)。基于MQTT協(xié)議的特性,STM32需要使用以太網(wǎng)連接到代理服務(wù)器,然后訂閱相關(guān)的主題[20],就可以發(fā)送到云平臺(tái)上。流程如圖3-17。圖3-SEQ圖3-\*ARABIC17MQTT協(xié)議 由于MQTT協(xié)議已經(jīng)相當(dāng)成熟,只用OneNET上的例程移植就可以。將發(fā)送的數(shù)據(jù)改為實(shí)驗(yàn)的溫濕度數(shù)據(jù),具體流程如圖3-18所示。圖3-SEQ圖3-\*ARABIC18數(shù)據(jù)發(fā)送到平臺(tái)3.8開(kāi)關(guān)控制軟件設(shè)計(jì) STM32控制I/O口輸出高電平使繼電器開(kāi)關(guān)閉合,所以要對(duì)PB13進(jìn)行初始化。首先使能PB的時(shí)鐘,再將PB13設(shè)為推挽輸出,端口速度為50MHz。初始化流程如圖3-19。圖3-SEQ圖3-\*ARABIC19繼電器初始化第四章智能花架系統(tǒng)測(cè)試 為了檢測(cè)系統(tǒng)的可行性,驗(yàn)證本次系統(tǒng)設(shè)計(jì)方案的合理性以及分析系統(tǒng)的缺陷和不足,本章主要對(duì)系統(tǒng)進(jìn)行OLED顯示實(shí)驗(yàn)、溫濕度檢測(cè)實(shí)驗(yàn)、WIFI發(fā)送數(shù)據(jù)實(shí)驗(yàn)、警告實(shí)驗(yàn)。4.1實(shí)驗(yàn)平臺(tái) 實(shí)驗(yàn)平臺(tái)如下: (1)ALIENTEKMiniSTM32F103RCT6單片機(jī); (2)keiluVision5平臺(tái); (3)XCOM串口調(diào)試助手; (4)移動(dòng)云OneNET平臺(tái)。 實(shí)驗(yàn)?zāi)康模?(1)驗(yàn)證OLED顯示的準(zhǔn)確度; (2)驗(yàn)證DHT11和FC-28傳感器采集溫濕度的準(zhǔn)確度以及靈敏度; (3)驗(yàn)證移動(dòng)云OneNET是否能接受到溫濕度數(shù)據(jù); (4)驗(yàn)證溫濕度達(dá)到閾值是否能發(fā)出警告。4.2系統(tǒng)測(cè)試4.2.1OLED顯示測(cè)試實(shí)驗(yàn) 首先,將OLED模塊插到STM32單片機(jī)上,然后用T口USB數(shù)據(jù)線將電腦USB與STM32單片機(jī)相連供電,ST-LINK連接單片機(jī)。程序燒入單片機(jī)后不接接DHT11和FC-28傳感器,先觀察顯示屏是否顯示漢字,如圖4-1所示。圖4-SEQ圖4-\*ARABIC1OLED顯示 當(dāng)未接傳感器的時(shí)候,串口打印數(shù)據(jù)如圖4-2所示。圖4-SEQ圖4-\*ARABIC2串口打印數(shù)據(jù) 由4-1和4-2可以看到,漢字顯示完成且數(shù)據(jù)都為零。 當(dāng)我們接入傳感器之后,并把土壤濕度傳感器插到土中(土壤濕度傳感器懸空時(shí)為0,看不出來(lái)變化)如圖4-3和圖4-4所示。圖4-SEQ圖4-\*ARABIC3接傳感器后OLED顯示圖4-SEQ圖4-\*ARABIC4接傳感器后串口打印的數(shù)據(jù) 由以上OLED顯示屏和串口打印的數(shù)據(jù)相對(duì)比我們可以看出,OLED屏顯示穩(wěn)定字體清晰,并且能夠很準(zhǔn)確的將數(shù)據(jù)顯示出來(lái)。4.2.2DHT11溫濕度傳感器和FC-28土壤濕度傳感器測(cè)試實(shí)驗(yàn) 首先,將DHT11和FC-28用杜邦線接到STM32單片機(jī)上,通過(guò)串口發(fā)送的數(shù)據(jù)觀察正常溫度下DHT11采集的數(shù)據(jù),如圖4-5所示。再用吹風(fēng)機(jī)加熱DHT11傳感器,通過(guò)串口觀察檢測(cè)到的數(shù)據(jù)變化如圖4-6所示。圖4-SEQ圖4-\*ARABIC5正常狀態(tài)下DHT11檢測(cè)溫濕度圖4-SEQ圖4-\*ARABIC6吹風(fēng)機(jī)加熱之后 由4-5和4-6我們可以看到,DHT11在正常條件下檢測(cè)到的數(shù)值,而且在加熱之后溫度迅速升高,濕度降低。之后將多功能溫濕度計(jì)和DHT11靜置在同一環(huán)境下,每分鐘記錄一次數(shù)據(jù),整理后的表格如表4-1所示。表4-SEQ表4-\*ARABIC1DHT11傳感器與實(shí)際溫濕度對(duì)比空氣溫度空氣濕度測(cè)量值(℃)實(shí)際值(℃)誤差(℃)測(cè)量值(%)實(shí)際值(%)誤差(%)2526-1696902426-2726842526-16769-2272616769-22627-16869-1292726569-428271737032627-1696902627-16668-22727069681 由上表可以看出,DHT11檢測(cè)的溫度值較為準(zhǔn)確,檢測(cè)的濕度值稍有波動(dòng)但是變化并不大。 之后對(duì)FC-28土壤濕度傳感器進(jìn)行測(cè)試。首先我們分別將土壤濕度傳感器懸空和插入到水中,如圖4-7、圖4-8、圖4-9所示。之后分別放入不同種類(lèi)、不同濕度的土壤,觀察顯示的數(shù)據(jù)。如圖4-10、圖4-11、圖4-12、圖4-13所示。圖4-SEQ圖4-\*ARABIC7懸空?qǐng)D4-SEQ圖4-\*ARABIC8插入水中(自來(lái)水)圖4-SEQ圖4-\*ARABIC9插入水中(蒸餾水)圖4-SEQ圖4-\*ARABIC10沙子1圖4-SEQ圖4-\*ARABIC11沙子2圖4-SEQ圖4-\*ARABIC12泥土1圖4-SEQ圖4-\*ARABIC13泥土2 通過(guò)對(duì)比以上七組結(jié)果我們可以看出,F(xiàn)C-28土壤溫濕度傳感器在檢測(cè)不同種類(lèi)不同濕度的土壤時(shí),檢測(cè)到的數(shù)值也不同。同時(shí)在檢測(cè)土壤濕度時(shí)跟土壤的電解質(zhì)也有很大的關(guān)聯(lián),在自來(lái)水中接近100,而在蒸餾水中只有40。4.2.3OneNET云平臺(tái)接受數(shù)據(jù)以及顯示測(cè)試實(shí)驗(yàn) 本次設(shè)計(jì)將會(huì)把檢測(cè)到的數(shù)據(jù)傳到OneNET云平臺(tái)上,為了更加直觀的看到溫濕度的數(shù)據(jù)和變化,我們用儀表盤(pán)和折線圖來(lái)顯示數(shù)據(jù)和發(fā)送數(shù)據(jù)的時(shí)間。如圖4-14和圖4-15所示。圖4-SEQ圖4-\*ARABIC14OneNET網(wǎng)頁(yè)端查看圖4-SEQ圖4-\*ARABIC15OneNET手機(jī)端查看4.2.4警告測(cè)試實(shí)驗(yàn) 當(dāng)溫度高于一定數(shù)值(本次設(shè)計(jì)為30度)或濕度小于一定數(shù)值(本次設(shè)計(jì)為20度)時(shí),LED0會(huì)閃爍并且蜂鳴器發(fā)出警告,繼電器開(kāi)關(guān)閉合。使溫度上升到30度以上,土壤濕度在20%以上時(shí),如圖4-16所示。圖4-SEQ圖4-\*ARABIC16溫度過(guò)高 當(dāng)溫度在30度以下,土壤濕度在20%以下時(shí),如圖4-17所示。圖4-SEQ圖4-\*ARABIC17濕度過(guò)低 由4-16和4-17可以看到,LED0在溫度過(guò)高和濕度過(guò)低時(shí)都閃爍。

第五章設(shè)計(jì)成果展示以及總結(jié)5.1設(shè)計(jì)成果展示圖5-SEQ圖5-\*ARABIC1智能花架控制系統(tǒng)圖5-SEQ圖5-\*ARABIC2智能花架實(shí)物圖5.2本文總結(jié) 本文利用STM32單片機(jī)性能強(qiáng)、具有豐富的I/O口的特點(diǎn),針對(duì)實(shí)現(xiàn)無(wú)人看管種植的需求,研究了一款對(duì)植物溫濕度進(jìn)行實(shí)時(shí)監(jiān)控的花架系統(tǒng),并實(shí)現(xiàn)了系統(tǒng)的硬件和軟件上的設(shè)計(jì)。經(jīng)測(cè)試,各個(gè)模塊的功能基本都能成功實(shí)現(xiàn),并且系統(tǒng)可以穩(wěn)定運(yùn)行。本文設(shè)計(jì)的智能花架由如下優(yōu)點(diǎn): 1、控制系統(tǒng)選用的STM32單片機(jī)價(jià)格實(shí)惠且十分穩(wěn)定,其他的傳感器、OLED顯示屏、WIFI模塊的價(jià)格也很便宜,非常適合工業(yè)化的大規(guī)模使用。它本身所集成的資源以及豐富的I/O口還可以拓展出更多的功能。 2、系統(tǒng)在設(shè)計(jì)思想方面,將環(huán)境檢測(cè)、數(shù)據(jù)上傳、采取措施幾個(gè)步驟結(jié)合起來(lái),使系統(tǒng)更加智能且人性化,不需要人工處理,很大程度節(jié)約了人工成本。 3、由于使用了WIFI連接互聯(lián)網(wǎng)的方法,可以使數(shù)據(jù)遠(yuǎn)距離傳輸。用戶可以隨時(shí)隨地監(jiān)控實(shí)時(shí)狀態(tài)。 由于時(shí)間有限,系統(tǒng)設(shè)計(jì)在某些方面還存在可以提高的地方。主要有以下幾點(diǎn): 1、本次設(shè)計(jì)只有將數(shù)據(jù)上傳到云平臺(tái),沒(méi)有實(shí)現(xiàn)通過(guò)云平臺(tái)下發(fā)數(shù)據(jù)到單片機(jī)上,如果能夠?qū)崿F(xiàn)從云平臺(tái)下發(fā)數(shù)據(jù)到單片機(jī)的話,用戶就可以遠(yuǎn)程控制澆水,將會(huì)大大提高效率。 2、單片機(jī)上有三個(gè)額外的獨(dú)立按鍵沒(méi)有利用上??梢岳眠@三個(gè)按鍵實(shí)現(xiàn)手動(dòng)澆水。 3、本次設(shè)計(jì)不能在單片機(jī)上直接設(shè)定溫濕度閾值,只能在軟件上修改,比較麻煩。

參考文獻(xiàn)[1]桂彩云,黨學(xué)立,王娟.智能自動(dòng)澆花系統(tǒng)設(shè)計(jì)[J

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論