董海桃
(山西機電職業(yè)技術(shù)學(xué)院 山西省長治市 046011)
智能控制工業(yè)設(shè)備開發(fā)目標是為滿足工業(yè)設(shè)備的智能測控,通過無線傳感網(wǎng)絡(luò)實現(xiàn)溫濕度數(shù)據(jù)的讀取與顯示,通過人體傳感器、煙霧傳感器、紅外對射傳感器監(jiān)測是否有人在工業(yè)現(xiàn)場、是否有煤氣泄漏的危險發(fā)生以及是否有人通過門窗入侵,從而控制相應(yīng)的燈、報警燈開啟,風(fēng)扇開停等操作。文章以開關(guān)燈的控制為例子,具體闡述如何使用Java 語言的IDEA 集成開發(fā)環(huán)境完成界面下串口控制開關(guān)燈功能。
物聯(lián)網(wǎng)仿真設(shè)備上連接燈泡如圖1所示。具體的連接方法是,在物聯(lián)網(wǎng)行業(yè)實訓(xùn)仿真設(shè)備上:設(shè)備PC 連接220V 電源,數(shù)據(jù)采集設(shè)備adam4150 通過繼電器連接24V 電源,設(shè)備燈泡通過繼電器連接12V 電源,數(shù)據(jù)采集設(shè)備4150 通過串口工具485=232 和PC端的COM 口相連。設(shè)置PC 端的配置為如圖2所示:COM 端口號波特率為9600,虛擬串口為COM200。通過串口工具測試連接正確,端口數(shù)據(jù)“01,05,00,11,FF,00,DC,3F”測試可以開燈,端口數(shù)據(jù)“01,05,00,11,00,00,9D,CF”可以實現(xiàn)關(guān)燈。
為了能夠自如的控制開燈和關(guān)燈操作,用戶希望通過電腦或者手機的界面操作燈泡的開和關(guān),使用Java 語言的IDEA 集成開發(fā)環(huán)境為例介紹窗口界面的設(shè)計,IDEA 全稱 IntelliJ IDEA,是Java 編程語言開發(fā)的集成環(huán)境。IntelliJ 在業(yè)界被公認為最好的Java 開發(fā)工具。窗口的設(shè)計包含可以讓用戶識別窗口的標題、窗口的大小和能控制開燈關(guān)燈的兩個按鈕控件對象。由于構(gòu)造函數(shù)在創(chuàng)建窗口類對象的時候自動調(diào)用,所以以上的這些功能可以在窗口類的構(gòu)造函數(shù)內(nèi)完成。其程序為:
圖1:物聯(lián)網(wǎng)仿真設(shè)備上連接燈泡
圖2:PC 端的配置
程序中創(chuàng)建了兩個按鈕分別是“開燈”和“關(guān)燈”,而且在初始化函數(shù)里調(diào)用add 函數(shù)將兩個按鈕加入到窗體中,程序的執(zhí)行的界面效果如圖3所示?;蛟S,你現(xiàn)在已經(jīng)發(fā)現(xiàn)了問題,如果沒有setLayout(new FlowLayout());這一行語句,后面的界面元素將前面的界面元素覆蓋了,只能看到最后一個界面元素如圖4所示。那么setLayout(new FlowLayout())是什么呢?
在Swing 編程中使用布局管理器能夠非常有效地對窗口或者其它容器中的組件進行有條理并且美觀的擺放。布局管理器也是有很多種的,包括流布局、邊框布局、網(wǎng)格布局、和空布局等,其中流布局FlowLayout 是是依照組件的添加順序依次將組件添加到容器里,是最簡單的布局。
當界面完成的界面的設(shè)置后,單擊“開燈”按鈕,在仿真系統(tǒng)里燈并沒有完成相應(yīng)的操作,即仿真系統(tǒng)里的燈沒有打開,這是因為沒有編寫按鈕的事件代碼,這個按鈕事件的功能是單擊按鈕后仿真系統(tǒng)中燈能打開和關(guān)閉,完成相應(yīng)功能。
首先需要搭建框架,給”onLamp”和“offLamp”按鈕和添加事件代碼。在構(gòu)造方法中給按鈕onLamp 添加代碼,單擊按鈕的事件是addActionListener()方法,響應(yīng)的事件是:ActionListener(),選定后,事件需要實現(xiàn)虛擬方法actionPerformed (),在虛擬方法內(nèi)添加通過發(fā)送的的事件便可。
圖3:程序界面效果圖
圖4:不設(shè)置布局效果圖
圖5:單擊開燈,仿真燈亮
通過串口工具SerialPortManager 的方法sendToPort 發(fā)送數(shù)據(jù)到仿真系統(tǒng),該函數(shù)的兩個參數(shù)分別是這樣的,參數(shù)1 首先需要打通串口,將OpenPort 的值設(shè)置為:SerialPortManager.openPort("COM200",9600);也就是連接PC 的端口。參數(shù)2 根據(jù)確定是打開操作或者是關(guān)閉操作的16 進制數(shù)據(jù)組。特別要注意對于窗口管理器發(fā)送串口數(shù)據(jù)的時候,可能會產(chǎn)生異常,所以要將此命令放置在try-catch 里。具體代碼如下:
最后以上程序完成以后,在仿真系統(tǒng)打開模擬實驗,運行程序,驗證程序的運行結(jié)果,如圖5所示:當單機窗口里開燈按鈕的時候,仿真系統(tǒng)燈點亮。當單機窗口里關(guān)燈按鈕的時候,仿真系統(tǒng)燈熄滅。
文章只是對燈實現(xiàn)了界面控制的功能,對于風(fēng)扇、報警設(shè)備的連接方式和實現(xiàn)方法和開關(guān)燈的實現(xiàn)方法相似。串口控制在智能家居和智能工業(yè)領(lǐng)域中有著舉足輕重的地位。'