郭晉秦,喬家誠(chéng),尹豪哲,喬 寒
(太原工業(yè)學(xué)院 自動(dòng)化系,山西 太原 030008)
據(jù)國(guó)家統(tǒng)計(jì)局公布的相關(guān)數(shù)據(jù)顯示,截至2017年底我國(guó)已有的登記在冊(cè)的綜合市場(chǎng)數(shù)目達(dá)到1 309個(gè),市場(chǎng)攤位數(shù)達(dá)到1 254 329個(gè)。此類市場(chǎng)中進(jìn)行批量稱重作業(yè)時(shí),一般采用的方式是由人工根據(jù)經(jīng)驗(yàn)把握貨物裝填量,對(duì)包裝袋進(jìn)行估計(jì)裝填,再使用傳統(tǒng)的電子秤逐個(gè)進(jìn)行稱重、核準(zhǔn)。這種傳統(tǒng)稱重方式存在效率低下、數(shù)據(jù)不準(zhǔn)確、需要大量人工操作等缺陷,已經(jīng)無(wú)法滿足當(dāng)前社會(huì)對(duì)快速化、智能化的要求。如今WIFI技術(shù)已經(jīng)得到廣泛應(yīng)用,具有使用便捷、傳輸距離遠(yuǎn)等優(yōu)勢(shì)。本文以STC89C51為控制芯片,ESP8266作為數(shù)據(jù)傳輸模塊,設(shè)計(jì)了一種智能高效、可遠(yuǎn)程控制的自動(dòng)稱重系統(tǒng)。
系統(tǒng)總體架構(gòu)設(shè)計(jì)分為三層:一是數(shù)據(jù)采集層。在傳統(tǒng)皮帶秤的基礎(chǔ)上,選用四組合適的壓力傳感器對(duì)貨物重量進(jìn)行實(shí)時(shí)檢測(cè),使用直流驅(qū)動(dòng)電機(jī)帶動(dòng)皮帶運(yùn)轉(zhuǎn)。二是核心控制層。傳感器所測(cè)得的數(shù)據(jù)信息經(jīng)過(guò)AD模塊轉(zhuǎn)換后,傳送到STC89C51芯片中進(jìn)行處理,并在LCD1602屏幕上實(shí)時(shí)顯示。三是終端控制層,利用WIFI模塊進(jìn)行數(shù)據(jù)的雙向傳輸,實(shí)現(xiàn)電機(jī)速度調(diào)節(jié)、系統(tǒng)參數(shù)設(shè)置等遠(yuǎn)程操控功能,其結(jié)構(gòu)設(shè)計(jì)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)Fig.1 System structure design
系統(tǒng)硬件部分由MCU控制模塊、傳感器模塊、AD模塊、LCD顯示模塊、電機(jī)驅(qū)動(dòng)模塊、WIFI模塊、電源模塊等構(gòu)成,總體框圖如圖2所示。
圖2 硬件總體框圖Fig.2 Hardware general box chart
MCU控制模塊是以STC89C51芯片為核心組成的小型控制系統(tǒng)。STC89C51芯片擁有靈巧的8位CPU和可編程Flash,使其在嵌入式控制應(yīng)用系統(tǒng)得到了廣泛的應(yīng)用[1]。在本設(shè)計(jì)中,主要通過(guò)RXD和TXD引腳與ESP8266模塊進(jìn)行串口通訊,使用P1口來(lái)連接傳感器信號(hào)和電機(jī)信號(hào),以及LCD1602顯示等信號(hào)。
本模塊采用平行梁?jiǎn)吸c(diǎn)式壓力傳感器感知壓力信號(hào),完成稱重?cái)?shù)據(jù)的采集。該傳感器數(shù)據(jù)精度高、稱重量程大、穩(wěn)定性好,并且安裝使用簡(jiǎn)單方便,采集到的數(shù)據(jù)信號(hào)以電信號(hào)形式進(jìn)行傳輸。傳感器通過(guò)四根導(dǎo)線進(jìn)行連接,兩根為±5 V電源線,為傳感器提供穩(wěn)定的工作電壓,另外兩根為正負(fù)信號(hào)線,傳感器內(nèi)部生成的電脈沖信號(hào)通過(guò)信號(hào)線進(jìn)行傳輸。
本設(shè)計(jì)中使用了四組壓力傳感器,以保證所測(cè)數(shù)據(jù)的準(zhǔn)確性。
本設(shè)計(jì)中,AD模塊采用24位高精度A/D轉(zhuǎn)換器芯片HX711,該芯片具有兩路模擬通道輸入,內(nèi)部集成了128倍增益可編程放大器,是一款理想的高精度、低成本的采樣前端模塊,符合高精度稱重的選型要求。
壓力傳感器通過(guò)連接HX711數(shù)據(jù)采集結(jié)構(gòu),將測(cè)得的電脈沖信號(hào)轉(zhuǎn)化為單片機(jī)能夠識(shí)別的數(shù)字信號(hào)。HX711芯片所需外圍電路均已集成于模塊當(dāng)中,簡(jiǎn)化了與MCU的連接。壓力傳感器通過(guò)四根外接導(dǎo)線直接與HX711進(jìn)行連接,輸入信號(hào)可任意選擇通道A、B。HX711工作電壓與傳感器相同,可直接向傳感器供電,上電即可自動(dòng)復(fù)位。AD模塊外設(shè)四個(gè)引腳與單片機(jī)連接,兩個(gè)±5 V電源引腳,兩個(gè)信號(hào)引腳DOUT、SCK分別對(duì)應(yīng)連接單片機(jī)的兩個(gè)I/O口,可將重量數(shù)據(jù)送到MCU內(nèi)部進(jìn)行處理。AD模塊接口電路如圖3所示。
圖3 AD模塊接口電路(以一組為例)Fig.3 AD module interface circuit(take a group as an example)
本設(shè)計(jì)采用LCD1602來(lái)顯示稱重?cái)?shù)值和開(kāi)關(guān)狀態(tài)等信息。LCD1602的顯示容量為16×2個(gè)字符,工作電壓5 V,它與單片機(jī)的接線如圖4所示。其中,1腳接地;2腳接5 V電源;3腳為顯示器的對(duì)比度調(diào)整引腳,與一個(gè)10 K的電位器相連進(jìn)行調(diào)節(jié);4腳RS接P2.6,為數(shù)據(jù)/命令選擇端;5腳RW接P2.5,讀寫信號(hào)
圖4 LCD接口電路Fig.4 LCD interface circuit
控制端;6腳EN接P2.7,為使能端;7~14腳DB0~DB7對(duì)應(yīng)連接P0,進(jìn)行數(shù)據(jù)的讀寫。
本模塊選用樂(lè)鑫公司的基于UART接口的ESP8266-12芯片[1]。ESP8266芯片能夠?qū)崿F(xiàn)用戶數(shù)據(jù)和機(jī)器數(shù)據(jù)基于WIFI的相互傳輸。它有兩種驅(qū)動(dòng)方法。第一種是直接將ESP8266作為單片機(jī),通過(guò)I/O口進(jìn)行控制;該方法成本較小,但開(kāi)發(fā)難度大,需使用特定代碼才能實(shí)現(xiàn)。第二種是外接單片機(jī),而ESP8266僅完成數(shù)據(jù)、命令傳輸功能;該方法需要通過(guò)AT指令來(lái)完成,該方案開(kāi)發(fā)易于實(shí)現(xiàn),性能穩(wěn)定,但成本相對(duì)較高。本設(shè)計(jì)選用第二種方案。使用時(shí)將ESP8266的TXD、RXD引腳分別連接單片機(jī)的P3.0和P3.1口;ESP8266的9腳和11腳通過(guò)1K的上拉電阻外接3.3 V電源,如圖5所示。
圖5 WIFI模塊接口電路Fig.5 WIFI module interface circuit
設(shè)置WIFI模塊的工作模式。ESP8266支持AP模式、station模式和AP+station 共存模式三種模式。本文采用AP+station模式,ESP8266產(chǎn)生一個(gè)WIFI熱點(diǎn),終端設(shè)備接入熱點(diǎn),組建一個(gè)小型局域網(wǎng)。單片機(jī)通過(guò)AT指令對(duì)模塊進(jìn)行初始化配置。配置指令如下:
系統(tǒng)使用200 W 9 A的直流電機(jī)帶動(dòng)傳送帶的運(yùn)行,運(yùn)行快慢對(duì)稱重系統(tǒng)的準(zhǔn)確度有很大影響,且速度太快可能會(huì)對(duì)操作人員產(chǎn)生傷害。所以電機(jī)速度的精準(zhǔn)調(diào)節(jié)顯得相當(dāng)重要。本設(shè)計(jì)使用PWM方法控制電機(jī)運(yùn)行。PWM控制方法是指在保持周期不變的情況下,通過(guò)調(diào)節(jié)脈沖寬度達(dá)到調(diào)節(jié)電機(jī)轉(zhuǎn)速的目的,即改變直流電機(jī)電樞上電壓的“占空比”來(lái)改變平均電壓的大小,控制電機(jī)轉(zhuǎn)速。此方法具有運(yùn)行穩(wěn)定、執(zhí)行方便的特點(diǎn)。
設(shè)置較低的占空比可以降低電機(jī)運(yùn)行的起動(dòng)速度,達(dá)到本系統(tǒng)的運(yùn)行要求。通過(guò)控制單片機(jī)的外設(shè)按鍵,來(lái)改變占空比的大小,實(shí)現(xiàn)電機(jī)速度的多級(jí)調(diào)節(jié),滿足系統(tǒng)設(shè)計(jì)要求。
考慮到稱重系統(tǒng)在實(shí)際使用中的工作需求和電機(jī)的參數(shù)要求,本文采用600 W、24 V的開(kāi)關(guān)電源為直流電機(jī)以及整個(gè)控制系統(tǒng)進(jìn)行供電。開(kāi)關(guān)電源可靠性高,具有輸出波動(dòng)小、低噪音、工作狀態(tài)穩(wěn)定、抗干擾性能好等優(yōu)點(diǎn)。開(kāi)關(guān)電源通過(guò)外接三孔插頭與220 V交流電源連接,電源接地有效保障了系統(tǒng)的安全性。
主程序部分的工作過(guò)程分析:通電后各模塊進(jìn)行上電初始化,LCD屏幕點(diǎn)亮,顯示系統(tǒng)開(kāi)機(jī);對(duì)啟動(dòng)鍵A進(jìn)行掃描,當(dāng)檢測(cè)到啟動(dòng)開(kāi)關(guān)被按下,驅(qū)動(dòng)電機(jī),皮帶開(kāi)始運(yùn)轉(zhuǎn),系統(tǒng)進(jìn)入工作模式,在LCD屏上實(shí)時(shí)顯示稱重?cái)?shù)據(jù);工作模式下對(duì)壓力測(cè)量值與預(yù)設(shè)值進(jìn)行重復(fù)比較,當(dāng)壓力測(cè)量值在預(yù)設(shè)值±5%范圍內(nèi),完成一次稱重,間隔10 s后進(jìn)入下一個(gè)稱重周期。如果測(cè)量值連續(xù)3個(gè)周期為零,則電機(jī)停止運(yùn)行,系統(tǒng)進(jìn)入待機(jī)狀態(tài),直到按下啟動(dòng)鍵A恢復(fù)工作狀態(tài)。
按下啟動(dòng)鍵A電機(jī)啟動(dòng),程序繼續(xù)掃描按鍵。本系統(tǒng)共設(shè)置有4個(gè)功能按鍵,分別是啟動(dòng)按鍵A,停止按鍵B,加速按鍵1,減速按鍵2。其中停止按鍵設(shè)置最高優(yōu)先級(jí),確保運(yùn)行安全。主程序流程圖如圖6所示。
圖6 主程序與按鍵控制程序流程圖Fig.6 Master program and key control program flowchart
系統(tǒng)使用ESP8266模塊進(jìn)行通信。程序掃描與傳感器所連接I/O口是否收到數(shù)據(jù),當(dāng)檢測(cè)到有數(shù)據(jù)傳入,程序讀取數(shù)據(jù)后,發(fā)送到連接在同一網(wǎng)絡(luò)下的終端設(shè)備中。也可以從終端軟件發(fā)出動(dòng)作指令,指令信號(hào)發(fā)送到ESP8266模塊,當(dāng)程序檢測(cè)到有指令傳入,讀取指令給芯片,經(jīng)過(guò)芯片處理后進(jìn)行相應(yīng)動(dòng)作。數(shù)據(jù)收發(fā)流程圖如圖7所示。
圖7 模塊數(shù)據(jù)發(fā)送和接受流程圖Fig.7 Flow chart for module data sending and receiving
本文從市場(chǎng)實(shí)際需求出發(fā),設(shè)計(jì)了一款基于WIFI傳輸?shù)淖詣?dòng)稱重系統(tǒng),以STC89C51單片機(jī)為核心控制元件[2],實(shí)現(xiàn)數(shù)據(jù)采集、傳輸、顯示,數(shù)據(jù)終端顯示,終端速度調(diào)節(jié)等功能。本系統(tǒng)安裝方便,使用簡(jiǎn)單,功能可靠,具有很強(qiáng)的實(shí)用性。