摘要:為提高農(nóng)村集中供水的管理效率和保障居民正常用水,設(shè)計了基于STC單片機的智能遠程水塔集群監(jiān)控系統(tǒng)。系統(tǒng)硬件電路以STC單片機作為處理器,實現(xiàn)了穩(wěn)定可靠的數(shù)據(jù)采集、數(shù)據(jù)傳輸和水塔控制功能;上位機監(jiān)控軟件將采集到的水位信息通過圖表和字符的方式顯示在界面上,并根據(jù)設(shè)置的水塔參數(shù)自動計算水塔的用水量等數(shù)據(jù)并將所有采集到和計算出的數(shù)據(jù)保存至數(shù)據(jù)庫。結(jié)果表明,該系統(tǒng)工作穩(wěn)定,軟件界面友好,操作方便。
關(guān)鍵詞:STC單片機;水塔;集群監(jiān)控
中圖分類號:TP212.1 文獻標識碼:A 文章編號:0439-8114(2013)14-3415-05
農(nóng)村集中供水是當前國家為解決農(nóng)村生活用水問題的一項重大政策,它直接關(guān)系到居民生活用水安全。集中供水具有效率高、便于管理等優(yōu)點。但是,由于供水范圍擴大,用戶增多,對水塔的供水能力提出了更高的要求。為充分利用現(xiàn)有水塔和保障供水,一個集中供水點有多個水塔對居民進行供水,而且多個水塔之間距離較遠,這給人工水塔監(jiān)控帶來不便。為了及時可靠地對集群水塔進行監(jiān)控和管理,研究針對具有4個水塔的集中供水點設(shè)計了基于STC單片機的遠程水塔集群監(jiān)控系統(tǒng)[1-5]。
1 系統(tǒng)總體方案介紹
遠程水塔集群監(jiān)控系統(tǒng)包括底層硬件系統(tǒng)和上位機監(jiān)控軟件兩部分。遠程水塔集群監(jiān)控系統(tǒng)結(jié)構(gòu)如圖1所示。遠程水塔集群監(jiān)控系統(tǒng)采用433 MHz的無線數(shù)傳模塊進行水位數(shù)據(jù)和控制信號的傳輸。4個水塔距監(jiān)控中心的距離從100 m到3 km不等,為保證數(shù)據(jù)傳輸?shù)目煽啃?,系統(tǒng)全部采用傳輸距離為4 km的無線數(shù)傳模塊。每個水塔檢測點能完成對水位高度的檢測以及對水泵和閥門的控制功能,檢測點將檢測到的水位數(shù)據(jù)傳輸?shù)街魈幚砥髦?。主處理器通過串行端口與監(jiān)控中心PC機進行通信,將采集到的水位數(shù)據(jù)傳輸給上位機人機監(jiān)控軟件。監(jiān)控軟件通過判斷當前該水塔的水位狀態(tài),適時下發(fā)控制命令對該水塔的水泵和閥門進行控制。
2 硬件系統(tǒng)設(shè)計
2.1 監(jiān)控中心硬件電路組成框圖設(shè)計
監(jiān)控中心電路主要負責(zé)采集各個水塔檢測點的水位數(shù)據(jù),并將數(shù)據(jù)發(fā)送到監(jiān)控中心PC機上,然后適時接收監(jiān)控中心PC機下發(fā)的控制命令,并將命令轉(zhuǎn)發(fā)到水塔檢測點控制水塔的水泵和閥門。如圖2所示,監(jiān)控中心硬件電路由電源模塊、STC單片機處理器、433 MHz無線數(shù)傳模塊、串口模塊以及工作指示模塊等組成。
監(jiān)控中心硬件電路的核心處理器采用的是STC12C5A32S2單片機,該單片機具有增強型8051內(nèi)核,速度比普通8051快8~12倍,具有雙串口和硬件看門狗。電源模塊將從電源適配器輸入的12 V直流電轉(zhuǎn)換成5 V的直流電,給整個監(jiān)控中心硬件電路提供穩(wěn)定可靠的電源,以保證監(jiān)控中心長期穩(wěn)定工作。無線數(shù)據(jù)模塊用來收發(fā)無線數(shù)據(jù),通過串口與處理器進行數(shù)據(jù)交換,將采集到的數(shù)據(jù)送到處理器中,并將處理器下發(fā)的命令發(fā)送出去。處理器的一個串口供無線模塊連接,另外一個串口與串口模塊連接。通過串口模塊將監(jiān)控中心PC機和單片機處理器連接起來進行數(shù)據(jù)交換。工作指示模塊由電源指示燈、信號指示燈以及蜂鳴器組成,用來指示當前的工作狀態(tài)。當無線通信模塊能正常與各個水塔檢測點通信時,信號指示燈亮,蜂鳴器用來提示水塔缺水信息。
2.2 水塔檢測點硬件設(shè)計
水塔檢測點硬件系統(tǒng)主要包括單片機處理器、無線模塊、控制模塊、水位檢測模塊和電源模塊等。
2.2.1 電源模塊電路 檢測裝置一般安裝在水塔頂部,其電源模塊采用AC220V供電,為避免發(fā)生感應(yīng)雷擊造成電路毀壞,在電源模塊電路中電流經(jīng)過變壓器前加入了一個TVS二極管,來防止一定的雷擊和浪涌,同時為進一步保護整個電源模塊電路,整流橋前再次加入一個TVS二極管,其為整個電路的穩(wěn)定提供了保障。電源模塊電路如圖3所示。
2.2.2 水位檢測模塊電路 水位檢測模塊采用的是超聲波傳感器模塊來進行水位高度的檢測,通過I/O觸發(fā)測距方式,給至少10 μs的高電平信號,模塊自動發(fā)送8個40 kHz的方波,超聲波模塊自動將測得的當前液面距探頭的距離數(shù)據(jù)發(fā)送給單片機處理器,處理器即可根據(jù)總蓄水高度計算出當前水位高度,計算如下:h=H-(t×v)/2。式中,h為當前水位高度;H為總蓄水高度;t為高電平持續(xù)時間,即超聲波從發(fā)射到返回時間;v為聲速,取340 m/s;
2.2.3 無線模塊電路 無線模塊負責(zé)發(fā)送采集到的水位數(shù)據(jù)和接收來自監(jiān)控中心的控制命令,具體電路如圖4所示。
2.2.4 控制模塊電路 控制模塊電路如圖5所示。主要用來對水泵和水塔閥門進行控制,控制模塊提供的是干節(jié)點繼電器輸出,用來控制水泵和閥門。當單片機通過433 MHz無線模塊接收到水位測量信號后,通過單片機處理計算出當前水位高度,當水位測量值等于或小于水位的水池下限值時(此時單片機檢測到的是低電平信號),單片機輸出一個高電平(1為高電平)信號,經(jīng)由無線模塊發(fā)射信號去啟動水泵工作,同時打開電磁閥門,使水池水位逐漸上升;當水位測量值等于水池上限值時,單片機輸出一個高電平信號給PT2262編碼器, 通過433 MHz無線模塊發(fā)射信號去停止水泵工作。
為提高控制模塊的可靠性,采用了非門集成電路和達林頓管集成電路兩者結(jié)合的方式來驅(qū)動繼電器工作,這一方面保護了處理器的I/O口,另一方面提高了對水泵和閥門控制的可靠性與穩(wěn)定性。
3 軟件設(shè)計
整個集群監(jiān)控系統(tǒng)軟件包括上位機軟件和下位機軟件[6,7]。上位機軟件負責(zé)對接收的數(shù)據(jù)進行分析、存儲以及控制命令的下發(fā);下位機軟件負責(zé)驅(qū)動整個硬件系統(tǒng)進行數(shù)據(jù)的采集、傳輸和執(zhí)行控制命令。
3.1 通信協(xié)議設(shè)計
為提高系統(tǒng)的抗干擾性和避免無線數(shù)據(jù)的碰撞,上位機監(jiān)控軟件和下位機軟件必須按照制定的通信協(xié)議進行通信。協(xié)議命令分為由上位機軟件下發(fā)的命令和由下位機軟件上傳的命令,每條命令格式如表1所示。
協(xié)議命令采用字節(jié)型數(shù)據(jù)進行傳輸,每條協(xié)議命令共7個字節(jié),其中BIT0為起始位,作為識別命令開始的標志,在本系統(tǒng)中用同一字節(jié)表示。BIT1為地址位,在系統(tǒng)中地址位分為廣播地址和獨立地址。廣播地址為一個相同字節(jié),而獨立地址要分別為4個水塔分配不同的地址以示區(qū)別。通過廣播地址可以對所有監(jiān)控點同時進行控制,而獨立地址則對每個監(jiān)控點單獨控制。BIT2為命令類型的區(qū)分位,上位機下發(fā)的命令類型分為控制命令、采集命令和設(shè)置命令3種。為區(qū)分不同的命令,需要根據(jù)不同的命令類型設(shè)置不同的字節(jié)。BIT3-BIT5為數(shù)據(jù)位,當由上位機下發(fā)控制命令時,可用來區(qū)分是對水泵的控制還是對閥門的控制;由下位機軟件返回水位數(shù)據(jù)時,BIT3-BIT5則代表了水位數(shù)據(jù),單位為cm。BIT6為校驗位,為驗證接收數(shù)據(jù)的正確性,通常按照一定的算法來校驗所接收的數(shù)據(jù)。通過判斷BIT6與算法計算出來的數(shù)據(jù)的一致性來判斷數(shù)據(jù)接收的正確性。
在數(shù)據(jù)采集時,采用一問一答的方式進行,只有在上位機監(jiān)控軟件發(fā)出采集命令后,下位機軟件通過識別正確的地址碼和命令類型碼才能執(zhí)行采集數(shù)據(jù)任務(wù)并將數(shù)據(jù)發(fā)送到上位機監(jiān)控軟件。
3.2 下位機軟件設(shè)計
STC單片機驅(qū)動軟件采用Keil開發(fā)環(huán)境進行開發(fā),監(jiān)控中心下位機軟件主要是用來進行無線數(shù)據(jù)的中轉(zhuǎn),只透明傳輸數(shù)據(jù),不對數(shù)據(jù)進行操作,不實現(xiàn)其他的控制功能,因而軟件結(jié)構(gòu)簡單,在此不贅述。
水塔檢測點下位機軟件設(shè)計流程如圖6所示,檢測點硬件系統(tǒng)上電后自動進行初始化程序,然后等待無線模塊傳過來的命令。首先通過地址解析識別是否為本機地址,然后再解析命令類型,根據(jù)不同的命令類型來執(zhí)行相應(yīng)的命令。
3.3 上位機軟件設(shè)計
上位機監(jiān)控軟件采用界面友好、操作方便的Visual Basic.NET2008[8]軟件進行開發(fā)。軟件包括菜單欄、顯示界面和狀態(tài)欄3個部分。上位機監(jiān)控軟件實現(xiàn)對數(shù)據(jù)的采集、分析和處理,并能根據(jù)不同的需要通過自動和手動兩種方式對各個水塔進行獨立或整體控制[9]。軟件的采樣周期可調(diào),將采集到的水位數(shù)據(jù)通過曲線和文本的方式顯示在界面上并自動保存數(shù)據(jù)到數(shù)據(jù)庫中,根據(jù)設(shè)置的水塔參數(shù)計算出每個水塔的每日用水量、每周用水量、每月用水量、每年用水量以及總用水量,同時將這些參數(shù)在軟件界面上繪制成曲線圖并將數(shù)據(jù)保存起來,以供調(diào)用查閱。軟件運行界面如圖7所示。
4 結(jié)語
研究設(shè)計了一套智能遠程水塔集群監(jiān)控系統(tǒng),并為該系統(tǒng)專門設(shè)計了硬件電路和監(jiān)控軟件。試驗結(jié)果表明,系統(tǒng)通過硬件電路實現(xiàn)了對水位數(shù)據(jù)的采集和傳輸,監(jiān)控中心上位機監(jiān)控軟件能以設(shè)定的采樣周期進行水塔數(shù)據(jù)采集。遠程水塔集群監(jiān)控系統(tǒng)的開發(fā)大大提高了對水塔的管理效率,為居民正常用水提供了保障,給更大規(guī)模供水點的水塔集群監(jiān)控提供了參考方案。
參考文獻:
[1] 宋樹民,祝詩平.基于ARM的CAN總線溫室監(jiān)控系統(tǒng)[J].農(nóng)機化研究,2009(4):172-174.
[2] 羅亞輝,蔣 蘋,吳 畏.高速插秧機無線監(jiān)控軟件系統(tǒng)設(shè)計[J].湖北農(nóng)業(yè)科學(xué),2012,51(21):4887-4890.
[3] 魏 玉,楊秀麗.基于CAN總線技術(shù)的溫室監(jiān)控系統(tǒng)的設(shè)計[J].農(nóng)機化研究,2008(11):130-132.
[4] 瞿丹晨,曹柏榮.基于單片機的無線水位測量控制系統(tǒng)[J].微計算機信息,2006,22(8):125-126.
[5] 匡迎春,沈 岳,姚幫松,等.簡易型溫室溫濕度控制器設(shè)計[J].湖南農(nóng)業(yè)大學(xué)學(xué)報(自然科學(xué)版),2009,35(4):452-456.
[6] 王英華,馮 華,葉允明,等.基于Web的遠程監(jiān)控系統(tǒng)的一種新方案[J].濟南大學(xué)學(xué)報(自然科學(xué)版),2001,15(3):227-229.
[7] 童 端,董小社,李紀云,等.基于Web的遠程集群監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程與應(yīng)用,2003(35):100-102.
[8] 蔣加伏,張林峰.Visual Basic 程序設(shè)計教程[M].第4版.北京:北京郵電大學(xué)出版社,2009.
[9] 程 浩,錢東平,黃君冉,等.溫室環(huán)境信息采集系統(tǒng)的USB 接口設(shè)計[J].農(nóng)業(yè)工程學(xué)報,2006,22(8):253-255.