甘力馳,陳文龍,張宇航,馬祎煒
(東南大學成賢學院電子系,江蘇南京,210000)
近幾年來,隨著單片機技術的不斷發展創新,我國對單片機的應用研究也逐漸朝著深入化方向發展,傳統的控制檢測則處于快速更新的狀態。單片機作為自動化控制系統中的核心部件,往往起著至關重要的作用,它需要實時進行檢測。想要實現智能化,就必須要求結合軟件改進控制系統的結構,使之能夠代替更為復雜的數字電路或電子電路。在日常生活中,也能看到單片機的廣泛使用,例如:通信設備、家用電器、導航儀等等。單片機在工業生產的運用中,能夠讓產品達到“升級換代”的效果,也就是“智能化”的普及。
熱水壺也是我們日常生活中隨處可見的家用電器,它是人類實際需求的社會產物,也是依靠單片機控制的智能產品。隨著科技的不斷發展,人們的生活水平也不斷提高。近些年來,很多智能設備處在不斷更新的階段,智能手機、智能手表、智能電水壺走進百姓的生活中。因為其自身的安全性能,使得智能電水壺也在生活中運用廣泛。
目前市面上很多熱水壺的功能非常單一、不夠完善,因此再普通燒水的基礎上利用所學到的單片機知識增添一些更為實用性的功能,例如:設置溫度加熱、蜂鳴提示、顯示溫度等功能,讓產品更加貼近生活,方便使用。
隨著社會的發展速度越來越快,很多智能產品如雨后春筍般出現,比如平板電腦、數碼照相機等一系列智能產品,讓人們的生活產生了極大的改變。本次設計就是探究智能新產品的工作原理,基于單片機和物聯網設計出熱水壺,設計過程中我將綜合運用所學到的知識,同時對電子產業的發展前景有初步認知。在設計調試過程中我的開發能力也得到了鍛煉,培養了我分析計算的能力、整體觀和方案設計的能力。
為了便于實現通信功能和以后升級的需要,本設計選用了32 位嵌入式單片機STM32,為STM32F103。該單片機是意法半導體公司推出的一款超低功耗32 位微處理器,工作頻率高達72MHz。片內具有20KB 的SRAM 和64KB 的FLASH,以及眾多的增強I/O 接口。所有外設可通過兩條APB 總線相連,且都可匹配標準的通信接口。
GSM 模塊選用西門子的TC35,TC35 秉承了西門子一貫的優秀品質,它易于集成,使用它可以在較短的時間內花費較少的成本開發出新穎的產品。TC35 是西門子公司的一款雙頻900/1800MHZ 高度集成的GSM 模塊。包括三種速率:半速(ETS06.20)、全速(ETS06.10)和增強型全速,可工作于通話模式、空閑模式和省電模式。同時,該模塊支持232/TTL 電平的串口連接,可通過USB 轉232 模塊或USB 轉TTL 模塊連接電腦,應用方便。
通過手機短信息實現遠程控制,STM32 通過GSM 模塊接收短信數據,然后進行數據的識別、處理,并照接收到的信息完成相應的控制功能。手機向本系統發送“開”可以接通繼電器使加熱器工作;發送“關”可以切斷繼電器停止加熱。同時,本系統會 定時向手機發送當前溫度及其它工作狀態。
溫度檢測采用防水式數字式溫度傳感器DS18B20,其輸出的是數字信號,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。溫度范圍-55℃~+125℃,在-10~+85℃時精度為±0.5 ℃,為提高溫度檢測的精度,采用兩個DS18B20 檢測兩點的溫度。兩個DS18B20 并聯在唯一的三線上,實現方便。DS18B20 可以采用外部電源,也可用內部寄生電源,為提高可靠性采用外部電源供電,同時,數據線通過10K 上拉電阻以提供足夠能量。
信息的顯示采用LCD 液晶屏,具體型號為LCD12864。LCD12864 是帶中文字庫的具有4 位/8 位并行、2 線或3 線串行多種接口方式,可以顯示8×4 行的16×16 點陣漢字,也可完成圖形顯示。可以根據需要實時顯示溫度、時間、日期或其它信息。
壓力傳感檢測模塊采用壓力傳感器HX711,HX711 是一款24 位A/D 轉換器芯片。與同類型其它芯片相比,該芯片集成了包括穩壓電源、片內時鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應速度快、抗干擾性強等優點。該芯片與后端MCU 芯片的接口和編程非常簡單,所有控制信號由管腳驅動,無需對芯片內部的寄存器編程。芯片內提供的穩壓電源可以直接向外部傳感器和芯片內的A/D 轉換器提供電源,系統板上無需另外的模擬電源。芯片內的時鐘振蕩器不需要任何外接器件。
智能電熱水器控制系統軟件采用C 語言編寫,采用模塊化程序設計。系統的工作流程為:啟動系統后進行初始化,對各項參數進行檢測,若溫度超限或低于下限則報警并自動斷電,同時將報警信息發送到手機;若水量低于一定限額,通過stm32 驅動加水裝置供水。系統根據收到的短信或鍵盤輸入的相應指令完成對應的控制功能。系統主程序流程圖如圖1 示。

圖1 主程序流程圖
本設計采用的是STM32 單片機的系統固件,主要開發環境基于keiluVision5,使用C 語言進行程序的編寫,程序所需要滿足的要求有三點。其一是一般熱水壺所具有的燒開水功能。其二是在指定溫度下,加熱冷水的過程。切換模式完成以后,按下加減按鍵就可以調節需要設定的溫度,水溫一旦到達指定的溫度后,熱水壺就會自動斷電。其三是LM016L 液晶顯示屏上顯示的溫度就是及時溫度,要學會調節工作模式。
由于不同地域之間存在氣壓的差異,所以當溫度達到100 攝氏度時,水不一定能夠燒開,甚至在一些海拔較高的地區,水溫無法加熱到100 度。所以本次設計中注重周期性采樣溫度的方式,注重溫度控制模塊的探索研究,每隔10 秒系統會自動保存一次溫度值。通過每次的采樣對比可以尋找到水溫的最大值,如果沒有更大的水溫值出現,可以等水達到沸點之后,溫度持續穩定3 分鐘以后,一旦水溫此時超過80 攝氏度,說明此時的水已經燒開,隨后電熱水壺可以自動切斷電源。程序中的執行采用定時器進行中斷,在一定程度上也提高了系統的響應速度。
根據設計出來的思路和目標功能的確定,設計出了軟件主要的工作流程。控制程序工作的流程如下:
開始進入燒開水模式和加熱冷水模式;第二部讀取DS18B20 的溫度;周期采樣溫度值找到溫度的最大值判斷是否燒開,達到最大值后保持3min不變,并且最大值超過80攝氏度,則水燒開,達到限定溫度后蜂鳴器報警自動斷電,加熱結束。
在完成設計過程中,首先需要在Protel AItium Designer Summer 軟件上繪制出相關的原理圖,完成PCB 的設計之后,交由電路板制版工廠完成主控電路班的制作過程,還需要完成元器件的焊接與測試部分。在進行焊接的過程中,需要保持著嚴謹認真的工作態度,先后需要焊好主控芯片、還有其他元器件的焊接,當焊接工作結束后對照原理圖檢測電路的具體情況,如果發生短路或者虛焊的現象,需要及時進行修正和調整工作。當一切結束后,下載程序檢測主控核心板是否能夠正常運作,如果主控核心板可以達到預期的工作質量,就可以用為本系統的主控部件。
在熱水壺中盛滿大約100 毫升的冷水,將其放置在涂滿了導熱膠的加熱板上進行加熱,DSI18B20 溫度傳感器的探頭可以在水中實時監測溫度的變化狀況,程序下載到主控板上接通電源后,選擇模式1 進入燒水狀態,并且將觀察結果記錄如下:重復測試燒開水是溫度和所用時間5 次,結果如表1 所示。

表1 結果表
接著重新在水壺內盛滿大約100 毫升的冷水,將燒開水前的準備步驟重復操作一遍,接著連接電源,選擇模式2,初始溫度達到26.51 攝氏度,通過溫度加減調節按鍵設定溫度為50 度,等待5 分后達到設定溫度以后,蜂蜜器會發出警報聲,此時就可以斷電了。
重復測試50 攝氏度時實際的斷電溫度和所用時間各5次,得到的結果如表2 所示。

表2 結果表
在整個測試的過程中,也存在一定的誤差。例如溫度檢測環節引起的數據誤差,但是這個誤差結果是可以接受的范圍以內產生的,由于DS18B20 本身設定的系統誤差,所以在溫度環境不穩定因素的影響下會造成一定誤差。繼電器也會引起誤差現象產生,隨著繼電器對電熱管的不斷加熱,會引發水溫升高,所以交流的負載增加干擾信號也在意料之中。還有一點就是由于電壓波動所造成的誤差也會對實驗造成影響。
本次設計主要使用的是C 語言進行編程設計,軟件能夠兼容單片機C 語言的軟件開發系統,在進行編程的過程中發現出錯的地方能夠清楚標記,這也方便了開發者后續調整改進工作的進行。在完成編程的基礎上,整個調試的工作還包括了工程方面的建立、函數的調用,需要分模塊著重檢查文件是否正確,再根據設計的要求檢查初始化程序,進一步優化程序的結構。最終經歷反復測試以后,系統得以正常運轉,各功能得到了良好的實現。
本設計經過對系統的軟件部分、硬件部分的反復測試,在兩種不同的功能模式下,系統各模塊之間也可以實現正常工作。總體而言,這些功能的最終實現可以滿足設計題目上的要求,外形設計上也提高了靈活性與安全性,具有操作簡單、方便實用的特點。設計所產生的成本并不高昂,能夠進行工業化生產,投入到日常生活中去從現實角度出發,我認為本次設計具有很強的實用意義。
本次設計最終實現了單片機對電熱水壺的操控。在整個系統中最關鍵、核心的電路便是單片機的控制電路,該電路能夠實現信號的輸入與輸出之間的轉換。其次重要的電路是加熱控制電路與溫度檢測,該電路可以準確完成溫度信號的采樣和對具體溫度的控制,最終通過A/D 轉換電路將信號傳送到由單片機控制的電路中去。最后還要設計程序以此來實現各功能的安全進行,滿足人們的日常需求。
通過這次創造性的設計,讓我更加懂得努力學習、認真設計的重要性。從搜集資料、整理文獻到方案的分析與確定,這中間的過程讓我學到了很多關于制作與編寫的操作技能,受益匪淺。我還掌握了很多關于單片機的硬件結構知識,摸索中設計出硬件電路,將其通過編程的方式讓部分硬件的功能能夠實現,書本上的知識也被我用到了實踐中去。原本我并不是很熟悉電路板和程序編寫的任務,但是這次單片機的相關編程和焊接電路板的學習經歷,豐富了我的動手經驗,我也明白了自學的重要性。由于條件有限、時間緊迫,在以后發展中還需要進行總體調試,對系統做出進一步的改進。
本次設計的硬件模塊電路部分并不困難,絕大多數的熱水壺功能都是依靠軟件程序得以實現。在研究學習過程中也遇到很多挫敗和難題無法解決,所幸身邊同學告訴了我關于代碼優化的技巧,幫助我的內容得以更加完善,也為我日后的工作學習打下了不錯的基礎。