• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      飲水機狀態(tài)桌面監(jiān)測系統(tǒng)設(shè)計

      2017-06-19 19:12:12祿
      渭南師范學院學報 2017年12期
      關(guān)鍵詞:飲水機服務(wù)端串口

      肖 令 祿

      (渭南師范學院 數(shù)理學院,陜西 渭南 714099)

      ?

      【現(xiàn)代應(yīng)用技術(shù)研究】

      飲水機狀態(tài)桌面監(jiān)測系統(tǒng)設(shè)計

      肖 令 祿

      (渭南師范學院 數(shù)理學院,陜西 渭南 714099)

      為方便大型辦公場所或?qū)嶒炇胰藛T及時了解飲水機的工作狀態(tài),設(shè)計了一種飲水機狀態(tài)桌面監(jiān)測系統(tǒng)。該系統(tǒng)以單片機為控制核心,通過TCS230顏色傳感器采集飲水機指示燈的狀態(tài),并將采集結(jié)果通過串口發(fā)送到服務(wù)端主機,服務(wù)端主機利用TCP/IP協(xié)議,將飲水機當前工作狀態(tài)發(fā)送到局域網(wǎng)內(nèi)所有的客戶端主機,及時提醒工作人員飲水機中的水是否已燒開。實驗結(jié)果表明,該系統(tǒng)運行穩(wěn)定可靠,實時性好,具有一定的應(yīng)用及推廣價值。

      TCS230;AT89S52單片機;串口通信;TCP/IP

      隨著電子技術(shù)的發(fā)展,電子產(chǎn)品對人們生活的影響越來越廣泛,它使人們的工作、生活、學習變得越來越方便、快捷[1-2]。在政府機關(guān)、企事業(yè)單位的辦公室或?qū)嶒炇彝ǔ0惭b有飲水機,為工作和學習群體提供飲用水,而飲水機中的水是斷斷續(xù)續(xù)加熱的,由于室內(nèi)人員不能及時了解飲水機中的水是否已燒開,往往會出現(xiàn)等待而浪費時間的情況[3]。本文提出了一種飲水機狀態(tài)桌面監(jiān)測系統(tǒng)設(shè)計方案,該系統(tǒng)以AT89S52單片機為控制核心,利用TCS230顏色傳感器對飲水機狀態(tài)進行采集,采用Qt Creator開發(fā)上位機軟件,配合串口通信和TCP/IP網(wǎng)絡(luò)通信協(xié)議,將飲水機的工作狀態(tài)實時顯示在電腦桌面的任務(wù)欄上,使用戶可以及時了解飲水機中的水是否已燒開。

      1 系統(tǒng)設(shè)計要求和功能框圖

      1.1 系統(tǒng)設(shè)計要求

      本系統(tǒng)主要由3個模塊組成:上位機軟件模塊、數(shù)據(jù)采集模塊和服務(wù)器客戶端軟件模塊。系統(tǒng)設(shè)計要求如下:

      (1)單片機將采集的RGB顏色數(shù)據(jù)傳送給計算機;

      (2)計算機通過RGB數(shù)據(jù)判斷飲水機中的水是否燒開,同時發(fā)送給局域網(wǎng)客戶端;

      (3)客戶端獲取鼠標單擊事件,然后顯示飲水機的工作狀態(tài)。

      1.2 系統(tǒng)框圖和功能

      系統(tǒng)的硬件部分包括AT89S52單片機控制核心、TCS230顏色傳感器模塊、飲水機指示燈模擬電路和1602液晶顯示模塊。液晶顯示模塊僅用于前期系統(tǒng)調(diào)試,調(diào)試完成后即可移除[4-5]。系統(tǒng)工作原理框圖如圖1所示。

      圖1 系統(tǒng)工作原理圖

      2 系統(tǒng)硬件設(shè)計

      2.1 TCS230顏色傳感器

      TCS230是美國TAOS公司推出的一款數(shù)字式可編程彩色光/頻率轉(zhuǎn)換器[6-7]。它在一個CMOS電路上集成了可配置的硅光電二極管、紅綠藍(RGB)3種濾光器和電流頻率轉(zhuǎn)換器,采用數(shù)字化輸出,不需要額外的A/D轉(zhuǎn)換電路,典型輸出頻率范圍0.002 Hz~500 kHz;顏色獲取精度高,能夠?qū)崿F(xiàn)每個彩色信道10位以上的轉(zhuǎn)換精度;電路結(jié)構(gòu)簡單,可以和微處理器直接相連。TCS230引腳和功能框圖如圖2所示,其中,光電二極管陣列控制引腳S2、S3用于選擇紅、綠、藍濾波器,經(jīng)過電流—頻率轉(zhuǎn)換器后輸出不同頻率的方波信號;定標控制引腳S0、S1用于選擇不同的比例因子,從而對輸出頻率范圍進行調(diào)整以與不同頻率計數(shù)器相匹配。

      (a)TCS230引腳 (b)TCS230功能圖

      根據(jù)德國物理學家赫姆霍茲(Helmholtz)的三原色理論,任何顏色均是由不同比例的紅、綠、藍(RGB)三原色混合而成的,若能獲取某種顏色中R、G、B分量值,就能確定其顏色。使用TCS230顏色傳感器檢測時,在配置其S2、S3引腳電平選定某一原色(紅、綠、藍)濾波器后,它將只允許某種特定的原色通過,當TCS230分別檢測出某種顏色中R、G、B分量后,通過電流—頻率轉(zhuǎn)換器即可把光強線性轉(zhuǎn)換為頻率信號,根據(jù)量化得到的R、G、B值就可以計算出投射到TCS230上光的顏色。S0、S1和S2、S3功能配置組合如表1所示。

      表1 TCS230功能配置

      2.2 顏色檢測電路設(shè)計

      AT89S52單片機和TCS230構(gòu)成的顏色檢測電路如圖3所示。由單片機的P1口控制TCS230的各控制引腳,用于選擇不同的濾波類型和輸出比例因子。TCS230的輸出端與單片機的定時/計數(shù)器T1的輸入端P3.5口相連,設(shè)置T1為定時工作模式并初始化定時時長為10 ms。上電工作時,由單片機在一個定時周期內(nèi)接收TCS230的OUT引腳輸出的R、G、B脈沖,通過對顏色傳感器輸入的三原色因子脈沖進行計數(shù),并通過計數(shù)的脈沖數(shù)來確定RGB數(shù)值,以此來判斷飲水機當前的工作狀態(tài)[8]。此外,采用MAX232芯片設(shè)計了串口通信電路,以實現(xiàn)顏色檢測電路與上位機之間的通訊。調(diào)試時,采用液晶顯示器顯示RGB數(shù)據(jù)來監(jiān)測單片機的串口代碼是否有誤。實際實驗中,可采用紅色、藍色和綠色LED代替熱水器指示燈。

      3 系統(tǒng)軟件設(shè)計

      系統(tǒng)軟件主要包括顏色檢測程序、服務(wù)端程序和客戶端程序3部分。顏色檢測程序主要對AT89S52單片機編程,在Keil uVision5環(huán)境中用C語言開發(fā)。服務(wù)端和客戶端程序采用Qt Creator開發(fā),Qt Creator提供了豐富的開發(fā)工具和組件,具有開發(fā)效率高、免費開源等特點[9]。

      3.1 顏色檢測程序設(shè)計

      按三原色理論,白色是由等量的紅、綠、藍三原色混合而成的,但實際上,白色中的R、G、B分量并不完全相等。因此,系統(tǒng)上電初始化后,首先需利用標準白色光源完成白平衡調(diào)整,即告訴顏色傳感器什么是白色。通過白平衡調(diào)整,可計算得到一個三原色比例因子。然后由單片機的P1.0和P1.1口向顏色傳感器的S2和S3引腳發(fā)出控制信號,從OUT端分別采集紅、藍、綠在10 ms內(nèi)的脈沖個數(shù),把測得的脈沖個數(shù)與三原色比例因子相乘即可得到對應(yīng)的R、G、B值[10]。單片機通過“顏色檢測—串口發(fā)送—顯示”等3個過程并進行循環(huán)檢測,若R、G、B其中有一個發(fā)生變化,RGB數(shù)據(jù)就會發(fā)送給上位機,工作流程如圖4所示。

      3.2 服務(wù)端程序設(shè)計

      服務(wù)端程序運行在上位機上,獲取單片機硬件系統(tǒng)通過串口發(fā)送來的RGB數(shù)據(jù),并判斷是綠色還是紅色,將提示信息發(fā)給局域網(wǎng)內(nèi)所有運行客戶端軟件的電腦[11-12]。

      Qt軟件庫中并沒有提供串口控制類,設(shè)計中使用第三方編寫的qextserialportf類[13]。對串口的初始化和窗口構(gòu)造函數(shù)添加如下代碼:

      structPortSettings SerComset={BAUD 9600,DATA_8,PAR_NONE,STOP_1,FLOW_OFF,500};//定義結(jié)構(gòu)體,用來存放串口設(shè)置的各個參數(shù)

      SerCom=newWin_QextSerialPort("com1",SerComset,QextSerialBase::EventDriven);//定義服務(wù)端串口對象,并傳遞參數(shù)

      SerCom->open(QIODevice::ReadWrite);//串口打開方式,可讀可寫

      connect(SerCom,SIGNAL(readyRead()), this,SLOT(SerComread()));//關(guān)聯(lián)信號和槽函數(shù),若串口緩沖區(qū)有數(shù)據(jù),執(zhí)行槽函數(shù)

      串口初始化完成后,就設(shè)置了波特率、數(shù)據(jù)位、停止位、校驗位,指定了程序讀取哪個COM口[14]。

      槽函數(shù)void SerComread()被定義在mainwindow.cpp中,定義一個QByteArray的temp變量用來存放從串口讀取的數(shù)據(jù),三原色的因子存放在primary_divisor[3]這個數(shù)組中,分別為R、G、B,每次數(shù)據(jù)接收完成后,判斷顏色因子的分量值。根據(jù)條件得出結(jié)果,將結(jié)果發(fā)送給客戶端。

      服務(wù)端還要完成向客戶端發(fā)送信息的任務(wù),由于使用網(wǎng)絡(luò)服務(wù),因此,在工程文件.pro中加入代碼QT += network,在mainwindow.h中添加private對象和Private slot函數(shù):

      QtcpComServer*tcpComServer;

      QTcpSocket*clientConnection[3];

      void sendtcpMsg();//發(fā)送信息函數(shù)

      void sendSocketMsg(qunit flag);//發(fā)送結(jié)果函數(shù)

      tcpComServer和私有槽函數(shù)的初始化在mainwindow的構(gòu)造函數(shù)中完成:

      tcpComServer = new QTcpServer(this);

      tcpComServer->listen(QHostAddress::Any,5942))//初始化tcpComServer套接字,并讓其監(jiān)聽整個網(wǎng)絡(luò)地址的6060端口

      由于所實現(xiàn)的功能均為數(shù)據(jù)發(fā)送,因此兩個Private slot函數(shù)的定義基本是一樣的。但是sendSocketMsg(quint16)函數(shù)有參數(shù)傳入,這個參數(shù)即是飲水機狀態(tài)。sendtcpMsg()函數(shù)里的clientConnection[3]在每次有新的客戶端連接時賦值,即表示產(chǎn)生新的TCP連接[15]。

      連接信號和槽函數(shù)定義如下:

      connect(SerCom,SIGNAL(readyRead()), this,SLOT(SerComread()));

      connect(tcpComServer,SIGNAL(newCon-nection()),this,SLOT(sendtcpMsg()));

      到此,服務(wù)端的功能設(shè)計完成。

      3.3 客戶端程序設(shè)計

      客戶端程序運行在局域網(wǎng)內(nèi)需要顯示飲水機狀態(tài)的電腦上,它的任務(wù)就是接收服務(wù)器發(fā)送來的信息,用戶通過單擊操作,獲取飲水機狀態(tài)。為了完成客戶端的功能,在widget.h中添加如下兩個對象:

      QPushButton *connectButton;

      QTcpSocket *clientSocket;

      定義QString message,存放服務(wù)器接收到的字符串;

      定義char *status,存放飲水機狀態(tài);

      添加私有槽函數(shù):

      void newTcpConnect();

      void readTcpMsg();

      這些對象都在widget的構(gòu)造函數(shù)中完成初始化。

      clientSocket = new QTcpSocket(this);

      voidnewTcpConnect()函數(shù)用于獲取用戶填寫的主機IP地址和端口號,并連接到主機。

      void readTcpMsg()函數(shù)用于讀取主機發(fā)來的信息,將信息存到message變量里,以便顯示到桌面。

      將connectButton和槽函數(shù)newConnect()關(guān)聯(lián)在一起,即當按鈕被按下時,客戶端就會自動連接服務(wù)器。

      connect(clientSocket,SIGNAL(readyRead()),this,SLOT(readTcpMsg()))關(guān)聯(lián)了接收緩沖區(qū)與讀緩沖區(qū)的readTcpMsg()函數(shù),一旦服務(wù)器發(fā)送數(shù)據(jù)到緩沖區(qū),緩沖區(qū)數(shù)據(jù)就會被讀取并存放到message中,通過判斷message里面的字符串是“yes”或“no”來判斷水是否燒開。

      為了實現(xiàn)窗口的托盤運行,需聲明QSystemTrayIcon *trayIcon對象。通過在構(gòu)造函數(shù)里初始化trayIcon = new QSystem TrayIcon (this),并調(diào)用trayIcon->show()即可實現(xiàn)托盤運行。

      void iconActivated(QSystemTrayIcon::ActivationReason reason)函數(shù)實現(xiàn)了對托盤左擊,彈出氣泡的功能,避免了在不需要了解飲水機狀態(tài)的情況下彈出窗口的麻煩。客戶端巧妙利用改變托盤的titlec來通知用戶飲水機的狀態(tài)。[16]

      此函數(shù)可以獲取左鍵單擊雙擊,和單擊滾輪等動作,此設(shè)計只采用鼠標左鍵單擊動作。

      void Widget::createActions()函數(shù)獲取鼠標右鍵對托盤的動作,右鍵單擊后彈出菜單:最小化、最大化、關(guān)閉和還原。此設(shè)計只選擇了“托盤運行”和“關(guān)閉程序”。

      4 軟件運行結(jié)果

      客戶端軟件打開界面如圖5所示。輸入主機IP和端口號,點擊“連接”按鈕,當“歡迎使用飲水機桌面監(jiān)測系統(tǒng)”變?yōu)椤耙堰B接到飲水機”后,系統(tǒng)就可以實時監(jiān)測飲水機的狀態(tài)。

      圖5 客戶端界面

      托盤運行狀態(tài)如圖6所示,任務(wù)欄黑色的圖標就是服務(wù)端托盤運行的圖標。當客戶端獲取到飲水機狀態(tài)時,對話氣泡中的“……”就會變?yōu)椤罢跓被颉八褵谩薄?/p>

      圖6 任務(wù)欄狀態(tài)指示

      5 結(jié)語

      該系統(tǒng)具有結(jié)構(gòu)簡單、工作穩(wěn)定可靠、實時性好等特點,只需將系統(tǒng)接入辦公室或?qū)嶒炇覂?nèi)的局域網(wǎng),就可以將飲水機的工作狀態(tài)實時反映給用戶計算機,方便用戶隨時獲知飲水機中的水是否已燒開。

      [1] 潘之濤.新時期電子技術(shù)應(yīng)用探討[J].電子技術(shù)與軟件工程,2014,(5):124.

      [2] 王瑞鳳,劉思驛,張錦繡,等.電子產(chǎn)品對大眾生活的影響研究[J].產(chǎn)業(yè)與科技論壇,2016,15(19):104-105.

      [3] 郭毅飛,董峰.基于AT89C51單片機的智能飲水機控制系統(tǒng)[J].湖南農(nóng)機,2012,39(11):90-93.

      [4] 趙亮.液晶顯示模塊LC01602應(yīng)用[J].電子制作,2007,(3):58-59.

      [5] 林嘉.基于89S52的LCD1602程序設(shè)計[J].電腦知識與技術(shù),2012,8(26):6376-6378.

      [6] 盧川英,于浩成,孫敬輝,等.基于TCS230傳感器的顏色檢測系統(tǒng)[J].吉林大學學報(信息科學版),2008,26(6):621-626.

      [7] 戴勇軍,賈春陽.基于單片機便攜式顏色自適應(yīng)識別電路的設(shè)計[J].電子設(shè)計工程,2011,19(4):182-185.

      [8] 康海,劉書林,趙坤.基于TCS3200D芯片的色彩變化識別系統(tǒng)設(shè)計[J].電子設(shè)計工程,2015,23(8):91-93.

      [9] 盧華偉,秦品健,鄭銳.基于Qt/Qwt的操作監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].微計算機信息,2010,26(1):72-74.

      [10] 張松燦,肖本賢.高分辨率顏色傳感器TCS230的原理和應(yīng)用[J].單片機與嵌入式系統(tǒng)應(yīng)用,2005,(3):44-46.

      [11] 江帆,孫立,尹華山.基于Qt環(huán)境下物理參數(shù)綜合分析系統(tǒng)的設(shè)計與實現(xiàn)[J].電子設(shè)計工程,2014,22(8):34-36.

      [12] 金繁,崔培雷.嵌入式Qt中信號與槽機制的研究[J].電子設(shè)計工程,2014,22(24):168-170.

      [13] [加]Jasmin Blanchette,[英]Mark Summerfield.C++ GUI Programming with Qt4[M].第2版.閆鋒欣,曾泉人,張志強,譯.北京:電子工業(yè)出版社,2008.

      [14] 霍亞飛.Qt Creator快速入門[M].北京:北京航空航天大學出版社,2002.

      [15] 霍亞飛.Qt及Qt Qquick開發(fā)實戰(zhàn)精解[M].北京:北京航空航天大學出版社,2010.

      [16] [美]Molkentin,Daniel.The Book of Qt4: The Art of Building Qt Applications[M].San Francisco:No Starch Press,1990.

      【責任編輯 牛懷崗】

      Design of the Desktop Monitoring System for Water Dispenser

      XIAO Ling-lu
      (School of Mathematics and Physics, Weinan Normal University, Weinan 714099, China)

      For the convenience of a large lab or office staff time to know working status of the water dispenser, a desktop monitoring system for water dispenser is designed. The system takes single chip microcomputer as the control core. The status of the indicator light of the water dispenser is collected by the TSC230 color sensor, and sent to the server host through the serial port. The server host sends the current working status of the water dispenser to all the clients in the local area network through TCP/IP protocol, and then a timely reminder of drinking water is boiled. Experimental results show that the system is stable, reliable, real-time, and has a certain application and promotion value.

      TCS230; AT89S52; serial communications; TCP/IP

      2017-03-19

      渭南師范學院自然科學一般項目:物聯(lián)網(wǎng)技術(shù)在精準農(nóng)業(yè)中的應(yīng)用研究(16YKS013);渭南師范學院特色學科建設(shè)項目:電氣工程與秦東工業(yè)(14TSXK07)

      肖令祿(1981—),男,甘肅臨洮人,渭南師范學院數(shù)理學院講師,工學碩士,主要從事嵌入式系統(tǒng)、無線傳感器網(wǎng)絡(luò)技術(shù)研究。

      TP212.9

      A

      1009-5128(2017)12-0032-06

      猜你喜歡
      飲水機服務(wù)端串口
      淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
      自制飲水機
      云存儲中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
      新時期《移動Web服務(wù)端開發(fā)》課程教學改革的研究
      在Windows Server 2008上創(chuàng)建應(yīng)用
      如何正確清洗飲水機?
      新青年(2017年5期)2017-05-12 07:28:49
      USB接口的多串口數(shù)據(jù)并行接收方法探索
      基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
      地礦測繪(2015年3期)2015-12-22 06:27:26
      投訴
      中老年健康(2015年5期)2015-05-30 10:51:13
      基于并行控制的FPGA多串口拓展實現(xiàn)
      本溪| 英超| 应城市| 来宾市| 青田县| 陆河县| 西林县| 汕尾市| 玉环县| 肃北| 潼南县| 肥城市| 临武县| 留坝县| 沙坪坝区| 河间市| 迁西县| 南通市| 灵武市| 岑溪市| 东海县| 信阳市| 阿克苏市| 沁水县| 天气| 吴江市| 西昌市| 屏东市| 吴旗县| 白城市| 大厂| 永州市| 花莲市| 兰坪| 黑河市| 高州市| 武穴市| 和顺县| 敦煌市| 黔西| 巴南区|