![物聯(lián)網(wǎng)感知課程設(shè)計(jì)_第1頁(yè)](http://file4.renrendoc.com/view2/M00/33/26/wKhkFmYXgPOAP-DsAADcNvwAyzk326.jpg)
![物聯(lián)網(wǎng)感知課程設(shè)計(jì)_第2頁(yè)](http://file4.renrendoc.com/view2/M00/33/26/wKhkFmYXgPOAP-DsAADcNvwAyzk3262.jpg)
![物聯(lián)網(wǎng)感知課程設(shè)計(jì)_第3頁(yè)](http://file4.renrendoc.com/view2/M00/33/26/wKhkFmYXgPOAP-DsAADcNvwAyzk3263.jpg)
![物聯(lián)網(wǎng)感知課程設(shè)計(jì)_第4頁(yè)](http://file4.renrendoc.com/view2/M00/33/26/wKhkFmYXgPOAP-DsAADcNvwAyzk3264.jpg)
![物聯(lián)網(wǎng)感知課程設(shè)計(jì)_第5頁(yè)](http://file4.renrendoc.com/view2/M00/33/26/wKhkFmYXgPOAP-DsAADcNvwAyzk3265.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄TOC\o"1-2"\h\u30710物聯(lián)網(wǎng)感知課程設(shè)計(jì) 116817一.功能分析 16779二.概要設(shè)計(jì) 1254351.系統(tǒng)組成 1285302.傳感器選型 113751三.詳細(xì)設(shè)計(jì) 118531.通信模塊程序設(shè)計(jì)框圖 1148052.程序設(shè)計(jì) 212288四.系統(tǒng)說明 922874五.設(shè)計(jì)總結(jié) 1022698六.附錄 10PAGEPAGE6物聯(lián)網(wǎng)感知課程設(shè)計(jì)環(huán)境監(jiān)測(cè)系統(tǒng)程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告題目:設(shè)計(jì)一個(gè)環(huán)境監(jiān)測(cè)系統(tǒng)。一.功能分析環(huán)境監(jiān)測(cè)系統(tǒng)主要包括對(duì)環(huán)境變量的采集和顯示。選擇溫濕度傳感器來完成溫度、濕度數(shù)據(jù)的采集。選擇協(xié)調(diào)器串口發(fā)送程序。(3)采用java語(yǔ)言制作相應(yīng)的顯示界面,將采集的變量值實(shí)時(shí)顯示并給出相應(yīng)提示。二.概要設(shè)計(jì)1.系統(tǒng)組成系統(tǒng)大體組成包括:傳感器模塊、數(shù)據(jù)傳送模塊和電機(jī)控制模塊。系統(tǒng)框圖如圖1所示。由于傳感器模塊沒有外接電路,因此需要通過中間的協(xié)調(diào)器將數(shù)據(jù)轉(zhuǎn)為串口形式發(fā)送到PC機(jī)上。 Zigbee傳輸協(xié)調(diào)器溫、濕度傳感器PC顯示串口傳輸電機(jī)圖1系統(tǒng)框圖2.傳感器選型選擇SHT10單片數(shù)字溫濕度傳感器來監(jiān)測(cè)環(huán)境。SHT10采用CMOSens專利技術(shù)將溫度濕度傳感器、A/D轉(zhuǎn)換器及數(shù)字接口無縫結(jié)合,使傳感器具有體積小、響應(yīng)速度快、接口簡(jiǎn)單、性價(jià)比高等特點(diǎn)。電路連接時(shí),接口簡(jiǎn)單,兩線連接,SHT10的兩線串行接口(bidirectional2-wire)在傳感器信號(hào)讀取和電源功耗方面都做了優(yōu)化處理,其總線類似I2C總線但并不兼容I2C總線。三.詳細(xì)設(shè)計(jì)1.通信模塊程序設(shè)計(jì)框圖1.打開串口(邏輯串口號(hào):根據(jù)設(shè)備管理器的端口)1.打開串口(邏輯串口號(hào):根據(jù)設(shè)備管理器的端口)2.配置串口參數(shù)(波特率、校驗(yàn)位、起始位、停止位)2.配置串口參數(shù)(波特率、校驗(yàn)位、起始位、停止位)3.設(shè)置讀寫超時(shí)時(shí)間4.設(shè)置串口底層接收、發(fā)送緩沖區(qū)大小4.設(shè)置串口底層接收、發(fā)送緩沖區(qū)大小5.設(shè)置串口事件(數(shù)據(jù)可讀事件、啟動(dòng)發(fā)送數(shù)據(jù)事件、工作線程結(jié)束事件等)5.設(shè)置串口事件(數(shù)據(jù)可讀事件、啟動(dòng)發(fā)送數(shù)據(jù)事件、工作線程結(jié)束事件等)6.啟動(dòng)串口后臺(tái)工作線程6.啟動(dòng)串口后臺(tái)工作線程2.程序設(shè)計(jì)packageorg.serial;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.util.Enumeration;importjava.util.TooManyListenersException;importjava.awt.FlowLayout;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JTextField;importgnu.io.CommPortIdentifier;importgnu.io.PortInUseException;importgnu.io.SerialPort;importgnu.io.SerialPortEvent;importgnu.io.SerialPortEventListener;importgnu.io.UnsupportedCommOperationException;/***@項(xiàng)目名稱:illegalsms*@文件名稱:SerialPort.java*@所在包:org.serial*@功能描述:*串口類*@創(chuàng)建者:*@創(chuàng)建日期:2016-12-23*@修改記錄:*/@SuppressWarnings("serial")publicclassDSerialPortextendsJFrameimplementsRunnable,SerialPortEventListener{ privateStringappName="協(xié)調(diào)器數(shù)據(jù)接收";privateinttimeout=2000;//open端口時(shí)的等待時(shí)間privateintthreadTime=0;privateCommPortIdentifiercommPort;privateSerialPortserialPort;privateInputStreaminputStream;privateOutputStreamoutputStream;/***@方法名稱:listPort*@功能描述:列出所有可用的串口*@返回值類型:void*/@SuppressWarnings("rawtypes")publicvoidlistPort(){ CommPortIdentifiercpid;Enumerationen=CommPortIdentifier.getPortIdentifiers();System.out.println("nowtolistallPortofthisPC:"+en);while(en.hasMoreElements()){cpid=(CommPortIdentifier)en.nextElement();if(cpid.getPortType()==CommPortIdentifier.PORT_SERIAL){System.out.println(cpid.getName()+","+cpid.getCurrentOwner());}}}/***@方法名稱:selectPort*@功能描述:選擇一個(gè)端口,比如:COM1*@返回值類型:void*@paramportName*/@SuppressWarnings("rawtypes")publicvoidselectPort(StringportName){mPort=null;CommPortIdentifiercpid;Enumerationen=CommPortIdentifier.getPortIdentifiers();while(en.hasMoreElements()){cpid=(CommPortIdentifier)en.nextElement();if(cpid.getPortType()==CommPortIdentifier.PORT_SERIAL&&cpid.getName().equals(portName)){mPort=cpid;break;}}openPort();}/***@方法名稱:openPort*@功能描述:打開SerialPort*@返回值類型:void*/privatevoidopenPort(){ if(commPort==null)log(String.format("無法找到名字為'%1$s'的串口!",commPort.getName()));else{log("端口選擇成功,當(dāng)前端口:"+commPort.getName()+",現(xiàn)在實(shí)例化SerialPort:");try{serialPort=(SerialPort)commPort.open(appName,timeout);log("實(shí)例SerialPort成功!");}catch(PortInUseExceptione){thrownewRuntimeException(String.format("端口'%1$s'正在使用中!",commPort.getName()));}} try{ serialPort.setSerialPortParams(115200,SerialPort.DATABITS_8,//設(shè)置串口讀寫參數(shù) SerialPort.STOPBITS_1,SerialPort.PARITY_NONE); }catch(UnsupportedCommOperationExceptione){}}/***@方法名稱:checkPort*@功能描述:檢查端口是否正確連接*@返回值類型:void*/privatevoidcheckPort(){if(commPort==null)thrownewRuntimeException("沒有選擇端口,請(qǐng)使用"+"selectPort(StringportName)方法選擇端口");if(serialPort==null){thrownewRuntimeException("SerialPort對(duì)象無效!");}}/***@方法名稱:write*@功能描述:向端口發(fā)送數(shù)據(jù),請(qǐng)?jiān)谡{(diào)用此方法前先選擇端口,并確定SerialPort正常打開!*@返回值類型:void*@parammessage*/publicvoidwrite(Stringmessage){checkPort();try{outputStream=newBufferedOutputStream(serialPort.getOutputStream());}catch(IOExceptione){thrownewRuntimeException("獲取端口的OutputStream出錯(cuò):"+e.getMessage());}try{outputStream.write(message.getBytes());log("信息發(fā)送成功!");}catch(IOExceptione){thrownewRuntimeException("向端口發(fā)送信息時(shí)出錯(cuò):"+e.getMessage());}finally{try{outputStream.close();}catch(Exceptione){}}}/***@方法名稱:startRead*@功能描述:開始監(jiān)聽從端口中接收的數(shù)據(jù)*@返回值類型:void*@paramtime監(jiān)聽程序的存活時(shí)間,單位為秒,0則是一直監(jiān)聽*/publicvoidstartRead(inttime){checkPort();ints;s=serialPort.getBaudRate();System.out.println("波特率為"+s);try{inputStream=newBufferedInputStream(serialPort.getInputStream());}catch(IOExceptione){thrownewRuntimeException("獲取端口的InputStream出錯(cuò):"+e.getMessage());}try{serialPort.addEventListener(this);}catch(TooManyListenersExceptione){thrownewRuntimeException(e.getMessage());}serialPort.notifyOnDataAvailable(true);log(String.format("開始監(jiān)聽來自'%1$s'的數(shù)據(jù)",commPort.getName()));if(time>0){this.threadTime=time*1000;Threadt=newThread(this);t.start();log(String.format("監(jiān)聽程序?qū)⒃?1$d秒后關(guān)閉。。。。",threadTime));}}/***@方法名稱:close*@功能描述:關(guān)閉SerialPort*@返回值類型:void*/publicvoidclose(){serialPort.close();serialPort=null;commPort=null;}publicvoidlog(Stringmsg){System.out.println(appName+"-->"+msg);}/***數(shù)據(jù)接收的監(jiān)聽處理函數(shù)*/@OverridepublicvoidserialEvent(SerialPortEventarg0){switch(arg0.getEventType()){caseSerialPortEvent.BI:/*Breakinterrupt,通訊中斷*/caseSerialPortEvent.OE:/*Overrunerror,溢位錯(cuò)誤*/caseSerialPortEvent.FE:/*Framingerror,傳幀錯(cuò)誤*/caseSerialPortEvent.PE:/*Parityerror,校驗(yàn)錯(cuò)誤*/caseSerialPortEvent.CD:/*Carrierdetect,載波檢測(cè)*/caseSerialPortEvent.CTS:/*Cleartosend,清除發(fā)送*/caseSerialPortEvent.DSR:/*Datasetready,數(shù)據(jù)設(shè)備就緒*/caseSerialPortEvent.RI:/*Ringindicator,響鈴指示*/caseSerialPortEvent.OUTPUT_BUFFER_EMPTY:/*Outputbufferisempty,輸出緩沖區(qū)清空*/break;caseSerialPortEvent.DATA_AVAILABLE:/*Dataavailableattheserialport,端口有可用數(shù)據(jù)。讀到緩沖數(shù)組,輸出到終端*/byte[]readBuffer=newbyte[16];try{while(inputStream.available()>0){@SuppressWarnings("unused") intnumBytes=inputStream.read(readBuffer);}outputStream.write("xiaogang".getBytes());Stringhex;StringBufferresult=newStringBuffer(); for(inti=0;i<readBuffer.length;i++){ hex=Integer.toHexString(readBuffer[i]&0xFF); if(hex.length()==1){ hex='0'+hex; } result.append(hex.toUpperCase()); }Strings=newString(result);int[]x=newint[4];int[]y=newint[4];for(inti=0;i<4;i++){ Strings1=s.substring(10+i,10+i+1); if(s1.equals("A")) x[i]=10; elseif(s1.equals("B")) x[i]=11; elseif(s1.equals("C")) x[i]=12; elseif(s1.equals("D")) x[i]=13; elseif(s1.equals("E")) x[i]=14; elseif(s1.equals("F")) x[i]=15; else x[i]=Integer.parseInt(s1); Strings2=s.substring(14+i,14+i+1); if(s2.equals("A")) y[i]=10; elseif(s2.equals("B")) y[i]=11; elseif(s2.equals("C")) y[i]=12; elseif(s2.equals("D")) y[i]=13; elseif(s2.equals("E")) y[i]=14; elseif(s2.equals("F")) y[i]=15; else y[i]=Integer.parseInt(s2);}@Overridepublicvoidrun(){ try{ Thread.sleep(threadTime);serialPort.close();log(String.format("端口''監(jiān)聽關(guān)閉了!",commPort.getName()));}catch(Exceptione){e.printStackTrace();} }四.系統(tǒng)說明本系統(tǒng)搭建了一個(gè)溫濕度的采集顯示環(huán)境,能夠采集周圍環(huán)境中的溫度、濕度值,并且實(shí)時(shí)在PC機(jī)上顯示。PC機(jī)實(shí)時(shí)顯示界面如圖:系統(tǒng)采用SHT10單片數(shù)字溫濕度傳感器將溫濕度采集集成在一起,數(shù)據(jù)的讀取要采用時(shí)序控制來進(jìn)行。采集變量的實(shí)時(shí)顯示由JAVA編制界面來完成。并且在圖形化界面溫濕度上下界及理想溫濕度處輸入數(shù)值,溫濕度采集過程中能對(duì)數(shù)據(jù)進(jìn)行判斷并給出五.設(shè)計(jì)總結(jié)這次選題選擇了與日常生活息息相關(guān)的基于物聯(lián)網(wǎng)的溫濕度環(huán)境檢測(cè)系統(tǒng),一開始連這個(gè)系統(tǒng)該分為哪三個(gè)模塊以及各自該做些什么都不清楚,但后來逐漸清楚了可以分為上位機(jī)、下位機(jī)和通信三個(gè)模塊,而我此次負(fù)責(zé)通信模塊,即將溫濕度傳感器的數(shù)據(jù)通過發(fā)送模塊傳到上位機(jī)實(shí)現(xiàn)通信。這部分的代碼老師給出了其中一部分(其中一部分庫(kù)文件比較老,因此需要安裝64位機(jī)的GNU庫(kù)文件),我補(bǔ)寫了剩下的一些,其實(shí)這里面最難的就是十六進(jìn)制轉(zhuǎn)換為十進(jìn)制的那段代碼了,所幸并不是無跡可尋,中途也遇到過很多問題,但通過查詢相關(guān)書籍、請(qǐng)教同學(xué)以及上網(wǎng)搜索都逐一解決了,因此最終還是編寫成功了。本來還嘗試擴(kuò)展功能譬如當(dāng)溫度過高啟用電機(jī)降溫,但由于時(shí)間較短,又因?yàn)楸救四芰τ邢?,這部分代碼就沒有編寫。這次課設(shè)雖然時(shí)間短但是學(xué)到的東西一點(diǎn)兒也不少,對(duì)于java編程和與硬件的連接通信也有了一定的感悟,小組成員也分工有序,配合默契,相信下次我們可以實(shí)現(xiàn)擴(kuò)展功能,使這個(gè)系統(tǒng)更加完善。六.附錄源程序清單:packageorg.serial;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.util.Enumeration;importjava.util.TooManyListenersException;importjava.awt.FlowLayout;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JTextField;importgnu.io.CommPortIdentifier;importgnu.io.PortInUseException;importgnu.io.SerialPort;importgnu.io.SerialPortEvent;importgnu.io.SerialPortEventListener;importgnu.io.UnsupportedCommOperationException;/***@項(xiàng)目名稱:illegalsms*@文件名稱:SerialPort.java*@所在包:org.serial*@功能描述:*串口類*@創(chuàng)建者:*@創(chuàng)建日期:2016-12-23*@修改記錄:*/@SuppressWarnings("serial")publicclassDSerialPortextendsJFrameimplementsRunnable,SerialPortEventListener{ privateStringappName="協(xié)調(diào)器數(shù)據(jù)接收";privateinttimeout=2000;//open端口時(shí)的等待時(shí)間privateintthreadTime=0;privateCommPortIdentifiercommPort;privateSerialPortserialPort;privateInputStreaminputStream;privateOutputStreamoutputStream;publicstaticintwendu1;publicstaticintwendu2;publicstaticintshidu1;publicstaticintshidu2;publicstaticbooleanopen;publicstaticdoublew1;publicstaticdoublew2;publicstaticdoubles1;publicstaticdoubles2;publicstaticdoublewx;publicstaticdoublesx;JFramef=newJFrame("環(huán)境溫度檢測(cè)");JButtonbutton1=newJButton("溫度:"); JButtonbutton2=newJButton("濕度:"); JButtonbutton3=newJButton("溫度下界:"); JButtonbutton4=newJButton("溫度上界:"); JButtonbutton5=newJButton("理想溫度:"); JButtonbutton6=newJButton("濕度上界:"); JButtonbutton7=newJButton("濕度下界:"); JButtonbutton8=newJButton("理想濕度:"); JTextFieldtf1; JTextFieldtf2; JTextFieldtf3; JTextFieldtf4; JTextFieldtf5; JTextFieldtf6; JTextFieldtf7; JTextFieldtf8; JTextFieldtf9; JTextFieldtf10; /***@方法名稱:listPort*@功能描述:列出所有可用的串口*@返回值類型:void*/@SuppressWarnings("rawtypes")publicvoidlistPort(){ CommPortIdentifiercpid;Enumerationen=CommPortIdentifier.getPortIdentifiers();System.out.println("nowtolistallPortofthisPC:"+en);while(en.hasMoreElements()){cpid=(CommPortIdentifier)en.nextElement();if(cpid.getPortType()==CommPortIdentifier.PORT_SERIAL){System.out.println(cpid.getName()+","+cpid.getCurrentOwner());}}}/***@方法名稱:selectPort*@功能描述:選擇一個(gè)端口,比如:COM1*@返回值類型:void*@paramportName*/@SuppressWarnings("rawtypes")publicvoidselectPort(StringportName){mPort=null;CommPortIdentifiercpid;Enumerationen=CommPortIdentifier.getPortIdentifiers();while(en.hasMoreElements()){cpid=(CommPortIdentifier)en.nextElement();if(cpid.getPortType()==CommPortIdentifier.PORT_SERIAL&&cpid.getName().equals(portName)){mPort=cpid;break;}}openPort();}/***@方法名稱:openPort*@功能描述:打開SerialPort*@返回值類型:void*/privatevoidopenPort(){ if(commPort==null)log(String.format("無法找到名字為'%1$s'的串口!",commPort.getName()));else{log("端口選擇成功,當(dāng)前端口:"+commPort.getName()+",現(xiàn)在實(shí)例化SerialPort:");try{serialPort=(SerialPort)commPort.open(appName,timeout);log("實(shí)例SerialPort成功!");}catch(PortInUseExceptione){thrownewRuntimeException(String.format("端口'%1$s'正在使用中!",commPort.getName()));}} try{ serialPort.setSerialPortParams(115200,SerialPort.DATABITS_8,//設(shè)置串口讀寫參數(shù) SerialPort.STOPBITS_1,SerialPort.PARITY_NONE); }catch(UnsupportedCommOperationExceptione){}}/***@方法名稱:checkPort*@功能描述:檢查端口是否正確連接*@返回值類型:void*/privatevoidcheckPort(){if(commPort==null)thrownewRuntimeException("沒有選擇端口,請(qǐng)使用"+"selectPort(StringportName)方法選擇端口");if(serialPort==null){thrownewRuntimeException("SerialPort對(duì)象無效!");}}/***@方法名稱:write*@功能描述:向端口發(fā)送數(shù)據(jù),請(qǐng)?jiān)谡{(diào)用此方法前先選擇端口,并確定SerialPort正常打開!*@返回值類型:void*@parammessage*/publicvoidwrite(Stringmessage){checkPort();try{outputStream=newBufferedOutputStream(serialPort.getOutputStream());}catch(IOExceptione){thrownewRuntimeException("獲取端口的OutputStream出錯(cuò):"+e.getMessage());}try{outputStream.write(message.getBytes());log("信息發(fā)送成功!");}catch(IOExceptione){thrownewRuntimeException("向端口發(fā)送信息時(shí)出錯(cuò):"+e.getMessage());}finally{try{outputStream.close();}catch(Exceptione){}}}/***@方法名稱:startRead*@功能描述:開始監(jiān)聽從端口中接收的數(shù)據(jù)*@返回值類型:void*@paramtime監(jiān)聽程序的存活時(shí)間,單位為秒,0則是一直監(jiān)聽*/publicvoidstartRead(inttime){checkPort();ints;s=serialPort.getBaudRate();System.out.println("波特率為"+s);try{inputStream=newBufferedInputStream(serialPort.getInputStream());}catch(IOExceptione){thrownewRuntimeException("獲取端口的InputStream出錯(cuò):"+e.getMessage());}try{serialPort.addEventListener(this);}catch(TooManyListenersExceptione){thrownewRuntimeException(e.getMessage());}serialPort.notifyOnDataAvailable(true);log(String.format("開始監(jiān)聽來自'%1$s'的數(shù)據(jù)",commPort.getName()));if(time>0){this.threadTime=time*1000;Threadt=newThread(this);t.start();log(String.format("監(jiān)聽程序?qū)⒃?1$d秒后關(guān)閉。。。。",threadTime));}}/***@方法名稱:close*@功能描述:關(guān)閉SerialPort*@返回值類型:void*/publicvoidclose(){serialPort.close();serialPort=null;commPort=null;}publicvoidlog(Stringmsg){System.out.println(appName+"-->"+msg);}/***數(shù)據(jù)接收的監(jiān)聽處理函數(shù)*/@OverridepublicvoidserialEvent(SerialPortEventarg0){switch(arg0.getEventType()){caseSerialPortEvent.BI:/*Breakinterrupt,通訊中斷*/caseSerialPortEvent.OE:/*Overrunerror,溢位錯(cuò)誤*/caseSerialPortEvent.FE:/*Framingerror,傳幀錯(cuò)誤*/caseSerialPortEvent.PE:/*Parityerror,校驗(yàn)錯(cuò)誤*/caseSerialPortEvent.CD:/*Carrierdetect,載波檢測(cè)*/caseSerialPortEvent.CTS:/*Cleartosend,清除發(fā)送*/caseSerialPortEvent.DSR:/*Datasetready,數(shù)據(jù)設(shè)備就緒*/caseSerialPortEvent.RI:/*Ringindicator,響鈴指示*/caseSerialPortEvent.OUTPUT_BUFFER_EMPTY:/*Outputbufferisempty,輸出緩沖區(qū)清空*/break;caseSerialPortEvent.DATA_AVAILABLE:/*Dataavailableattheserialport,端口有可用數(shù)據(jù)。讀到緩沖數(shù)組,輸出到終端*/byte[]readBuffer=newbyte[16];try{while(inputStream.available()>0){@SuppressWarnings("unused") intnumBytes=inputStream.read(readBuffer);}outputStream.write("xiaogang".getBytes());Stringhex;StringBufferresult=newStringBuffer(); for(inti=0;i<readBuffer.length;i++){ hex=Integer.toHexString(readBuffer[i]&0xFF); if(hex.length()==1){ hex='0'+hex; } result.append(hex.toUpperCase()); }Strings=newString(result);int[]x=newint[4];int[]y=newint[4];for(inti=0;i<4;i++){ Strings1=s.substring(10+i,10+i+1); if(s1.equals("A")) x[i]=10; elseif(s1.equals("B")) x[i]=11; elseif(s1.equals("C")) x[i]=12; elseif(s1.equals("D")) x[i]=13; elseif(s1.equals("E")) x[i]=14; elseif(s1.equals("F")) x[i]=15; else x[i]=Integer.parseInt(s1); Strings2=s.substring(14+i,14+i+1); if(s2.equals("A")) y[i]=10; elseif(s2.equals("B")) y[i]=11; elseif(s2.equals("C")) y[i]=12; elseif(s2.equals("D")) y[i]=13; elseif(s2.equals("E")) y[i]=14; elseif(s2.equals("F")) y[i]=15; else y[i]=Integer.parseInt(s2);}wendu1=(4096*x[0]+256*x[1]+16*x[2]+x[3])/100;wendu2=(4096*x[0]+256*x[1]+16*x[2]+x[3])%100;shidu1=(4096*y[0]+256*y[1]+16*y[2]+y[3])/100;shidu2=(4096*y[0]+256*y[1]+16*y[2]+y[3])%100;if(wendu1>0&&wendu1<100){System.out.println(wendu1+"."+wendu2+"°"+""+shidu1+"."+shidu2+"%"); tf1.setText(String.valueOf(wendu1+"."+wendu2+"°")); tf2.setText(String.valueOf(shidu1+"."+shidu2+"%")); }if(open=true){ w1=Double.parseDouble(tf3.getText()); w2=Double.parseDouble(tf4.getText()); wx=Double.parseDouble(tf5.getText()); s1=Double.parseDouble(tf6.getText()); s2=Double.parseDouble(tf7.getText()); sx=Double.parseDouble(tf8.getText()); if(wendu1>0&&wendu1<100&&shidu1>0&&shidu1<100){ tf1.setText(String.valueOf(wendu1+"."+wendu2+"°")); tf2.setText(String.valueOf(shidu1+"."+shidu2+"%")); if(wendu1>=w1&&wendu1<wx){ tf9.setText(String.valueOf("當(dāng)前溫度低于舒適溫度")); } if(wendu1>wx&&wendu1<=w2){
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- R-YNT-3708-生命科學(xué)試劑-MCE-1793
- N-Butyl-Pentedrone-hydrochloride-生命科學(xué)試劑-MCE-8255
- Homarylamine-hydrochloride-生命科學(xué)試劑-MCE-8287
- 2025年度員工股份分配與業(yè)績(jī)考核協(xié)議
- 二零二五年度離婚財(cái)產(chǎn)協(xié)議-房產(chǎn)車輛資產(chǎn)分配
- 2025年度車輛外借責(zé)任免除及事故賠償協(xié)議
- 2025年度研學(xué)旅行文化體驗(yàn)合同
- 二零二五年度炊事員餐飲業(yè)未來趨勢(shì)預(yù)測(cè)聘用合同
- 2025年度蛋糕店線上線下銷售渠道拓展合同
- 施工現(xiàn)場(chǎng)施工防生物災(zāi)害威脅制度
- 行政事業(yè)單位國(guó)有資產(chǎn)管理辦法
- 六年級(jí)口算訓(xùn)練每日100道
- 高一生物生物必修一全冊(cè)考試題帶答題紙答案
- 北師大版五年級(jí)上冊(cè)四則混合運(yùn)算100道及答案
- 人教部編版道德與法治八年級(jí)下冊(cè):6.3 《國(guó)家行政機(jī)關(guān)》說課稿1
- 2024山東能源集團(tuán)中級(jí)人才庫(kù)選拔(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
- 鋼鐵是怎樣煉成的讀后感作文700字
- 武漢市江夏區(qū)2022-2023學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試卷【帶答案】-109
- 學(xué)校物業(yè)服務(wù)合同范本專業(yè)版
- SL 288-2014 水利工程施工監(jiān)理規(guī)范
- 部編版八年級(jí)語(yǔ)文上冊(cè)期末考試卷
評(píng)論
0/150
提交評(píng)論