




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、山東微分電子科技有限公司 智能家居綜合實(shí)驗(yàn)1山東微分電子科技有限公司目錄目錄1第一章綜合實(shí)驗(yàn)21.智能家居21.1實(shí)驗(yàn)?zāi)康?1.2實(shí)驗(yàn)環(huán)境21.3實(shí)驗(yàn)內(nèi)容21.4實(shí)驗(yàn)原理21.4.5.實(shí)驗(yàn)步驟5附錄23協(xié)議介紹23通訊格式23傳輸編碼2425第一章 綜合實(shí)驗(yàn)1.智能家居1.1實(shí)驗(yàn)?zāi)康耐ㄟ^對(duì)智能家居案例的學(xué)習(xí),讓學(xué)生充分認(rèn)識(shí)物聯(lián)網(wǎng)在智能家居的作用,充分了解并深入掌握光照,溫度,濕度等各傳感器的作用。1.2實(shí)驗(yàn)環(huán)境1. Microsoft Visual Studio 20102. Microsoft SQL Server 20083. 微分電子實(shí)驗(yàn)箱或?qū)嶒?yàn)臺(tái)以及配套的C#SDK開發(fā)包 1.3實(shí)驗(yàn)內(nèi)
2、容通過對(duì)光照、溫度、濕度、火焰、燃?xì)?、煙霧等多種傳感器的利用,實(shí)時(shí)采集光照、溫度、濕度、火焰、燃?xì)?、煙霧等多種傳感信息,進(jìn)而與窗簾、空調(diào)、燈光、風(fēng)扇等多種繼電器和電機(jī)實(shí)施聯(lián)動(dòng)控制,可以配置報(bào)警記錄,產(chǎn)生歷史記錄。顯示報(bào)警記錄,歷史記錄等信息。1.4實(shí)驗(yàn)原理1.系統(tǒng)背景電子信息的日益更新,控制技術(shù)的逐步提升,社會(huì)信息化的逐步加快,促使人們的生活、工作、學(xué)習(xí)以及通訊技術(shù)的關(guān)系日益緊密,信息化的社會(huì)在改變?nèi)藗兩盍?xí)慣和工作方式的同時(shí),也對(duì)我們傳統(tǒng)住宅提出了更高的要求,環(huán)視四周,我們很容易發(fā)現(xiàn),人們對(duì)家居的要求早已不再時(shí)簡(jiǎn)單的物質(zhì)空間,更為關(guān)注的是一個(gè)高度安全、舒適以及美觀方便的居住環(huán)境,先進(jìn)的通訊設(shè)
3、施,完備高效的信息終端,自動(dòng)、智能的家電,網(wǎng)絡(luò)化的資源管理及購(gòu)物方式等等?,F(xiàn)今社會(huì)人們?nèi)找媾蛎浀男枨笫沟眉揖又悄芑讶怀蔀橐环N趨勢(shì)。2.系統(tǒng)功能概述系統(tǒng)結(jié)構(gòu)圖系統(tǒng)功能設(shè)計(jì)智能家居系統(tǒng)分為兩個(gè)部分:實(shí)時(shí)的數(shù)據(jù)采集,包括對(duì)各地點(diǎn)的環(huán)境信息監(jiān)控,與電機(jī)的聯(lián)動(dòng)配置,網(wǎng)絡(luò)通訊的設(shè)置;數(shù)據(jù)記錄查詢,歷史記錄查詢和報(bào)警記錄查訊。廚房查詢:監(jiān)控廚房各傳感器的信息值,進(jìn)行用戶的手動(dòng)配置,以圖表形式實(shí)時(shí)顯示各傳感器信息??蛷d查詢:監(jiān)控客廳各傳感器的信息值,進(jìn)行用戶的手動(dòng)配置,以圖表形式實(shí)時(shí)顯示各傳感器信息。臥室查詢:監(jiān)控臥室各傳感器的信息值,進(jìn)行用戶的手動(dòng)配置,以圖表的形式實(shí)時(shí)顯示各傳感器信息。閾值設(shè)置:對(duì)客廳、
4、臥室的光照、溫度、濕度的傳感器信息進(jìn)行閾值配置,判斷是否進(jìn)行電機(jī)聯(lián)動(dòng)和產(chǎn)生報(bào)警信息,從而在主界面進(jìn)行反饋。歷史查詢:查詢客廳,臥室,廚房歷史記錄信息,并在界面顯示。報(bào)警查詢:查詢客廳,臥室,廚房報(bào)警記錄信息,并在界面顯示。退出系統(tǒng):退出整個(gè)系統(tǒng)。4.數(shù)據(jù)庫的設(shè)計(jì)通過數(shù)據(jù)庫保存光照、溫度、濕度、火焰、燃?xì)?、煙霧等傳感器信息的數(shù)據(jù)信息,保存各傳感器數(shù)據(jù)閾值的記錄和對(duì)聯(lián)動(dòng)信息電機(jī)的狀態(tài)的值,從而有利于用戶對(duì)各傳感器的故障排除和記錄查詢,保證家居環(huán)境的安全。數(shù)據(jù)庫名稱:SmartHome數(shù)據(jù)庫表名:歷史記錄查詢表 dbo.HistoryData字段數(shù)據(jù)類型主鍵描述允許為空HistoryIDInt是歷史
5、記錄ID否HistoryMinValueNvarchar(30)否歷史記錄的最小值否HistoryMaxValueNvarchar(30)否歷史記錄的最大值否SensorIDNvarchar(20)否傳感器ID否SensorValueNvarchar(30)否傳感器采集值否SensorCollectTimeDateTime否設(shè)備采集時(shí)間否數(shù)據(jù)庫表名:地點(diǎn)表 dbo.Place字段數(shù)據(jù)類型主鍵描述允許為空placeNoNvarchar(20)是地點(diǎn)ID否PlaceNameNvarchar(30)否地點(diǎn)名稱否數(shù)據(jù)庫表名:傳感器表dbo.SensorTable字段數(shù)據(jù)類型主鍵描述允許為空Sensor
6、NoNvarchar(20)是傳感器編號(hào)否SensorTypeIDNvarchar(30)否傳感器類型否SensorPlaceNonvarChar(20)否傳感器采集地點(diǎn)編號(hào)否數(shù)據(jù)庫表名:傳感器類型表dbo.SensorType字段數(shù)據(jù)類型主鍵描述允許為空SensorTypeIDNvarchar(20)是傳感器類型ID否SensorTypeNvarchar(30)否傳感器類型否數(shù)據(jù)庫表名:報(bào)警數(shù)據(jù)表dbo.WarningData字段數(shù)據(jù)類型主鍵描述允許為空WarnIDint是報(bào)警編號(hào)否WarnSensorIDNvarchar(20)否報(bào)警傳感器ID否WarnValuefloat否產(chǎn)生報(bào)警采集值
7、否WarnlimitMinValuefloat否報(bào)警最小值閾值否WarnlimitMaxValuefloat否報(bào)警最大值閾值否WarnTimedateTime否報(bào)警值采集時(shí)間否WarnPlaceNoNvachar(20)否傳感器所在地點(diǎn)否WarnInfoNtext否報(bào)警信息否數(shù)據(jù)庫表名:傳感器配置表 dbo.SensorConfig字段數(shù)據(jù)類型主描述允許為空SensorConfigIDint是配置編號(hào)否SensorIDNvarchar(20)否配置傳感器ID否SensorPlaceIDNvarchar(20)否配置傳感器ID否SensorConRealyIDNvarchar(20)否相關(guān)連的繼
8、電器ID否SensorCollectValueFloat 否傳感器采集值否SensorlimitMinValueFloat 否配置最小值閾值信息否SensorlimitMaxValueFloat 否配置最大值閾值信息否SensorAlarmInfoNvarchar(50)否傳感器報(bào)警信息狀態(tài)否SensorlimitSetTimedateTime 否配置閾值當(dāng)前時(shí)間否數(shù)據(jù)庫表名:繼電器狀態(tài)表 dbo.RealyStatus字段數(shù)據(jù)類型主鍵描述允許為空RealyIDNvarchar(20)是繼電器類型ID否RealyNameNvarchar(30)否繼電器類型否RealyStatusNvarcha
9、r(10)否繼電器狀態(tài)是1.4.5.實(shí)驗(yàn)步驟第一步 :網(wǎng)絡(luò)參數(shù)的讀取,界面效果如下:在【進(jìn)入】時(shí),由從XML文件讀取的IP和Port配置,并ping IP地址,如果網(wǎng)絡(luò)聯(lián)通正常,將IP和端口號(hào)賦給各個(gè)窗體,進(jìn)入【智能家居實(shí)時(shí)監(jiān)控】/讀取配置文件/實(shí)例化XMLDocument類 XmlDocument xmldoc = new XmlDocument(); /讀取IPConfig文件 xmldoc.Load(IPConfig.xml);/讀取節(jié)點(diǎn) XmlNode nodeIP = xmldoc.SelectSingleNode(config/ip); XmlNode nodePort = xml
10、doc.SelectSingleNode(config/Port); /判斷信息正確與否,并給全部變量賦值 if (txtIP.Text = nodeIP.InnerText &txtPort.Text=nodePort.InnerText) try /實(shí)例化ping類 Ping p = new Ping();/將所要ping的IP地址傳到后臺(tái) PingReply reply = p.Send(txtIP.Text);/判斷ping IP的狀態(tài) if (reply.Status = IPStatus.Success) MessageBox.Show(當(dāng)前網(wǎng)絡(luò)聯(lián)通正常!); else Messa
11、geBox.Show(當(dāng)前網(wǎng)絡(luò)聯(lián)通異?;虍?dāng)前IP錯(cuò)誤!); catch (Exception ex) MessageBox.Show(ex.Message); FrmMain frmMa = new FrmMain(); frmMa.Show(); FrmDrawing.NetIP = nodeIP.InnerText; FrmDrawing.Port = nodePort.InnerText; FrmKitchen.NetIP = nodeIP.InnerText; FrmKitchen.Port = nodePort.InnerText; FrmRoom.NetIP = nodeIP.In
12、nerText; FrmRoom.Port = nodePort.InnerText; FrmMain.NetIP = nodeIP.InnerText; FrmMain.Port = nodePort.InnerText; this.Hide(); else MessageBox.Show(輸入的信息有誤!); 第二步 當(dāng)IP與Port配置成功后,進(jìn)入到【智能家居實(shí)時(shí)監(jiān)控】,顯示界面效果如下:在【智能家居實(shí)時(shí)監(jiān)控】中,實(shí)時(shí)監(jiān)測(cè)臥室的環(huán)境信息,當(dāng)網(wǎng)絡(luò)配置正常時(shí),自動(dòng)進(jìn)行聯(lián)動(dòng)控制主要功能代碼(以臥室為例)如下:/讀取配置文件 XmlDocument xmldoc = new XmlDocumen
13、t(); xmldoc.Load(IPConfig.xml); XmlNode nodeNetIP = xmldoc.SelectSingleNode(config/ip); XmlNode nodePort = xmldoc.SelectSingleNode(config/Port);/判斷IP和端口號(hào) if (NetIP = nodeNetIP.InnerText & Port = nodePort.InnerText) try string light = sm.getLight( + NetIP + , + Port + , 3, , , ); lblRoomlight.Text =
14、臥室光照:“+light1 + LX;int lightValue = int.Parse(light1); if (lightRoomlimitMaxValue = lightRoomlimitMinValue) /顯示設(shè)定的最小值 string strReadMinValue = select SensorlimitMinValue from SensorConfig where SensorID=C0003_3; /顯示設(shè)定的最大 string strReadMaxValue = select SensorlimitMaxValue from SensorConfig where Sen
15、sorID=C0003_3; /判斷光照與閾值的關(guān)系,并進(jìn)行聯(lián)動(dòng)操作 /判斷光照值是否小于最小值,如果滿足條件,打開燈光 if (int.Parse(SQLDBHelper.GetDataSet(strReadMinValue).Tables0.Rows0SensorlimitMinValue.ToString() lightValue) Roomlight.Visible = false; RoomlightRed.Visible = true;/判斷聯(lián)動(dòng)電機(jī)的狀態(tài) String strRead = SELECT RealyStatus,SensorID,SensorConRealyID F
16、ROM RealyStatus,SensorConfig where SensorConfig.SensorConRealyID=RealyStatus.RealyID and SensorID=C0003_3 and SensorConRealyID=S0001; /如果LED燈狀態(tài)為“關(guān)”,自動(dòng)關(guān)閉LED燈,否則就打開LED if (SQLDBHelper.GetDataSet(strRead).Tables0.Rows0RealyStatus.ToString() = 關(guān)) string close = sm.getOrSetSwitch( + NetIP + , + Port + ,
17、101, , , , 3, 0); else string open = sm.getOrSetSwitch( + NetIP + , + Port + , 101, , , , 3, 1); /判斷光照度是否大于設(shè)定的最大值,如果滿足,打開步進(jìn)電機(jī) else if (lightValue int.Parse(SQLDBHelper.GetDataSet(strReadMaxValue).Tables0.Rows0SensorlimitMaxValue.ToString() Roomlight.Visible = false; RoomlightRed.Visible = true; stri
18、ng strRoomlight= SELECT RealyStatus,SensorID,SensorConRealyID FROM RealyStatus,SensorConfig where SensorConfig.SensorConRealyID=RealyStatus.RealyID and SensorID=C0003_3 and SensorConRealyID=S0003; /判斷步進(jìn)電機(jī)的狀態(tài)if (SQLDBHelper.GetDataSet(strRoomlight).Tables0.Rows0RealyStatus.ToString() = 關(guān)) string clos
19、e = sm.getOrSetStepMotor( + NetIP + , + Port + , 104, , , , 3, 0, 800); else string open = sm.getOrSetStepMotor( + NetIP + , + Port + , 104, , , , 3, 1, 800); /如果條件都不滿足,則將LED和步進(jìn)電機(jī)都關(guān)閉 else Roomlight.Visible = true; RoomlightRed.Visible = false; string closeStep = sm.getOrSetStepMotor( + NetIP + , + P
20、ort + , 104, , , , 3, 0, 800); string closeMotor = sm.getOrSetSwitch( + NetIP + , + Port + , 101, , , , 3, 0); catch (Exception ex) Console.WriteLine(ex); 【廚房監(jiān)測(cè)環(huán)境監(jiān)控】,界面效果如下:對(duì)于廚房的環(huán)境,燃?xì)猓瑹熿F,火焰進(jìn)行實(shí)時(shí)采集和顯示,手動(dòng)進(jìn)行聯(lián)動(dòng)設(shè)置,例如:電機(jī)的開啟與關(guān)閉。/獲取燃?xì)庵?,將?shù)據(jù)保存到數(shù)據(jù)庫 try string Gas = sm.getCombustibleGas( + NetIP + , + Port + , 7
21、, , , ); /獲取燃?xì)庵?lblGas.Text = Gas1; if (lblGas.Text != null & int.Parse(Gas1) 0) /設(shè)置picSwitch 背景 picSwitch.ImageLocation = picture/off.png; /將燃?xì)庵堤砑拥綌?shù)據(jù)庫 string strSqlGas = insert into HistoryData (HistoryMinValue,HistoryMaxValue,SensorID,SensorValue,SensorCollectTime)values(0,25,A0001_3, + Gas1 + , +
22、 DateTime.Parse(time) + ); SQLDBHelper.ExecuteNonQuery(strSqlGas); else picSwitch.ImageLocation = picture/on.png; /從數(shù)據(jù)庫讀取信息,并綁定在chart圖表上 string strfindGas = select TOP 100 SensorCollectTime,SensorValue from HistoryData where SensorID=A0001_3 order by(SensorCollectTime)desc; /聲明數(shù)據(jù)類型為int的list List lis
23、tData = new List(); /聲明數(shù)據(jù)類型為string的list List listDate = new List(); for (int i = 0; i SQLDBHelper.GetDataSet(strfindGas).Tables0.Rows.Count; i+) / 從數(shù)據(jù)庫讀取數(shù)據(jù),添加到list listData.Add(int.Parse(SQLDBHelper.GetDataSet(strfindGas).Tables0.RowsiSensorValue.ToString(); listDate.Add(SQLDBHelper.GetDataSet(strfi
24、ndGas).Tables0.RowsiSensorCollectTime.ToString(); /綁定廚房燃?xì)鈹?shù)據(jù) chtKitChen.Series0.Points.DataBindXY(listDate, listData); catch (Exception ex) Console.WriteLine(ex); /獲取廚房火焰數(shù)據(jù),保存在數(shù)據(jù)庫 try string flame = sm.getFire( + NetIP + , + Port + , 156, , , ); if (flame1 = 1) lblflame.Text = 有; lblflame.ForeColor =
25、 Color.Red; string strSqlflame = insert into HistoryData (HistoryMinValue,HistoryMaxValue,SensorID,SensorValue,SensorCollectTime)values(0,100,A0001_2,火焰:有, + DateTime.Parse(time) + ); SQLDBHelper.ExecuteNonQuery(strSqlflame); catch (Exception ex) Console.WriteLine(ex); /在窗體載入時(shí)開啟線程threadCollect = new
26、 Thread(collect);threadCollect.Start();/定義變量 bool flag = false; /對(duì)于線程的方法 public void collect() flag = true; while (flag) try string temp = sm.getTemperature( + NetIP + , + Port + , 1, , , ); lblTemp.Text = temp1; /將數(shù)據(jù)添加到歷史記錄表 string strSqlTemp = insert into HistoryData(HistoryMinValue,HistoryMaxValu
27、e,SensorID,SensorValue,SensorCollectTime) values( + FrmMain.templimitMinValue + , + FrmMain.templimitMaxValue + ,B0002_1, + lblTemp.Text + , + DateTime.Parse(time) + ); SQLDBHelper.ExecuteNonQuery(strSqlTemp); /從數(shù)據(jù)庫讀取信息,將數(shù)據(jù)綁定到chart圖表 string strfindtemp = select TOP 100 SensorCollectTime,SensorValue
28、from HistoryData where SensorID=B0002_1 order by(SensorCollectTime)desc; /定義數(shù)據(jù)類型為int的list List listData = new List(); /定義數(shù)據(jù)類型為string的list List listDate = new List(); for (int i = 0; i 0) /將獲得數(shù)據(jù)添加到list listData.Add(int.Parse(SQLDBHelper.GetDataSet(strfindtemp).Tables0.RowsiSensorValue.ToString(); lis
29、tDate.Add(SQLDBHelper.GetDataSet(strfindtemp).Tables0.RowsiSensorCollectTime.ToString(); /通過委托傳遞參數(shù)this.Invoke(new Action() = lblTemp.Text = temp1;/綁定客廳溫度到chart圖表 chtLivingwt.Series0.Points.DataBindXY(listDate, listData); ); catch (Exception ex) Console.WriteLine(ex); 【客廳監(jiān)測(cè)環(huán)境監(jiān)控】,界面效果如下:監(jiān)測(cè)客廳的環(huán)境信息(這里指溫
30、度),保存到數(shù)據(jù)庫,并將數(shù)據(jù)綁定到chart圖表,手動(dòng)進(jìn)行聯(lián)動(dòng)電機(jī)的開啟與關(guān)閉。/在窗體載入時(shí)開啟線程threadCollect = new Thread(collect);threadCollect.Start();/定義變量 bool flag = false; /對(duì)于線程的方法 public void collect() flag = true; while (flag) try string temp = sm.getTemperature( + NetIP + , + Port + , 1, , , ); lblTemp.Text = temp1; /將數(shù)據(jù)添加到歷史記錄表 stri
31、ng strSqlTemp = insert into HistoryData(HistoryMinValue,HistoryMaxValue,SensorID,SensorValue,SensorCollectTime) values( + FrmMain.templimitMinValue + , + FrmMain.templimitMaxValue + ,B0002_1, + lblTemp.Text + , + DateTime.Parse(time) + ); SQLDBHelper.ExecuteNonQuery(strSqlTemp); /從數(shù)據(jù)庫讀取信息,將數(shù)據(jù)綁定到char
32、t圖表 string strfindtemp = select TOP 100 SensorCollectTime,SensorValue from HistoryData where SensorID=B0002_1 order by(SensorCollectTime)desc; /定義數(shù)據(jù)類型為int的list List listData = new List(); /定義數(shù)據(jù)類型為string的list List listDate = new List(); for (int i = 0; i 0) /將獲得數(shù)據(jù)添加到list listData.Add(int.Parse(SQLDBH
33、elper.GetDataSet(strfindtemp).Tables0.RowsiSensorValue.ToString(); listDate.Add(SQLDBHelper.GetDataSet(strfindtemp).Tables0.RowsiSensorCollectTime.ToString(); /通過委托傳遞參數(shù)this.Invoke(new Action() = lblTemp.Text = temp1;/綁定客廳溫度到chart圖表 chtLivingwt.Series0.Points.DataBindXY(listDate, listData); ); catch
34、(Exception ex) Console.WriteLine(ex); (注意:由于數(shù)據(jù)需要從數(shù)據(jù)庫中讀取,可能數(shù)據(jù)獲取比較慢)對(duì)chart的設(shè)置主要代碼:/設(shè)置溫度圖表樣式/設(shè)置chart標(biāo)題 chtLivingwt.Titles.Add(客廳溫濕度監(jiān)控); /實(shí)例化圖表區(qū) ChartArea ca = new ChartArea(圖表區(qū));/實(shí)例化圖表序列seTemp = new Series(溫度);/設(shè)置圖表序列樣式 seTemp.ChartType = SeriesChartType.Spline; /將溫度的圖表序列添加到圖表區(qū) seTemp.ChartArea = ca.Na
35、me; /圖表ca添加到圖表區(qū) chtLivingwt.ChartAreas.Add(ca); /將溫度seTemp的圖表序列添加到圖表序列chtLivingwt.Series.Add(seTemp); /設(shè)置圖表序列樣條線的寬度chtLivingwt.Series0.BorderWidth = 2; /設(shè)置X軸主題 chtLivingwt.ChartAreas0.AxisX.Title = 時(shí)間:( /s); /設(shè)置Y軸主題chtLivingwt.ChartAreas0.AxisY.Title = 單位:; 【臥室環(huán)境實(shí)時(shí)監(jiān)控】,界面效果如下:注:代碼及注釋請(qǐng)參考“客廳環(huán)境監(jiān)控”【智能家居控
36、制區(qū)】,界面效果如下:將配置的電機(jī),繼電器的狀態(tài),是否報(bào)警等信息在界面顯示,同時(shí)并更改數(shù)據(jù)庫數(shù)據(jù)的狀態(tài)。主要代碼如下(以客廳光照為例):/設(shè)置客廳光照/窗體載入判斷數(shù)據(jù)記錄是否存在,如果存在,則不插入數(shù)據(jù),否則就將數(shù)據(jù)記錄插入到數(shù)據(jù)庫 string sqlRead = select count(*)as Count from SensorConfig where SensorID=B0002_3 ;/如果數(shù)據(jù)不存在 if (int.Parse(SQLDBHelper.GetDataSet(sqlRead).Tables0.Rows0Count.ToString() = 1) string ti
37、me = DateTime.Now.ToLocalTime().ToString(); string strSqlIns = insert into SensorConfig values(5,B0002_3,B10002,S0001, + txtLivinglight.Text + , + txtlivinglightMinVa.Text + , + txtlivinglightMaxVa.Text + ,否, + time + ); SQLDBHelper.ExecuteNonQuery(strSqlIns); string strSqlSec = insert into SensorCo
38、nfig values(6,B0002_3,B10002,S0003, + txtLivinglight.Text + , + txtlivinglightMinVa.Text + , + txtlivinglightMaxVa.Text + ,否, + time + ); SQLDBHelper.ExecuteNonQuery(strSqlSec); else Console.WriteLine(該記錄已存在!); /判斷低溫報(bào)警是否被選中 string strReadWarn1 = SELECT SensorAlarmInfo FROM SensorConfig where SensorConfigID=5; if (SQLDBHelper.GetDataSet(strReadWarn1).Tables0.Rows0SensorAlarmInfo.ToString() = 否) cblivinglightPolice1.Checked = false; else cblivinglightPolice1.Checked = true; /判斷高溫報(bào)警否被選中 string strReadWarn2 = SELECT Senso
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區(qū)場(chǎng)地租賃合同
- 裝飾裝修施工協(xié)議合同
- 內(nèi)河船舶光船租賃合同
- 數(shù)據(jù)保密協(xié)議合同
- 公寓承包裝修合同
- 勞務(wù)承包合同材料合同
- 售房房屋買賣合同
- 《北京的春節(jié)》課件-3
- 《列寧領(lǐng)導(dǎo)的社會(huì)主義革命與建設(shè)》急劇動(dòng)蕩的現(xiàn)代世界課件-2
- 工地小件采購(gòu)合同范本
- 《往復(fù)活塞式壓縮機(jī)》課件
- 幼小銜接拼音課件
- 【課件】2024屆高三一輪復(fù)習(xí)課件 自然地理過程地質(zhì)-解碼大美喀斯特
- 實(shí)踐研修成果撰寫教學(xué)案例
- 四年級(jí)下冊(cè)科學(xué)第一單元《作業(yè)設(shè)計(jì)》第1-4課習(xí)題答案解析(教科版)
- 聯(lián)通數(shù)字化轉(zhuǎn)型的一書一表
- 高一離子方程式書寫專題訓(xùn)練及答案
- 勞務(wù)報(bào)酬個(gè)稅計(jì)算表,正算反算都可以
- 張?jiān)i《微觀經(jīng)濟(jì)學(xué)》(中級(jí)教程)筆記和課后習(xí)題詳解
- 如何有效管理90-00后新員工技巧方法-123課件
- 第十三講 全面貫徹落實(shí)總體國(guó)家安全觀PPT習(xí)概論2023優(yōu)化版教學(xué)課件
評(píng)論
0/150
提交評(píng)論