王昂,周智恒,李海俠,梁鴻櫟
(桂林理工大學 機械與控制工程學院,廣西桂林,541004)
隨著中國社會的不斷繁榮發展,我國人民日益增長地對美好生活的需要,寵物養殖需求成為近些年來活躍在年輕人中的一個重大需求,然而由于社會的壓力及工作的繁忙,大多數年輕人不具備完善的養殖寵物的能力,這使得大多數寵物得不到良好的照顧而患病,也使得寵物主人花費更多的時間和金錢,并且對環境要求苛刻的寵物在養護方面對于環境溫度、濕度和食物量等方面有更高的要求。如何科學有效地提高寵物養殖的智能一體化,是廣大寵物愛好者考慮的重要問題,一個完善的智能溫感稱重小車設計顯得尤為重要。
本文針對寵物養殖出現的問題,設計了一款基于單片機的智能溫感稱重小車,以STC89C52 單片機為核心,考慮了寵物對環境溫度、濕度、通風條件和食物需求量等的特殊要求,設計實現了針對寵物養殖環境控制系統,與普通家用控制系統相比,在溫濕度控制及通風、定時投食控制方面均有較大不同。通過對系統進行測試,結果證明該系統反應靈敏,能夠滿足基本要求,且具有簡單易操作和經濟實用等優點。
本文設計基于單片機的智能溫感稱重小車,利用DS18B20 溫濕度傳感器模塊[1]可以實時實現對溫濕度的智能調控;利用HC-SR 04 超聲波測距模塊實時檢測與障礙物之間的距離,當檢測到障礙物時,HC-SR04 超聲波測距模塊[2]輸出指示燈亮,系統報警;利用壓力傳感器模塊實時檢測食物的余量;利用DS18B20 數字溫度傳感器實時檢測溫度,將溫度變化信號轉換為數字的信號;利用OLED 屏會顯示系統相關信息;然后利用按鈕進行緊急的情況確認,并啟動蜂鳴器報警程序。
本文設計的智能溫感稱重小車有手動控制和自動控制兩種模式,系統上電后默認為自動控制模式,此時溫濕度傳感器模塊、壓力傳感器模塊和HC-SR04 超聲波測距模塊正在運行。切換到手動模式后,可以通過紅外遙控裝置對智能小車進行控制并對寵物生活環境溫度、濕度和食物余量進行實時監測,并作出相應的指令,同時系統可手動調節相關閾值。當溫濕度超過設定閾值時,系統啟動自動降溫補水裝置,并通過DS18B20 溫濕度傳感器模塊發送當前環境溫度相關信息到LCD1602 模塊實時顯示。若食物余量不足,HX711發送信息至投食裝置,并同時發送信息到用戶手機,提醒用戶實時關注寵物當前狀況。

圖1 智能溫感小車控制系統示意圖
智能溫感稱重小車的機械結構設計包括車身結構、輪子、電機、前后輪懸掛、重量傳感器等。車身結構需要考慮到小車的穩定性、承重能力和機動性。輪子需要具有一定的耐磨性和抗滑性,以便小車能夠在不同的路面上行駛。電機需要根據小車的負載和速度要求來選擇。前后輪懸掛結構需要能夠緩沖小車在不平路面上的震動,從而保證小車的穩定性。其結構組成如圖2 所示。

圖2 機械結構設計組成圖
控制系統選擇STC89C52 單片機為控制芯片。STC89C52 單片機是一種常見的基于8051 內核的單片機,STC89C52 單片機采用了經典的8051 內核架構,這使得它非常成熟和穩定。電路簡單、豐富的存儲空間、豐富的外設和接口、低功耗[3]。
壓力檢測模塊采用HX711 傳感器HX711 傳感器采用了特殊的采樣技術和抗干擾設計,具有較好的抗干擾能力和穩定性。它能夠在復雜的環境中提供可靠的測量結果,并且對溫度變化和電源波動的影響較小。
顯示模塊采用LCD1602 顯示器LCD1602 顯示器采用液晶技術,可以顯示2 行16 列的字符信息,每個字符由5×8 個像素點組成。它能夠以高對比度、清晰可見的方式顯示文本和簡單圖形,使得信息易于閱讀和理解。總而言之,LCD1602 顯示器具有顯示效果清晰、低功耗、簡單接口、可編程性、低成本和可靠性等優點。它在各種應用場景中被廣泛使用,如嵌入式系統、儀器儀表、家電和DIY 項目等,為用戶提供清晰可見的字符信息顯示功能。
溫度檢測模塊采用DS18B20 數字溫度傳感器,DS18B20 數字溫度傳感器具有單總線接口、高精度測量、多點測量、低功耗設計、高抗干擾能力、寬工作溫度范圍和工作穩定可靠等優點。它在溫度監測和控制領域得到廣泛應用,如室內溫度監測、氣象站、工業自動化等。
電機驅動模塊采用ULN2003,電機驅動模塊ULN2003是一種常用的集成電路,用于驅動步進電機或直流電機。具有高可靠性、多通道輸出、內部保護功能、方便接口、市場成熟度高和成本效益高等優點。它被廣泛應用于各種電機控制和驅動系統中,為用戶提供便捷可靠的電機驅動解決方案。
報警模塊采用蜂鳴器、1k 電阻和PNP8550 三極管組成,蜂鳴器通常體積小巧,可以方便地安裝在各種電子設備中。這使得它可以被廣泛應用于各種小型電子產品和嵌入式系統中。蜂鳴器通常具有較低的功耗,尤其是無源蜂鳴器,不需要外部電源供應。這使得它在需要長時間工作或電源資源有限的場合下非常實用。
電源模塊采用Micro-USB 作為電源接入口,接口設計了反插保護機制,即接口只能正確連接在一個方向上,避免了錯誤插入導致的損壞。圖3 為整體硬件電路示例圖。

圖3 整體硬件電路圖
智能溫感稱重小車使用的STC89C52 資源為:電機DC引腳與單片機P1.0~P1.3 引腳連接,壓力傳感器DC 端口與單片機P2.0~P2.1 引腳連接,溫度傳感器DQ 引腳與單片機P3.7 引腳連接,顯示模塊將LCD1602 的RS、RW 和EN 引腳分別連接單片機的P2.6、P2.5 和P2.7 引腳,去皮按鍵DO 引腳與單片P3.1 引腳連接,還原按鍵可以和單片機引腳P 三點零連接,進行精確測量和數據的傳輸,在按鍵功能中加減、減鍵和確認鍵分別與單片機P3.3、P3.4 和P3.5引腳相連,報警模塊與單片機P3.6 引腳相連,電源模塊與單片機USB 口相連。單片機I/O 口資源分配如表1 所示。

表1 智能溫感稱重小車單片機I/O口及外設資源分配表
系統編程一般采取模塊化的設計思想,先創建和調試好各種子進程,然后再把這些子程序進行排列組合,重組為一個整體的程序。這樣的設計思想不但便于整個系統的正常運行,同時也可以簡單快捷地在項目間實現人員遷移,從而簡化了項目開發周期。
HX711 是根據單晶硅不定向應力時電導率是同性的只有定向受力時才表現出各項異性,由于應力能引起能帶的變化,能谷能量移動,導致電阻率的變換,從而產生壓阻效應。其壓力傳感器模塊的流程圖如圖4 所示。

圖4 壓力傳感器模塊流程圖
DS18B20 初始化:主器件首先發出一個480~960ms 的低電平脈沖,然后釋放總線變為高電平,并在隨后的480μs時間內對總線進行檢測,如果有低電平出現說明總線上有DS18B20 溫度傳感器已做出應答。若無低電平出現一直都是高電平說明總線上無DS18B20溫度傳感器應答。說明總線上無DS18B20 溫度傳感器應答。
DS18B20 溫度轉換原理:DS18B20 溫度傳感器返回16位二進制數代表此刻探測的溫度值,其高五位代表正負。如果高五位全部為1,則代表返回的溫度值為負值。如果高五位全部為0,則代表返回的溫度值為正值。其溫度傳感器模塊的流程圖如圖5 所示。

圖5 溫度傳感器模塊流程圖
本文采用以SSD1306為驅動IC 的OLED 顯示模塊作為顯示器件,單片機對LCD1602 的控制就是對其驅動芯片的控制,其控制顯示過程為:復位->驅動IC 初始化代碼->開啟顯示->清零顯示->開始顯示(顯示實時檢測值與設置閾值)。其LCD1602 顯示屏模塊的流程圖如圖6 所示。

圖6 LCD 顯示屏模塊流程圖
系統上電后,顯示屏顯示預設溫度閾值與實際溫度值。若系統上電后無故產生報警,超聲波模塊輸出指示燈或壓力傳感器模塊輸出指示燈亮起,則需調節模塊靈敏度。
實驗中,打開超聲波傳感器模塊,當檢測距離小于閾值時系統啟動報警,顯示屏顯示相應閃爍字樣提示報警信息。當壓力傳感器檢測到食物余量小于預設值時,系統報警,顯示屏分別顯示相應閃爍字樣。當溫度傳感器檢測到的溫度值超過系統設置上限值,系統同樣會啟動報警并在顯示屏上顯示相應閃爍字樣。圖7 為串口通信顯示超聲波測試數據的示例圖。
本文設計、制作了一個基于STC89C52 的智能溫感稱重小車,可實時監測寵物生長環境溫度濕度是否泄露不適的情況,以及食物是否需要補充,并在屏上顯示相關信息。用戶便可根據手機上的數據操作小車進行降溫、加濕或者投食操作。