王昂,周智恒,李海俠,梁鴻櫟
(桂林理工大學(xué) 機(jī)械與控制工程學(xué)院,廣西桂林,541004)
隨著中國(guó)社會(huì)的不斷繁榮發(fā)展,我國(guó)人民日益增長(zhǎng)地對(duì)美好生活的需要,寵物養(yǎng)殖需求成為近些年來活躍在年輕人中的一個(gè)重大需求,然而由于社會(huì)的壓力及工作的繁忙,大多數(shù)年輕人不具備完善的養(yǎng)殖寵物的能力,這使得大多數(shù)寵物得不到良好的照顧而患病,也使得寵物主人花費(fèi)更多的時(shí)間和金錢,并且對(duì)環(huán)境要求苛刻的寵物在養(yǎng)護(hù)方面對(duì)于環(huán)境溫度、濕度和食物量等方面有更高的要求。如何科學(xué)有效地提高寵物養(yǎng)殖的智能一體化,是廣大寵物愛好者考慮的重要問題,一個(gè)完善的智能溫感稱重小車設(shè)計(jì)顯得尤為重要。
本文針對(duì)寵物養(yǎng)殖出現(xiàn)的問題,設(shè)計(jì)了一款基于單片機(jī)的智能溫感稱重小車,以STC89C52 單片機(jī)為核心,考慮了寵物對(duì)環(huán)境溫度、濕度、通風(fēng)條件和食物需求量等的特殊要求,設(shè)計(jì)實(shí)現(xiàn)了針對(duì)寵物養(yǎng)殖環(huán)境控制系統(tǒng),與普通家用控制系統(tǒng)相比,在溫濕度控制及通風(fēng)、定時(shí)投食控制方面均有較大不同。通過對(duì)系統(tǒng)進(jìn)行測(cè)試,結(jié)果證明該系統(tǒng)反應(yīng)靈敏,能夠滿足基本要求,且具有簡(jiǎn)單易操作和經(jīng)濟(jì)實(shí)用等優(yōu)點(diǎn)。
本文設(shè)計(jì)基于單片機(jī)的智能溫感稱重小車,利用DS18B20 溫濕度傳感器模塊[1]可以實(shí)時(shí)實(shí)現(xiàn)對(duì)溫濕度的智能調(diào)控;利用HC-SR 04 超聲波測(cè)距模塊實(shí)時(shí)檢測(cè)與障礙物之間的距離,當(dāng)檢測(cè)到障礙物時(shí),HC-SR04 超聲波測(cè)距模塊[2]輸出指示燈亮,系統(tǒng)報(bào)警;利用壓力傳感器模塊實(shí)時(shí)檢測(cè)食物的余量;利用DS18B20 數(shù)字溫度傳感器實(shí)時(shí)檢測(cè)溫度,將溫度變化信號(hào)轉(zhuǎn)換為數(shù)字的信號(hào);利用OLED 屏?xí)@示系統(tǒng)相關(guān)信息;然后利用按鈕進(jìn)行緊急的情況確認(rèn),并啟動(dòng)蜂鳴器報(bào)警程序。
本文設(shè)計(jì)的智能溫感稱重小車有手動(dòng)控制和自動(dòng)控制兩種模式,系統(tǒng)上電后默認(rèn)為自動(dòng)控制模式,此時(shí)溫濕度傳感器模塊、壓力傳感器模塊和HC-SR04 超聲波測(cè)距模塊正在運(yùn)行。切換到手動(dòng)模式后,可以通過紅外遙控裝置對(duì)智能小車進(jìn)行控制并對(duì)寵物生活環(huán)境溫度、濕度和食物余量進(jìn)行實(shí)時(shí)監(jiān)測(cè),并作出相應(yīng)的指令,同時(shí)系統(tǒng)可手動(dòng)調(diào)節(jié)相關(guān)閾值。當(dāng)溫濕度超過設(shè)定閾值時(shí),系統(tǒng)啟動(dòng)自動(dòng)降溫補(bǔ)水裝置,并通過DS18B20 溫濕度傳感器模塊發(fā)送當(dāng)前環(huán)境溫度相關(guān)信息到LCD1602 模塊實(shí)時(shí)顯示。若食物余量不足,HX711發(fā)送信息至投食裝置,并同時(shí)發(fā)送信息到用戶手機(jī),提醒用戶實(shí)時(shí)關(guān)注寵物當(dāng)前狀況。
圖1 智能溫感小車控制系統(tǒng)示意圖
智能溫感稱重小車的機(jī)械結(jié)構(gòu)設(shè)計(jì)包括車身結(jié)構(gòu)、輪子、電機(jī)、前后輪懸掛、重量傳感器等。車身結(jié)構(gòu)需要考慮到小車的穩(wěn)定性、承重能力和機(jī)動(dòng)性。輪子需要具有一定的耐磨性和抗滑性,以便小車能夠在不同的路面上行駛。電機(jī)需要根據(jù)小車的負(fù)載和速度要求來選擇。前后輪懸掛結(jié)構(gòu)需要能夠緩沖小車在不平路面上的震動(dòng),從而保證小車的穩(wěn)定性。其結(jié)構(gòu)組成如圖2 所示。
圖2 機(jī)械結(jié)構(gòu)設(shè)計(jì)組成圖
控制系統(tǒng)選擇STC89C52 單片機(jī)為控制芯片。STC89C52 單片機(jī)是一種常見的基于8051 內(nèi)核的單片機(jī),STC89C52 單片機(jī)采用了經(jīng)典的8051 內(nèi)核架構(gòu),這使得它非常成熟和穩(wěn)定。電路簡(jiǎn)單、豐富的存儲(chǔ)空間、豐富的外設(shè)和接口、低功耗[3]。
壓力檢測(cè)模塊采用HX711 傳感器HX711 傳感器采用了特殊的采樣技術(shù)和抗干擾設(shè)計(jì),具有較好的抗干擾能力和穩(wěn)定性。它能夠在復(fù)雜的環(huán)境中提供可靠的測(cè)量結(jié)果,并且對(duì)溫度變化和電源波動(dòng)的影響較小。
顯示模塊采用LCD1602 顯示器LCD1602 顯示器采用液晶技術(shù),可以顯示2 行16 列的字符信息,每個(gè)字符由5×8 個(gè)像素點(diǎn)組成。它能夠以高對(duì)比度、清晰可見的方式顯示文本和簡(jiǎn)單圖形,使得信息易于閱讀和理解??偠灾琇CD1602 顯示器具有顯示效果清晰、低功耗、簡(jiǎn)單接口、可編程性、低成本和可靠性等優(yōu)點(diǎn)。它在各種應(yīng)用場(chǎng)景中被廣泛使用,如嵌入式系統(tǒng)、儀器儀表、家電和DIY 項(xiàng)目等,為用戶提供清晰可見的字符信息顯示功能。
溫度檢測(cè)模塊采用DS18B20 數(shù)字溫度傳感器,DS18B20 數(shù)字溫度傳感器具有單總線接口、高精度測(cè)量、多點(diǎn)測(cè)量、低功耗設(shè)計(jì)、高抗干擾能力、寬工作溫度范圍和工作穩(wěn)定可靠等優(yōu)點(diǎn)。它在溫度監(jiān)測(cè)和控制領(lǐng)域得到廣泛應(yīng)用,如室內(nèi)溫度監(jiān)測(cè)、氣象站、工業(yè)自動(dòng)化等。
電機(jī)驅(qū)動(dòng)模塊采用ULN2003,電機(jī)驅(qū)動(dòng)模塊ULN2003是一種常用的集成電路,用于驅(qū)動(dòng)步進(jìn)電機(jī)或直流電機(jī)。具有高可靠性、多通道輸出、內(nèi)部保護(hù)功能、方便接口、市場(chǎng)成熟度高和成本效益高等優(yōu)點(diǎn)。它被廣泛應(yīng)用于各種電機(jī)控制和驅(qū)動(dòng)系統(tǒng)中,為用戶提供便捷可靠的電機(jī)驅(qū)動(dòng)解決方案。
報(bào)警模塊采用蜂鳴器、1k 電阻和PNP8550 三極管組成,蜂鳴器通常體積小巧,可以方便地安裝在各種電子設(shè)備中。這使得它可以被廣泛應(yīng)用于各種小型電子產(chǎn)品和嵌入式系統(tǒng)中。蜂鳴器通常具有較低的功耗,尤其是無源蜂鳴器,不需要外部電源供應(yīng)。這使得它在需要長(zhǎng)時(shí)間工作或電源資源有限的場(chǎng)合下非常實(shí)用。
電源模塊采用Micro-USB 作為電源接入口,接口設(shè)計(jì)了反插保護(hù)機(jī)制,即接口只能正確連接在一個(gè)方向上,避免了錯(cuò)誤插入導(dǎo)致的損壞。圖3 為整體硬件電路示例圖。
圖3 整體硬件電路圖
智能溫感稱重小車使用的STC89C52 資源為:電機(jī)DC引腳與單片機(jī)P1.0~P1.3 引腳連接,壓力傳感器DC 端口與單片機(jī)P2.0~P2.1 引腳連接,溫度傳感器DQ 引腳與單片機(jī)P3.7 引腳連接,顯示模塊將LCD1602 的RS、RW 和EN 引腳分別連接單片機(jī)的P2.6、P2.5 和P2.7 引腳,去皮按鍵DO 引腳與單片P3.1 引腳連接,還原按鍵可以和單片機(jī)引腳P 三點(diǎn)零連接,進(jìn)行精確測(cè)量和數(shù)據(jù)的傳輸,在按鍵功能中加減、減鍵和確認(rèn)鍵分別與單片機(jī)P3.3、P3.4 和P3.5引腳相連,報(bào)警模塊與單片機(jī)P3.6 引腳相連,電源模塊與單片機(jī)USB 口相連。單片機(jī)I/O 口資源分配如表1 所示。
表1 智能溫感稱重小車單片機(jī)I/O口及外設(shè)資源分配表
系統(tǒng)編程一般采取模塊化的設(shè)計(jì)思想,先創(chuàng)建和調(diào)試好各種子進(jìn)程,然后再把這些子程序進(jìn)行排列組合,重組為一個(gè)整體的程序。這樣的設(shè)計(jì)思想不但便于整個(gè)系統(tǒng)的正常運(yùn)行,同時(shí)也可以簡(jiǎn)單快捷地在項(xiàng)目間實(shí)現(xiàn)人員遷移,從而簡(jiǎn)化了項(xiàng)目開發(fā)周期。
HX711 是根據(jù)單晶硅不定向應(yīng)力時(shí)電導(dǎo)率是同性的只有定向受力時(shí)才表現(xiàn)出各項(xiàng)異性,由于應(yīng)力能引起能帶的變化,能谷能量移動(dòng),導(dǎo)致電阻率的變換,從而產(chǎn)生壓阻效應(yīng)。其壓力傳感器模塊的流程圖如圖4 所示。
圖4 壓力傳感器模塊流程圖
DS18B20 初始化:主器件首先發(fā)出一個(gè)480~960ms 的低電平脈沖,然后釋放總線變?yōu)楦唠娖?,并在隨后的480μs時(shí)間內(nèi)對(duì)總線進(jìn)行檢測(cè),如果有低電平出現(xiàn)說明總線上有DS18B20 溫度傳感器已做出應(yīng)答。若無低電平出現(xiàn)一直都是高電平說明總線上無DS18B20溫度傳感器應(yīng)答。說明總線上無DS18B20 溫度傳感器應(yīng)答。
DS18B20 溫度轉(zhuǎn)換原理:DS18B20 溫度傳感器返回16位二進(jìn)制數(shù)代表此刻探測(cè)的溫度值,其高五位代表正負(fù)。如果高五位全部為1,則代表返回的溫度值為負(fù)值。如果高五位全部為0,則代表返回的溫度值為正值。其溫度傳感器模塊的流程圖如圖5 所示。
圖5 溫度傳感器模塊流程圖
本文采用以SSD1306為驅(qū)動(dòng)IC 的OLED 顯示模塊作為顯示器件,單片機(jī)對(duì)LCD1602 的控制就是對(duì)其驅(qū)動(dòng)芯片的控制,其控制顯示過程為:復(fù)位->驅(qū)動(dòng)IC 初始化代碼->開啟顯示->清零顯示->開始顯示(顯示實(shí)時(shí)檢測(cè)值與設(shè)置閾值)。其LCD1602 顯示屏模塊的流程圖如圖6 所示。
圖6 LCD 顯示屏模塊流程圖
系統(tǒng)上電后,顯示屏顯示預(yù)設(shè)溫度閾值與實(shí)際溫度值。若系統(tǒng)上電后無故產(chǎn)生報(bào)警,超聲波模塊輸出指示燈或壓力傳感器模塊輸出指示燈亮起,則需調(diào)節(jié)模塊靈敏度。
實(shí)驗(yàn)中,打開超聲波傳感器模塊,當(dāng)檢測(cè)距離小于閾值時(shí)系統(tǒng)啟動(dòng)報(bào)警,顯示屏顯示相應(yīng)閃爍字樣提示報(bào)警信息。當(dāng)壓力傳感器檢測(cè)到食物余量小于預(yù)設(shè)值時(shí),系統(tǒng)報(bào)警,顯示屏分別顯示相應(yīng)閃爍字樣。當(dāng)溫度傳感器檢測(cè)到的溫度值超過系統(tǒng)設(shè)置上限值,系統(tǒng)同樣會(huì)啟動(dòng)報(bào)警并在顯示屏上顯示相應(yīng)閃爍字樣。圖7 為串口通信顯示超聲波測(cè)試數(shù)據(jù)的示例圖。
本文設(shè)計(jì)、制作了一個(gè)基于STC89C52 的智能溫感稱重小車,可實(shí)時(shí)監(jiān)測(cè)寵物生長(zhǎng)環(huán)境溫度濕度是否泄露不適的情況,以及食物是否需要補(bǔ)充,并在屏上顯示相關(guān)信息。用戶便可根據(jù)手機(jī)上的數(shù)據(jù)操作小車進(jìn)行降溫、加濕或者投食操作。