【正文】
在這個設(shè)計中 , 我運(yùn)用 編。 河南科技大學(xué)畢業(yè)設(shè)計 (論文 ) 39 結(jié) 論 畢業(yè)設(shè)計是本科教育過程中最重要的一次集中性實(shí)踐環(huán)節(jié),是學(xué)生四年學(xué)習(xí)的重要總結(jié)。對此執(zhí)行文件進(jìn)行測試,然后 利用 Visual Basic 自帶的打包向?qū)Чぞ?Package amp。聯(lián)機(jī)調(diào)試中也可以實(shí)現(xiàn)下位機(jī)與上位機(jī)的互聯(lián),以及與數(shù)據(jù)庫之間的聯(lián)系。以實(shí)現(xiàn)項目的設(shè)計功能。 (二 ) 聯(lián)機(jī)調(diào)試:本系統(tǒng)是物聯(lián)網(wǎng)設(shè)計的一項上位機(jī)數(shù)據(jù)庫設(shè)計,下面有 紅外節(jié)點(diǎn) 軟件硬件 設(shè)計 ,溫度 采集 軟硬件 設(shè)計,串行口通訊設(shè)計,基于TCP/IP 的通訊 接口軟件 設(shè)計,還有這個數(shù)據(jù)庫軟件設(shè)計。 系統(tǒng)調(diào)試 系統(tǒng)調(diào)試分為單機(jī)模擬調(diào)試和小組內(nèi)綜合調(diào) 試: (一 ) 單機(jī)調(diào)試: VB 程序設(shè)計有數(shù)據(jù)模擬定時器,可以對模擬的數(shù)據(jù)進(jìn)行錄入存儲以及查詢功能,在這些功能及基礎(chǔ)上加入的查詢最大最小值以及位置紅外報警功能可以很好的實(shí)現(xiàn)。 (三 ) 綜合測試:在以上測試的基礎(chǔ)上,對系統(tǒng)功能進(jìn)行了整體測試,依次檢驗(yàn)系統(tǒng)功能能否實(shí)現(xiàn)系統(tǒng)設(shè)計的要求。 系統(tǒng)測試 在開發(fā)本系統(tǒng)時,為了使系統(tǒng)能夠穩(wěn)定運(yùn)行,對本系統(tǒng)進(jìn)行了有針對性的全面測試,采取的方式是: (一 ) 按鍵 測試 :為了保證每一項按鍵能夠正確實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn)的功能,對每一按鍵進(jìn)行增加、修改、刪除等操作,以及測試軟件進(jìn)行了無數(shù)次改正,從而保證了功能的正確實(shí)現(xiàn)。刪除溫度格式表中的所有記錄 End Sub 在本窗口的三個 textbox 內(nèi)輸入三個點(diǎn)的溫度信息,然后點(diǎn)添加按鍵,此時在數(shù)據(jù)庫 沒有輸入數(shù)據(jù),只有按下提交鍵 , 錄入的數(shù)據(jù)都會存進(jìn)數(shù)據(jù)庫里。 \。data source= amp。INSERT 可以是對一個表與表之間的插入 39。 39。 amp。 39。 amp。 39。 amp。 39。 amp。 \ 39。data source= amp。以方便調(diào)試演示 ,如圖 37: 河南科技大學(xué)畢業(yè)設(shè)計 (論文 ) 35 圖 37 錄入溫度數(shù)據(jù) 主要有兩個 click 控件, 一個是添 加( Command1 ),一 個是提 交( mand3),時間 DTpicker 控件隨時間自動更新三部分程序段: 添加按鍵程序: Private Sub Command1_Click() Dim SQL1 As String If Len() = 0 Then MsgBox 數(shù)據(jù)不全請重新輸入 , vbInformation, 提示 Exit Sub End If 39。記錄溫度 C 最小值 sqlmin = select min(溫度 C) from 溫度 + sql sqlmin, conn, adOpenDynamic, adLockOptimistic If ( = 0) Then = 0 ℃ Else = Format(rs(0), ) amp。記錄溫度 B 最小值 sqlmin = select min(溫度 B) from 溫度 + sql sqlmin, conn, adOpenDynamic, adLockOptimistic If ( = 0) Then = 0 ℃ Else = Format(rs(0), ) amp。記錄溫度 A 最小值 sqlmin = select min(溫度 A) from 溫度 + sql sqlmin, conn, adOpenDynamic, adLockOptimistic If ( = 0) Then = 0 ℃ Else = Format(rs(0), ) amp。記錄溫度 C 最大值 sqlmax = select max(溫度 C) from 溫度 + sql sqlmax, conn, adOpenDynamic, adLockOptimistic If ( = 0) Then = 0 ℃ Else = Format(rs(0), ) amp。記錄溫度 B 最大值 sqlmax = select max(溫度 B) from 溫度 + sql sqlmax, conn, adOpenDynamic, adLockOptimistic If ( = 0) Then = 0 ℃ Else = Format(rs(0), ) amp。 If ( = 0) Then = 0 ℃ Else = Format(rs(0), ) amp。記錄溫度 A 最大值 sqlmax = select max(溫度 A) from 溫度 + sql sqlmax, conn, adOpenDynamic, adLockOptimistic 39。 為了便于查詢歷史數(shù)據(jù)及當(dāng)天溫度的極值,設(shè)置查詢最大最小值功能,河南科技大學(xué)畢業(yè)設(shè)計 (論文 ) 32 如圖 36 所示: 圖 36 查詢極值 程序代碼如下: 39。 amp。 amp。 39。 Format (, hh:mm:ss), yyyyMMdd hh:mm:ss) 39。 Format (, hh:mm:ss), yyyyMMdd hh:mm:ss) dt4 = Format ( amp。 溫度查詢 Private Sub ctlQueryInTemperature_Click () Dim sql As String If ( = True) Then dt1 = CDate () dt2 = DateAdd (d, dt1, 1) sql = where 時間 = + CStr(dt1) + and 時間 + CStr(dt2) + Else 河南科技大學(xué)畢業(yè)設(shè)計 (論文 ) 30 dt3 = Format ( amp。自動 連接數(shù)據(jù)庫 = adUseClient = adUseClient select 時間 ,溫度 A,溫度 B,溫度 C fro m 溫度 , conn, adOpenDynamic, adLockOptimistic select 時間 ,位置 A,位置 B,位置 C from 位置 , conn, adOpenDynamic, adLockOptimistic 39。 App. Path amp。 位置數(shù)據(jù)集 1. 當(dāng)窗體啟動時,在 DataGrid 中加載溫度,位置信息,代碼如下: Private Sub Form Load () provider=。 數(shù)據(jù)連接 Dim rsTemperature As New 39。 2) 兩個 textbox 程序的設(shè)置: Private Sub ctlUpper_Change () Dim t as Long On Error GoTo over: If (Trim () = ) Then = 0 Exit Sub End If t = CLng (Trim ()) If (t 0) Then = 0 ElseIf (t 150) Then = 150 End If Exit Sub Over: = 0 End Sub Private Sub ctlLower_Change () Dim t as Long On Error GoTo over: 河南科技大學(xué)畢業(yè)設(shè)計 (論文 ) 27 If (Trim () = ) Then = 0 Exit Sub End If t = CLng (Trim ()) If (t 0) Then = 0 ElseIf (t 150) Then = 150 End If Exit Sub Over: = 0 End Sub Textbox 中的數(shù)據(jù)在 0 到 150 之間,當(dāng)溢出時取兩極限值( 0 或 150) 。 \images\) End If End Sub 在文件夾 images 內(nèi) 加入兩個 bmp 格式的圖片,當(dāng)位置信息判斷為 True 時,顯示 ;當(dāng)位置信息判斷為 false 時,顯示 。 Private Sub LedOn (pos As Image, state As Boolean) If (state = True) Then = LoadPicture (App. Path amp。HC000amp。) 。小于設(shè)置溫度下限時,顯示黑色( amp。HFFamp。HC000amp。O0amp。HFFamp。HC000amp。O0amp。HFFamp。HC000amp。O0amp。HFFamp。 tm, yyyyMMdd hh:mm:ss) 河南科技大學(xué)畢業(yè)設(shè)計 (論文 ) 24 rsPosition(位置 A) = pa rsPosition(位置 B) = pb rsPosition(位置 C) = pc End Sub. 記錄數(shù)據(jù)并保存生成數(shù)據(jù)的年月日 、 小時分鐘秒 ,和三個位置點(diǎn)的溫度或位置信息。 tm, yyyyMMdd hh:mm:ss) rsTemperature(溫度 A) = ta rsTemperature(溫度 B) = tb rsTemperature(溫度 C) = tc rsPosition( 時間 ) = Format(dt amp。 記錄數(shù)據(jù) Private Sub Record Data (ta As Single, tb As Single, tc As Single, pa As Boolean, pb As Boolean, pc As Boolean) dt = Date tm = Time rsTemperature(時間 ) = Format(dt amp。位置使用選擇語句,判定輸出 true 或者 false。 位置 B If (m = 50) Then pb = True Else pb = False End If m = Rnd * 100 39。位置數(shù)據(jù)的構(gòu)造取自 IF 語句 m = Rnd * 100 39。 溫度 B tc = Rnd * 100 39。設(shè)置一個 Rnd 隨機(jī)函數(shù),取 [0, 1)值 ta = Rnd * 100 39。 溫度 A, B, C Dim tb As Single Dim tc As Single Dim m As Single 河南科技大學(xué)畢業(yè)設(shè)計 (論文 ) 22 Dim pa As Boolean 39。 模擬數(shù)據(jù) , 初始化隨機(jī)數(shù) Randomize Timer End Sub 窗口定義里有定時器 Timer 控件的設(shè)置系統(tǒng)時間顯示語句: Private Sub Form Load () = 100 End Sub Private Sub Timer1_Timer () If CStr (Time) Then = Time End If End Sub 在 VB 中設(shè)置以文本框, 使 textbox 控件中的時間與系統(tǒng)時間同步 。 ℃ = Trim (Str (g_TemperatureLower)) amp。 App. Path 河南科技大學(xué)畢業(yè)設(shè)計 (論文 ) 21 amp。 位置數(shù)據(jù)集 2. 窗口加載時代碼如下: Private Sub Form Load () provider=。 數(shù)據(jù)連接 Dim rsTemperature As New