版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
利用MPPT制作基于物聯(lián)網(wǎng)的太陽能監(jiān)測(cè)系統(tǒng)在可再生能源領(lǐng)域,太陽能處于最前沿,因?yàn)槔锰柲馨l(fā)電是可再生能源最簡(jiǎn)單、商業(yè)上可行的方式。說到太陽能電池板,需要監(jiān)控太陽能電池板輸出的輸出功率,以便從電池板獲得最佳功率輸出。這就是為什么需要實(shí)時(shí)監(jiān)控系統(tǒng)的原因。在大型太陽能發(fā)電廠中,它還可用于監(jiān)控每個(gè)面板的功率輸出,這有助于識(shí)別灰塵堆積。它還可以防止運(yùn)行期間出現(xiàn)任何故障情況。在這個(gè)項(xiàng)目中,我們將通過結(jié)合基于MPPT(最大功率點(diǎn)跟蹤器)的電池充電技術(shù)來制作基于物聯(lián)網(wǎng)的太陽能監(jiān)測(cè)系統(tǒng),這將有助于減少充電時(shí)間并提高效率。此外,我們將測(cè)量面板溫度、輸出電壓和電流,以提高電路的安全性。最后,最重要的是,我們將使用ThingSpeak云服務(wù)來監(jiān)控來自世界各地的輸出數(shù)據(jù)。為支持物聯(lián)網(wǎng)的太陽能監(jiān)視器選擇合適的組件使用太陽能監(jiān)視器,監(jiān)視和檢測(cè)任何太陽能系統(tǒng)中的故障變得非常容易。這就是為什么在設(shè)計(jì)這樣的系統(tǒng)時(shí)組件選擇成為一個(gè)非常重要的部分。下面給出了我們使用的部件列表。ESP32開發(fā)板MPPT電路(可以是任何太陽能電路)分流電阻器(例如1Ohm1watt-適用于高達(dá)1A的電流)鋰電池(首選7.4v)。有效的Wi-Fi連接太陽能電池板的溫度傳感器分壓器電路(見說明)Esp32開發(fā)板:對(duì)于支持物聯(lián)網(wǎng)的應(yīng)用程序,必須選擇正確類型的開發(fā)板,該開發(fā)板能夠處理來自其模擬引腳的數(shù)據(jù)并通過任何類型的連接協(xié)議(如Wi-Fi或云)發(fā)送數(shù)據(jù)服務(wù)器。我們特別選擇了ESP32,因?yàn)樗且豢罹哂写罅抗δ艿牡统杀疚⒖刂破鳌4送?,它有一個(gè)內(nèi)置的Wi-Fi收音機(jī),我們可以通過它非常輕松地連接到互聯(lián)網(wǎng)。太陽能電路:太陽能充電電路是從太陽能電池板獲得更高電壓并將其轉(zhuǎn)換為充電電壓的電路,以便它可以有效地為電池充電。對(duì)于這個(gè)項(xiàng)目,我們將使用基于LT3562的MPPT充電控制器電路板,我們已經(jīng)在之前的一個(gè)項(xiàng)目中制作了該電路板。但是如果你想嵌入這個(gè)物聯(lián)網(wǎng)啟用監(jiān)控,你可以使用任何類型的太陽能電路。我們選擇此板是因?yàn)樵撾娐放鋫淞俗畲蠊β庶c(diǎn)跟蹤(MPPT),這對(duì)低功率太陽能電池板項(xiàng)目非常有利。這是從太陽能電池板為小型鋰電池充電的有效方法。分流電阻:任何電阻器都遵循歐姆定律,這意味著如果一定量的電流流過電阻器,就會(huì)出現(xiàn)一定量的電壓降。分流電阻器也不例外,它專門用于測(cè)量電流。但是,根據(jù)流過太陽能電池板的標(biāo)稱電流,選擇一個(gè)分流電阻器,該電阻器將產(chǎn)生足夠的電壓,該電壓可由微控制器單元測(cè)量。但是,與此同時(shí),電阻的瓦數(shù)也很重要。分流電阻功率的選擇也很重要??梢允褂孟旅娼o出的公式計(jì)算電壓降。這被稱為歐姆定律——V=IxRV是在“I”期間將產(chǎn)生的電壓,即流過電阻“R”的電流量。例如,1歐姆的電阻在1A的電流流過時(shí)會(huì)產(chǎn)生1V的壓降。對(duì)于電阻器的瓦數(shù),可以使用下面給出的公式-P=I2R其中I是最大電流,R是電阻值。對(duì)于具有1歐姆電阻的1A電流,1瓦的功率耗散就足夠了。然而,這對(duì)小型太陽能電池板項(xiàng)目很有用,但根本不適合與太陽能電網(wǎng)相關(guān)的應(yīng)用。在這種情況下,實(shí)際上需要使用非侵入式電流測(cè)量技術(shù)。在這種情況下,可以精確測(cè)量電流,其中可以測(cè)量非常低的電流量以及非常高的電流量。鋰電池:鋰電池的選擇是任何涉及太陽能電池板的項(xiàng)目的重要組成部分。因?yàn)槭冀K保持開啟并不斷檢查和提交數(shù)據(jù)的微控制器單元需要至少一百毫安的電流才能穩(wěn)定運(yùn)行。當(dāng)由于季風(fēng)而沒有陽光照射時(shí),電池容量應(yīng)該可以為微控制器供電至少4-5天。從電池的角度來看,充電電流必須大于負(fù)載電流也很重要。如果有人將100mA的負(fù)載與電池連接并提供小于該值的充電電流,這是很不尋常的。為了安全起見,我們的充電電流至少應(yīng)該是負(fù)載電流的5倍。另一方面,電池電壓需要高于微控制器所需的任何常用穩(wěn)壓器輸入電壓。例如,一個(gè)7.4V鋰電池可以連接在3.3V和5.0V線性穩(wěn)壓器上(因?yàn)榫€性穩(wěn)壓器需要比LDO和開關(guān)更高的壓差電壓。)在我們的項(xiàng)目中,我們使用了額定電壓為7.4V的4000mAH電池。我們使用了一個(gè)5.0V穩(wěn)壓器,可為ESP32提供足夠的電流和電壓輸出。分壓器:分壓器是太陽能電池板電壓測(cè)量的重要組成部分。應(yīng)該選擇一個(gè)分壓器,根據(jù)微控制器I/O電壓輸入來分壓。選擇上述電阻,使分壓器輸出電壓不應(yīng)超過微控制器最大I/O電壓(ESP32為3.3V)。但是,建議使用電位器,因?yàn)樗梢造`活地選擇任何更高或更低額定電壓的太陽能電池板,并且可以使用萬用表輕松設(shè)置電壓。在我們的例子中,我們?cè)贛PPT板電路中有一個(gè)電位計(jì),用作分壓器。我們?cè)O(shè)置分壓器的分壓系數(shù)為6V。我們接了兩只萬用表,一只在鍋的輸入端,一只在鍋的輸出端,并設(shè)置當(dāng)輸入電壓為18V時(shí)輸出為3V,因?yàn)樘柲茈姵匕宓臉?biāo)稱輸出電壓為18V。太陽能電池板的溫度傳感器:太陽能電池板的功率輸出與太陽能電池板的溫度直接相關(guān)。為什么?因?yàn)殡S著太陽能電池板的溫度開始增加,太陽能電池板的輸出電流呈指數(shù)增長(zhǎng),而電壓輸出開始呈線性下降。根據(jù)功率公式,瓦數(shù)等于電壓乘以電流(W=VxA),即使電流增加,降低輸出電壓也會(huì)降低太陽能電池板的輸出功率?,F(xiàn)在,我們想到的下一個(gè)問題是,如何測(cè)量太陽溫度?好吧,這很有趣,因?yàn)樘柲茈姵匕逋ǔ1┞对跓岘h(huán)境中,因?yàn)樗┞对陉柟庵鄙湎?,原因很明顯。測(cè)量太陽能電池板溫度的最佳方法是使用平面溫度傳感器。還建議使用直接放置在太陽能電池板中的K型熱電偶。對(duì)于我們的應(yīng)用,我們使用了基于熱敏電阻的溫度傳感器模塊,如下所示。基于物聯(lián)網(wǎng)的太陽能監(jiān)測(cè)電路圖啟用IoT的太陽能監(jiān)視器的完整電路圖如下所示。原理圖很簡(jiǎn)單。紅色點(diǎn)劃線板是我們?cè)谶@個(gè)項(xiàng)目中使用的MPPT板。設(shè)置ThingSpeak使用ThingSpeak創(chuàng)建一個(gè)帳戶并轉(zhuǎn)到“我的頻道”選項(xiàng),然后單擊新頻道。使用字段名稱創(chuàng)建一個(gè)新通道。現(xiàn)在設(shè)置字段后,轉(zhuǎn)到可以使用WriteAPIKey的APIKeys字段。需要在代碼中提供此密鑰以及通道ID。ThingSpeak地址可在同一頁面上找到。通過上述步驟,您可以非常輕松地設(shè)置ThingSpeak。如果您想了解有關(guān)ThingSpeak及其設(shè)置過程的更多信息,您可以查看我們之前關(guān)于該主題的文章。使用ESP32進(jìn)行太陽能監(jiān)測(cè)的Arduino代碼完整的ESP32太陽能監(jiān)控代碼可以在本頁底部找到。代碼首先定義您的SSID、密碼和一些其他常量參數(shù),如下所示。
//為上行鏈路定義WiFiSSID和PWD。#defineWLAN_SSID"xxxx"#defineWLAN_PASS"xxxxxxxxxx"
在此字段中,需要設(shè)置SSID和密碼。
//25攝氏度時(shí)的電阻#defineTHERMISTORNOMINAL10000//溫度。對(duì)于標(biāo)稱電阻(幾乎總是25C)#defineTEMPERATURENOMINAL25//熱敏電阻的beta系數(shù)(通常為3000-4000)#defineBCOEFFICIENT3950//“其他”電阻的值#defineSERIESRESISTOR10000
熱敏電阻標(biāo)稱歐姆是在標(biāo)稱溫度下提供的。根據(jù)熱敏電阻的數(shù)據(jù)表設(shè)置此值。放熱敏電阻的Beta系數(shù)和串聯(lián)電阻值。
//為電流和電壓定義模擬constintcurr_an_pin=35;常量intvolt_an_pin=34;常量intntc_temp_an_pin=33;
PIN在這里定義。
#definethingSpeakAddress"xxxxxxxx"#definechannelIDxxxxx#definewriteFeedAPIKey"xxxxxxx"#definereadFeedAPIKey"xxxxxxx"#definereadFieldAPIKey"xxxxxxxx"#definereadStatusAPIKey"xxxxxxx"
放入thingSpeakAddress、channelID、WriteFeedAPIKey。其余的東西不是必需的,但如果需要從Web接收數(shù)據(jù),它們?nèi)匀挥杏谩?/p>
voidsetup(){//將您的設(shè)置代碼放在這里,運(yùn)行一次://將串口設(shè)置為115200Serial.begin(115200);//初始化串行延遲(1000);WiFi.mode(WIFI_STA);ThingSpeak.begin(客戶端);//初始化ThingSpeak//todo:創(chuàng)建一個(gè)任務(wù)來讀取引腳以獲取電流和電壓并計(jì)算太陽能電池板的瓦特和溫度xTaskCreate(wifi_task,/*任務(wù)函數(shù)。*/"wifi_task",/*名稱為的字符串task.*/1024*2,/*堆棧大小(以字節(jié)為單位)。*/NULL,/*作為任務(wù)輸入傳遞的參數(shù)*/5,/*任務(wù)的優(yōu)先級(jí)。*/空);/*任務(wù)句柄。*/Serial.print("數(shù)據(jù)讀取。");}
在上面的代碼中,初始化了ThingSpeak服務(wù)器并創(chuàng)建了一個(gè)任務(wù),該任務(wù)將獲取與太陽能電池板相關(guān)的數(shù)據(jù)。在主回路中,太陽能電流和電壓通過模擬引腳進(jìn)行檢測(cè),并進(jìn)行平均。
浮動(dòng)太陽能curr_adc_val=0;浮動(dòng)太陽能伏特adc_val=0;for(i=0;i<NUMSAMPLES;i++){curr_samples[i]=analogRead(curr_an_pin);volt_samples[i]=模擬讀?。╲olt_an_pin);temp_samples[i]=模擬讀取(ntc_temp_an_pin);延遲(10);}//平均所有樣本floatcurr_avg=0;浮動(dòng)volt_avg=0;浮動(dòng)temp_avg=0;for(i=0;i<NUMSAMPLES;i++){curr_avg+=curr_samples[i];volt_avg+=volt_samples[i];temp_avg+=temp_samples[i];}curr_avg/=NUM??SAMPLES;volt_avg/=NUM??SAMPLES;temp_avg/=NUM??SAMPLES;//Serial.print("ADC值=");//Serial.println(ADC_VALUE);//將adc值轉(zhuǎn)換為電壓以獲得實(shí)際電流和電壓。floatsolar_curr=(curr_avg*3.3)/(4095);浮動(dòng)太陽能伏特=(伏特平均*3.3)/(4095);//通過使用分壓器,我們降低了實(shí)際電壓。//因此,我們將6乘以平均電壓,得到太陽能電池板的實(shí)際電壓。太陽能電壓*=6;
太陽能電壓通過乘以6得到,因?yàn)槲覀儎?chuàng)建了將輸入電壓除以6倍的分壓器。使用對(duì)數(shù)形式從熱敏電阻產(chǎn)生溫度。
//將該值轉(zhuǎn)換為電阻temp_avg=4095/temp_avg-1;temp_avg=SERIESRESISTOR/temp_avg;//Serial.print("熱敏電阻");//Serial.println(temp_avg);浮動(dòng)斯坦哈特;steinhart=temp_avg/THERMISTORNOMINAL;//(R/Ro)steinhart=log(steinhart);//ln(R/Ro)steinhart/=BCOEFFICIENT;//1/B*ln(R/Ro)steinhart+=1.0/(TEMPERATURENOMINAL+273.15);//+(1/To)steinhart=1.0/steinhart;//反轉(zhuǎn)steinhart-=273.15;//將絕對(duì)溫度轉(zhuǎn)換為C
每15秒讀取一次數(shù)據(jù)。
延遲(1000);計(jì)數(shù)++;Serial.print(".");如果(計(jì)數(shù)>=15){計(jì)數(shù)=0;Serial.println("===========================================================================");Serial.print("太陽能電壓=");Serial.println(solar_volt);Serial.print("太陽能電流=");Serial.println(solar_curr);浮動(dòng)太陽能瓦特=太陽能伏特*太陽能電流;Serial.print("太陽能瓦特=");Serial.println(solar_watt);Serial.print("太陽溫度=");Serial.println(steinhart);Serial.println("===========================================================================");
使用函數(shù)Thing.Speak.setField()傳輸各個(gè)字段的數(shù)據(jù);連接WiFi時(shí)。
if(WiFi.status()==WL_CONNECTED){ThingSpeak.setField(1,solar_volt);ThingSpeak.setField(2,solar_curr);ThingSpeak.setField(3,solar_watt);ThingSpeak.setField(4,steinhart);//寫入ThingSpeak通道intx=ThingSpeak.writeFields(channelID,writeFeedAPIKey);if(x==200){Serial.println("頻道更新成功。");}else{Serial.println("更新頻道有問題。HTTP錯(cuò)誤碼"+String(x));}}其他{Serial.println("\r\n############################################################");Serial.println("更新數(shù)據(jù)到thingSpeak服務(wù)器失敗。");Serial.println("WiFi未連接...");Serial.println("###########################################################\r\n");}Serial.print("數(shù)據(jù)讀取。");}}
在以下代碼片段中創(chuàng)建的Wi-Fi任務(wù)-
voidwifi_task(void*parameter){while(1){if(WiFi.status()!=WL_CONNECTED){Serial.print("正在嘗試連接到SSID:");Serial.println(WLAN_SSID);而(WiFi.status()!=WL_CONNECTED){WiFi.begin(WLAN_SSID,WLAN_PASS);//連接到WPA/WPA2網(wǎng)絡(luò)。如果使用開放或WEP網(wǎng)絡(luò),請(qǐng)更改此行Serial.print(".");延遲(5000);}Serial.println("\n已連接。");序列號(hào).println();Serial.println("WiFi連接");Serial.println("IP地址:");Serial.println(WiFi.localIP());}vTaskDelay(1000/portTICK_PERIOD_MS);}vTaskDelete(NULL);}
測(cè)試和監(jiān)控?cái)?shù)據(jù)將太陽能電池板與電路連接并放置在陽光下進(jìn)行測(cè)試,如下圖所示。下面的視頻演示了完整的工作。我們的電路能夠從面板讀取輸出電壓、電流和功率,并在thingspeak頻道上實(shí)時(shí)更新,如下所示。如我們所見,上圖中顯示了15分鐘的數(shù)據(jù)。由于這是一個(gè)戶外操作項(xiàng)目,因此需要使用適當(dāng)?shù)腜CB以及一個(gè)封閉的盒子。外殼的制造方式需要使電路在雨中保持防水。#include
#include"ThingSpeak.h"
#include
#include
#include
//為上行鏈路定義WiFiSSID和PWD。#defineWLAN_SSID"xxxx"
#defineWLAN_PASS"xxxxxxxxxx"
#defineNUMSAMPLES5
intcurr_samples[NUMSAMPLES];
intvolt_samples[NUMSAMPLES];
inttemp_samples[NUMSAMPLES];
WiFiClient客戶端;//25攝氏度時(shí)的電阻#defineTHERMISTORNOMINAL10000
//溫度。#defineSERIESRESISTOR10000
//為電流和電壓定義模擬constintcurr_an_pin=35;
常量intvolt_an_pin=34;
常量intntc_temp_an_pin=33;
整數(shù)計(jì)數(shù)=0;//thingSpeakDetails
#definethingSpeakAddress"xxxxxxxx"
#definechannelIDxxxxx
#definewriteFeedAPIKey"xxxxxxx"
#definereadFeedAPIKey"xxxxxxx"
#definereadFieldAPIKey"xxxxxxxx"
#definereadStatusAPIKey"xxxxxxx"
voidsetup(){
//把你的設(shè)置代碼放在這里,運(yùn)行一次:
//將串口設(shè)置為115200
Serial.begin(115200);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(客戶端);//初始化ThingSpeak
//todo:創(chuàng)建一個(gè)任務(wù)來讀取引腳以獲取電流和電壓并計(jì)算太陽能電池板的瓦特和溫度
xTaskCreate(
wifi_task,/*任務(wù)函數(shù)。*/
"wifi_task",/*名稱為的字符串task.*/
1024*2,/*以字節(jié)為單位的堆棧大小。*/
NULL,/*作為任務(wù)輸入傳遞的參數(shù)*/
5,/*任務(wù)的優(yōu)先級(jí)。*/
NULL);/*任務(wù)句柄。*/
Serial.print("數(shù)據(jù)讀取。");
}無效循環(huán)(){
//把你的主要代碼放在這里,重復(fù)運(yùn)行:
inti=0;
浮動(dòng)太陽能curr_adc_val=0;
浮動(dòng)太陽能伏特adc_val=0;
for(i=0;i<NUMSAMPLES;i++){
curr_samples[i]=analogRead(curr_an_pin);
volt_samples[i]=模擬讀取(volt_an_pin);
temp_samples[i]=模擬讀取(ntc_temp_an_pin);
延遲(10);
}
//平均所有樣本
floatcurr_avg=0;
浮動(dòng)volt_avg=0;
浮動(dòng)temp_avg=0;
for(i=0;i<NUMSAMPLES;i++){
curr_avg+=curr_samples[i];
volt_avg+=volt_samples[i];
temp_avg+=temp_samples[i];
}
curr_avg/=NUM??SAMPLES;
volt_avg/=NUM??SAMPLES;
temp_avg/=NUM??SAMPLES;
//Serial.print("ADC值=");
//Serial.println(ADC_VALUE);
//將adc值轉(zhuǎn)換為電壓以獲得實(shí)際電流和電壓。
floatsolar_curr=(curr_avg*3.3)/(4095);
浮動(dòng)太陽能伏特=(伏特平均*3.3)/(4095);
//通過使用分壓器,我們降低了實(shí)際電壓。
//因此,我們將6乘以平均電壓,得到太陽能電池板的實(shí)際電壓。
太陽能電壓*=6;
//將該值轉(zhuǎn)換為電阻
temp_avg=4095/temp_avg-1;
temp_avg=SERIESRESISTOR/temp_avg;
//Serial.print("熱敏電阻");
//Serial.println(temp_avg);
浮動(dòng)斯坦哈特;
steinhart=temp_avg/THERMISTORNOMINAL;//(R/Ro)
steinhart=log(steinhart);//ln(R/Ro)
steinhart/=BCOEFFICIENT;//1/B*ln(R/Ro)
steinhart+=1.0/(TEMPERATURENOMINAL+273.15);//+(1/To)
steinhart=1.0/steinhart;//反轉(zhuǎn)
steinhart-=273.15;//將絕對(duì)溫度轉(zhuǎn)換為C
延遲(1000);
計(jì)數(shù)++;
Serial.print(".");
如果(計(jì)數(shù)>=15){
計(jì)數(shù)=0;
Serial.println("===========================================================================");
Serial.print("太陽能電壓=");
Serial.println(solar_volt);
Serial.print("太陽能電流=");
Serial.println(solar_curr);
浮動(dòng)太陽能瓦特=太陽能伏特*太陽能電流;
Serial.print("太陽能瓦特=");
Serial.println(solar_watt);
Serial.print("太陽溫度=");
Serial.println(steinhart);
Serial.println("===========================================================================");
if(WiFi.status()==WL_CONNECTED){
ThingSpeak.setField(1,solar_volt);
物語。
ThingSpeak.setField(3,solar_watt);
ThingSpeak.setField(4,steinhart);
//寫入ThingSpeak通道
intx=Thing
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度高端白酒品牌獨(dú)家代理銷售合同3篇
- 酒吧飲料冷藏柜租賃合同模板
- 軟件開發(fā)股權(quán)合作協(xié)議
- 建筑住宅分包合同
- 2025版孔麗與張明離婚后財(cái)產(chǎn)分割及共同債務(wù)承擔(dān)協(xié)議書3篇
- 棒球場(chǎng)遮陽棚安裝合同
- 物流公司合作合同
- 醫(yī)療設(shè)備維修服務(wù)合同
- 投資者關(guān)系與市場(chǎng)信任
- 通信工程二級(jí)建造師合同模板
- 汽車底盤維修實(shí)訓(xùn)考核表(共24頁)
- 煉鐵廠3#燒結(jié)主抽風(fēng)機(jī)拆除安全專項(xiàng)方案
- 四年級(jí)上冊(cè)英語期末復(fù)習(xí)課件綜合復(fù)習(xí)及檢測(cè)講義 牛津上海版一起
- 2020年污水處理廠設(shè)備操作維護(hù)必備
- 初中英語語法課堂教學(xué)設(shè)計(jì)有效性的探討
- LSS-250B 純水冷卻器說明書
- 《煤礦開采學(xué)》課程設(shè)計(jì)實(shí)例
- (完整版)todo,doingsth初中魔鬼訓(xùn)練帶答案
- 福建省青少年科技教育協(xié)會(huì)章程
- 防止返貧監(jiān)測(cè)工作開展情況總結(jié)范文
- 2015年度設(shè)備預(yù)防性維護(hù)計(jì)劃表
評(píng)論
0/150
提交評(píng)論