甘力馳,陳文龍,張宇航,馬祎煒
(東南大學(xué)成賢學(xué)院電子系,江蘇南京,210000)
近幾年來,隨著單片機技術(shù)的不斷發(fā)展創(chuàng)新,我國對單片機的應(yīng)用研究也逐漸朝著深入化方向發(fā)展,傳統(tǒng)的控制檢測則處于快速更新的狀態(tài)。單片機作為自動化控制系統(tǒng)中的核心部件,往往起著至關(guān)重要的作用,它需要實時進(jìn)行檢測。想要實現(xiàn)智能化,就必須要求結(jié)合軟件改進(jìn)控制系統(tǒng)的結(jié)構(gòu),使之能夠代替更為復(fù)雜的數(shù)字電路或電子電路。在日常生活中,也能看到單片機的廣泛使用,例如:通信設(shè)備、家用電器、導(dǎo)航儀等等。單片機在工業(yè)生產(chǎn)的運用中,能夠讓產(chǎn)品達(dá)到“升級換代”的效果,也就是“智能化”的普及。
熱水壺也是我們?nèi)粘I钪须S處可見的家用電器,它是人類實際需求的社會產(chǎn)物,也是依靠單片機控制的智能產(chǎn)品。隨著科技的不斷發(fā)展,人們的生活水平也不斷提高。近些年來,很多智能設(shè)備處在不斷更新的階段,智能手機、智能手表、智能電水壺走進(jìn)百姓的生活中。因為其自身的安全性能,使得智能電水壺也在生活中運用廣泛。
目前市面上很多熱水壺的功能非常單一、不夠完善,因此再普通燒水的基礎(chǔ)上利用所學(xué)到的單片機知識增添一些更為實用性的功能,例如:設(shè)置溫度加熱、蜂鳴提示、顯示溫度等功能,讓產(chǎn)品更加貼近生活,方便使用。
隨著社會的發(fā)展速度越來越快,很多智能產(chǎn)品如雨后春筍般出現(xiàn),比如平板電腦、數(shù)碼照相機等一系列智能產(chǎn)品,讓人們的生活產(chǎn)生了極大的改變。本次設(shè)計就是探究智能新產(chǎn)品的工作原理,基于單片機和物聯(lián)網(wǎng)設(shè)計出熱水壺,設(shè)計過程中我將綜合運用所學(xué)到的知識,同時對電子產(chǎn)業(yè)的發(fā)展前景有初步認(rèn)知。在設(shè)計調(diào)試過程中我的開發(fā)能力也得到了鍛煉,培養(yǎng)了我分析計算的能力、整體觀和方案設(shè)計的能力。
為了便于實現(xiàn)通信功能和以后升級的需要,本設(shè)計選用了32 位嵌入式單片機STM32,為STM32F103。該單片機是意法半導(dǎo)體公司推出的一款超低功耗32 位微處理器,工作頻率高達(dá)72MHz。片內(nèi)具有20KB 的SRAM 和64KB 的FLASH,以及眾多的增強I/O 接口。所有外設(shè)可通過兩條APB 總線相連,且都可匹配標(biāo)準(zhǔn)的通信接口。
GSM 模塊選用西門子的TC35,TC35 秉承了西門子一貫的優(yōu)秀品質(zhì),它易于集成,使用它可以在較短的時間內(nèi)花費較少的成本開發(fā)出新穎的產(chǎn)品。TC35 是西門子公司的一款雙頻900/1800MHZ 高度集成的GSM 模塊。包括三種速率:半速(ETS06.20)、全速(ETS06.10)和增強型全速,可工作于通話模式、空閑模式和省電模式。同時,該模塊支持232/TTL 電平的串口連接,可通過USB 轉(zhuǎn)232 模塊或USB 轉(zhuǎn)TTL 模塊連接電腦,應(yīng)用方便。
通過手機短信息實現(xiàn)遠(yuǎn)程控制,STM32 通過GSM 模塊接收短信數(shù)據(jù),然后進(jìn)行數(shù)據(jù)的識別、處理,并照接收到的信息完成相應(yīng)的控制功能。手機向本系統(tǒng)發(fā)送“開”可以接通繼電器使加熱器工作;發(fā)送“關(guān)”可以切斷繼電器停止加熱。同時,本系統(tǒng)會 定時向手機發(fā)送當(dāng)前溫度及其它工作狀態(tài)。
溫度檢測采用防水式數(shù)字式溫度傳感器DS18B20,其輸出的是數(shù)字信號,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。溫度范圍-55℃~+125℃,在-10~+85℃時精度為±0.5 ℃,為提高溫度檢測的精度,采用兩個DS18B20 檢測兩點的溫度。兩個DS18B20 并聯(lián)在唯一的三線上,實現(xiàn)方便。DS18B20 可以采用外部電源,也可用內(nèi)部寄生電源,為提高可靠性采用外部電源供電,同時,數(shù)據(jù)線通過10K 上拉電阻以提供足夠能量。
信息的顯示采用LCD 液晶屏,具體型號為LCD12864。LCD12864 是帶中文字庫的具有4 位/8 位并行、2 線或3 線串行多種接口方式,可以顯示8×4 行的16×16 點陣漢字,也可完成圖形顯示??梢愿鶕?jù)需要實時顯示溫度、時間、日期或其它信息。
壓力傳感檢測模塊采用壓力傳感器HX711,HX711 是一款24 位A/D 轉(zhuǎn)換器芯片。與同類型其它芯片相比,該芯片集成了包括穩(wěn)壓電源、片內(nèi)時鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應(yīng)速度快、抗干擾性強等優(yōu)點。該芯片與后端MCU 芯片的接口和編程非常簡單,所有控制信號由管腳驅(qū)動,無需對芯片內(nèi)部的寄存器編程。芯片內(nèi)提供的穩(wěn)壓電源可以直接向外部傳感器和芯片內(nèi)的A/D 轉(zhuǎn)換器提供電源,系統(tǒng)板上無需另外的模擬電源。芯片內(nèi)的時鐘振蕩器不需要任何外接器件。
智能電熱水器控制系統(tǒng)軟件采用C 語言編寫,采用模塊化程序設(shè)計。系統(tǒng)的工作流程為:啟動系統(tǒng)后進(jìn)行初始化,對各項參數(shù)進(jìn)行檢測,若溫度超限或低于下限則報警并自動斷電,同時將報警信息發(fā)送到手機;若水量低于一定限額,通過stm32 驅(qū)動加水裝置供水。系統(tǒng)根據(jù)收到的短信或鍵盤輸入的相應(yīng)指令完成對應(yīng)的控制功能。系統(tǒng)主程序流程圖如圖1 示。
圖1 主程序流程圖
本設(shè)計采用的是STM32 單片機的系統(tǒng)固件,主要開發(fā)環(huán)境基于keiluVision5,使用C 語言進(jìn)行程序的編寫,程序所需要滿足的要求有三點。其一是一般熱水壺所具有的燒開水功能。其二是在指定溫度下,加熱冷水的過程。切換模式完成以后,按下加減按鍵就可以調(diào)節(jié)需要設(shè)定的溫度,水溫一旦到達(dá)指定的溫度后,熱水壺就會自動斷電。其三是LM016L 液晶顯示屏上顯示的溫度就是及時溫度,要學(xué)會調(diào)節(jié)工作模式。
由于不同地域之間存在氣壓的差異,所以當(dāng)溫度達(dá)到100 攝氏度時,水不一定能夠燒開,甚至在一些海拔較高的地區(qū),水溫?zé)o法加熱到100 度。所以本次設(shè)計中注重周期性采樣溫度的方式,注重溫度控制模塊的探索研究,每隔10 秒系統(tǒng)會自動保存一次溫度值。通過每次的采樣對比可以尋找到水溫的最大值,如果沒有更大的水溫值出現(xiàn),可以等水達(dá)到沸點之后,溫度持續(xù)穩(wěn)定3 分鐘以后,一旦水溫此時超過80 攝氏度,說明此時的水已經(jīng)燒開,隨后電熱水壺可以自動切斷電源。程序中的執(zhí)行采用定時器進(jìn)行中斷,在一定程度上也提高了系統(tǒng)的響應(yīng)速度。
根據(jù)設(shè)計出來的思路和目標(biāo)功能的確定,設(shè)計出了軟件主要的工作流程??刂瞥绦蚬ぷ鞯牧鞒倘缦拢?/p>
開始進(jìn)入燒開水模式和加熱冷水模式;第二部讀取DS18B20 的溫度;周期采樣溫度值找到溫度的最大值判斷是否燒開,達(dá)到最大值后保持3min不變,并且最大值超過80攝氏度,則水燒開,達(dá)到限定溫度后蜂鳴器報警自動斷電,加熱結(jié)束。
在完成設(shè)計過程中,首先需要在Protel AItium Designer Summer 軟件上繪制出相關(guān)的原理圖,完成PCB 的設(shè)計之后,交由電路板制版工廠完成主控電路班的制作過程,還需要完成元器件的焊接與測試部分。在進(jìn)行焊接的過程中,需要保持著嚴(yán)謹(jǐn)認(rèn)真的工作態(tài)度,先后需要焊好主控芯片、還有其他元器件的焊接,當(dāng)焊接工作結(jié)束后對照原理圖檢測電路的具體情況,如果發(fā)生短路或者虛焊的現(xiàn)象,需要及時進(jìn)行修正和調(diào)整工作。當(dāng)一切結(jié)束后,下載程序檢測主控核心板是否能夠正常運作,如果主控核心板可以達(dá)到預(yù)期的工作質(zhì)量,就可以用為本系統(tǒng)的主控部件。
在熱水壺中盛滿大約100 毫升的冷水,將其放置在涂滿了導(dǎo)熱膠的加熱板上進(jìn)行加熱,DSI18B20 溫度傳感器的探頭可以在水中實時監(jiān)測溫度的變化狀況,程序下載到主控板上接通電源后,選擇模式1 進(jìn)入燒水狀態(tài),并且將觀察結(jié)果記錄如下:重復(fù)測試燒開水是溫度和所用時間5 次,結(jié)果如表1 所示。
表1 結(jié)果表
接著重新在水壺內(nèi)盛滿大約100 毫升的冷水,將燒開水前的準(zhǔn)備步驟重復(fù)操作一遍,接著連接電源,選擇模式2,初始溫度達(dá)到26.51 攝氏度,通過溫度加減調(diào)節(jié)按鍵設(shè)定溫度為50 度,等待5 分后達(dá)到設(shè)定溫度以后,蜂蜜器會發(fā)出警報聲,此時就可以斷電了。
重復(fù)測試50 攝氏度時實際的斷電溫度和所用時間各5次,得到的結(jié)果如表2 所示。
表2 結(jié)果表
在整個測試的過程中,也存在一定的誤差。例如溫度檢測環(huán)節(jié)引起的數(shù)據(jù)誤差,但是這個誤差結(jié)果是可以接受的范圍以內(nèi)產(chǎn)生的,由于DS18B20 本身設(shè)定的系統(tǒng)誤差,所以在溫度環(huán)境不穩(wěn)定因素的影響下會造成一定誤差。繼電器也會引起誤差現(xiàn)象產(chǎn)生,隨著繼電器對電熱管的不斷加熱,會引發(fā)水溫升高,所以交流的負(fù)載增加干擾信號也在意料之中。還有一點就是由于電壓波動所造成的誤差也會對實驗造成影響。
本次設(shè)計主要使用的是C 語言進(jìn)行編程設(shè)計,軟件能夠兼容單片機C 語言的軟件開發(fā)系統(tǒng),在進(jìn)行編程的過程中發(fā)現(xiàn)出錯的地方能夠清楚標(biāo)記,這也方便了開發(fā)者后續(xù)調(diào)整改進(jìn)工作的進(jìn)行。在完成編程的基礎(chǔ)上,整個調(diào)試的工作還包括了工程方面的建立、函數(shù)的調(diào)用,需要分模塊著重檢查文件是否正確,再根據(jù)設(shè)計的要求檢查初始化程序,進(jìn)一步優(yōu)化程序的結(jié)構(gòu)。最終經(jīng)歷反復(fù)測試以后,系統(tǒng)得以正常運轉(zhuǎn),各功能得到了良好的實現(xiàn)。
本設(shè)計經(jīng)過對系統(tǒng)的軟件部分、硬件部分的反復(fù)測試,在兩種不同的功能模式下,系統(tǒng)各模塊之間也可以實現(xiàn)正常工作??傮w而言,這些功能的最終實現(xiàn)可以滿足設(shè)計題目上的要求,外形設(shè)計上也提高了靈活性與安全性,具有操作簡單、方便實用的特點。設(shè)計所產(chǎn)生的成本并不高昂,能夠進(jìn)行工業(yè)化生產(chǎn),投入到日常生活中去從現(xiàn)實角度出發(fā),我認(rèn)為本次設(shè)計具有很強的實用意義。
本次設(shè)計最終實現(xiàn)了單片機對電熱水壺的操控。在整個系統(tǒng)中最關(guān)鍵、核心的電路便是單片機的控制電路,該電路能夠?qū)崿F(xiàn)信號的輸入與輸出之間的轉(zhuǎn)換。其次重要的電路是加熱控制電路與溫度檢測,該電路可以準(zhǔn)確完成溫度信號的采樣和對具體溫度的控制,最終通過A/D 轉(zhuǎn)換電路將信號傳送到由單片機控制的電路中去。最后還要設(shè)計程序以此來實現(xiàn)各功能的安全進(jìn)行,滿足人們的日常需求。
通過這次創(chuàng)造性的設(shè)計,讓我更加懂得努力學(xué)習(xí)、認(rèn)真設(shè)計的重要性。從搜集資料、整理文獻(xiàn)到方案的分析與確定,這中間的過程讓我學(xué)到了很多關(guān)于制作與編寫的操作技能,受益匪淺。我還掌握了很多關(guān)于單片機的硬件結(jié)構(gòu)知識,摸索中設(shè)計出硬件電路,將其通過編程的方式讓部分硬件的功能能夠?qū)崿F(xiàn),書本上的知識也被我用到了實踐中去。原本我并不是很熟悉電路板和程序編寫的任務(wù),但是這次單片機的相關(guān)編程和焊接電路板的學(xué)習(xí)經(jīng)歷,豐富了我的動手經(jīng)驗,我也明白了自學(xué)的重要性。由于條件有限、時間緊迫,在以后發(fā)展中還需要進(jìn)行總體調(diào)試,對系統(tǒng)做出進(jìn)一步的改進(jìn)。
本次設(shè)計的硬件模塊電路部分并不困難,絕大多數(shù)的熱水壺功能都是依靠軟件程序得以實現(xiàn)。在研究學(xué)習(xí)過程中也遇到很多挫敗和難題無法解決,所幸身邊同學(xué)告訴了我關(guān)于代碼優(yōu)化的技巧,幫助我的內(nèi)容得以更加完善,也為我日后的工作學(xué)習(xí)打下了不錯的基礎(chǔ)。