構(gòu)建一個(gè)用于3D打印干燥箱的除濕器
這是一個(gè)用于3D打印干燥箱的除濕器,無(wú)需干燥劑即可保持燈絲干燥。
概述
構(gòu)建此項(xiàng)目后,你就可以給你的3D打印機(jī)干燥箱配備一個(gè)功能齊全的除濕機(jī),以保持您的燈絲干燥并隨時(shí)以備使用了。除濕機(jī)使用Peltier設(shè)備工作,該設(shè)備將熱量從設(shè)備的一側(cè)傳遞到另一側(cè),從而產(chǎn)生冷熱側(cè)。設(shè)備的冷側(cè)會(huì)產(chǎn)生冷凝水,從而去除干燥箱內(nèi)空氣中的水分。Peltier夾在兩個(gè)散熱器之間,風(fēng)扇在其中吹過(guò)。風(fēng)扇為Peltier的熱側(cè)提供冷卻,同時(shí)還吹走冷散熱器翅片上積聚的冷凝水。
除濕機(jī)由兩個(gè)ParticlePhoton控制。一個(gè)Photon控制Peltier設(shè)備,而另一個(gè)讀取干燥箱內(nèi)的濕度和溫度。兩個(gè)Photon相互通信以確定Peltier是否應(yīng)該打開(kāi)或關(guān)閉以及功率級(jí)別是否應(yīng)該設(shè)置為一或二(低或高)。當(dāng)濕度水平達(dá)到大約30%時(shí),高功率模式啟動(dòng)。在這一點(diǎn)上,只有通過(guò)低于冰點(diǎn)才能從空氣中去除更多的水分。可以使用預(yù)定義的變量在代碼頂部設(shè)置所需的目標(biāo)濕度和其他參數(shù)。
構(gòu)建
首先,將原來(lái)的筒形插頭從電源上斷開(kāi),并焊接在新的大電流筒形插頭上。
使用導(dǎo)熱膏和夾具支架組裝兩個(gè)散熱器和Peltier模塊。使用大型散熱器隨附的緊固件連接夾具支架。如圖所示,確保將大型散熱器的散熱片定位在夾具的長(zhǎng)方向上。否則散熱器將無(wú)法正確裝入外殼。
注意:散熱器隨附的彈簧將不用于此項(xiàng)目。
參考電路原理圖來(lái)組裝電子設(shè)備。如果需要,連接器可用于電路的低電流部分。
注意:在將這兩個(gè)組件連接到電路的其余部分之前,將搖臂開(kāi)關(guān)和大電流筒形插孔插入電子外殼盒。還要確保將12V電壓傳輸?shù)綗艚z盒中的光子的電線足夠長(zhǎng),以便通過(guò)出口空氣管進(jìn)入燈絲盒。
將Peltier組件放入其外殼內(nèi),并用四個(gè)M3x16螺釘固定。
注意:只擰緊螺絲,直到它們緊貼為止。
使用適合您選擇的風(fēng)扇的緊固件將90毫米風(fēng)扇固定到頂部管道連接器上。
注意:調(diào)整風(fēng)扇方向,使空氣通過(guò)頂部管道連接器的小端吸入。
將頂部管道連接器和電子外殼連接到Peltier組件外殼,同時(shí)引導(dǎo)電線穿過(guò)外殼的切口。將四個(gè)M3x12螺釘用于頂部管道連接器,四個(gè)M3x6螺釘用于電子外殼(警告:一旦感覺(jué)到任何阻力,請(qǐng)停止擰緊電子外殼的螺釘,否則您會(huì)剝?nèi)ヂ菁y。這很容易做到,因?yàn)槁葆斉c塑料的接合只有3毫米。)
注意:對(duì)于某些電線尺寸,可能需要擴(kuò)大切口。
使用四個(gè)M3x10螺釘將側(cè)管連接器連接到Peltier組件外殼。(警告:只有在第一次感覺(jué)到阻力后才稍微擰緊螺絲,否則你會(huì)剝掉螺紋。這里只有6毫米的嚙合。)
使用2-1/2“PVC管或等效外徑的管子將空氣進(jìn)出除濕機(jī)??梢允褂肕3螺釘和螺母將夾子擰緊到管子上。
將軟管倒鉤擰入靠近Pelter外殼組件底部的排水口。將聚氨酯軟管連接到所需位置。注意:可能需要強(qiáng)力膠或適當(dāng)?shù)拿芊鈩﹣?lái)防止軟管倒鉤螺紋周圍的泄漏。如果軟管倒鉤不能成功地?cái)Q入印刷部件,則可以鼓勵(lì)聚乙烯軟管在沒(méi)有倒鉤的情況下裝入孔中,并用強(qiáng)力膠或其他方法固定到位。
peltier控制代碼:
/*Programdescription*///UserConfigurationconstfloatPower_Level_1=90;//LowpowerlevelinpercentsuppliedtothePeltiermodulethatwillnotcausethedehumidifiertoiceupconstfloatPower_Level_2=100;//SuppliesmaximumpowertothePeltiermodulebutmaycausethedehumidifiertoiceupconstfloatFan_Speed_1=40;//Fanspeedinpercentforpowerlevel1aboveconstfloatFan_Speed_2=60;//Fanspeedinpercentforpowerlevel2avoveconstcharPeltier_MOSFET_Pin=D0;//PinthatwillcontrolthePeltierMOSFET(MustbedigitalPWM)constcharFan_MOSFET_Pin=D2;//PinthatwillcontrolthefanMOSFET(MustbedigitalPWMifanythingotherthan100isusedforthefanspeeds)constintFan_PWM_Frequency=20;//FrequencyofthePWMsignalthatwillbesenttotheFanconstintPeltier_PWM_Frequency=500;//FrequencyofthePWMsignalthatwillbesenttothePeltiermodule
//ProgramVariablesboolrequest_Peltier_on=false;floatPeltier_power_level=(Power_Level_1/100)*255;intPeltier_current_state=0;floatPeltier_current_power_level=Peltier_power_level;floatfan_speed=(Fan_Speed_1/100)*255;unsignedlonglast_millis=0;intupdate_interval=;
//RecievedDataHandlersvoidon_off_request_handler(Stringevent,Stringdata){request_Peltier_on=data.toInt();Particle.publish("Gunner_P/MEGR_3171/Dehumidifier_Filament_Box/Peltier_state",String(request_Peltier_on),10);}
voidPeltier_power_handler(Stringevent,Stringdata){if(data.toInt()==1){Peltier_power_level=(Power_Level_1/100)*255;fan_speed=(Fan_Speed_1/100)*255;Particle.publish("Gunner_P/MEGR_3171/Dehumidifier_Filament_Box/Peltier_power",String(1),10);}if(data.toInt()==2){Peltier_power_level=(Power_Level_2/100)*255;fan_speed=(Fan_Speed_2/100)*255;Particle.publish("Gunner_P/MEGR_3171/Dehumidifier_Filament_Box/Peltier_power",String(2),10);}}
//DehumidifierManagervoiddehumidifier_manager(){if(request_Peltier_on&&Peltier_current_state==0){analogWrite(Peltier_MOSFET_Pin,Peltier_power_level,Peltier_PWM_Frequency);Peltier_current_power_level=Peltier_power_level;analogWrite(Fan_MOSFET_Pin,255,Fan_PWM_Frequency);delay(200);analogWrite(Fan_MOSFET_Pin,fan_speed,Fan_PWM_Frequency);Peltier_current_state=1;}if(!request_Peltier_on&&Peltier_current_state==1){analogWrite(Peltier_MOSFET_Pin,0);analogWrite(Fan_MOSFET_Pin,0);Peltier_current_state=0;}if(Peltier_current_state==1&&Peltier_current_power_level!=Peltier_power_level){analogWrite(Peltier_MOSFET_Pin,Peltier_power_level,Peltier_PWM_Frequency);Peltier_current_power_level=Peltier_power_level;analogWrite(Fan_MOSFET_Pin,255,Fan_PWM_Frequency);delay(200);analogWrite(Fan_MOSFET_Pin,fan_speed,Fan_PWM_Frequency);}}
//Setupvoidsetup(){pinMode(Peltier_MOSFET_Pin,OUTPUT);pinMode(Fan_MOSFET_Pin,OUTPUT);Particle.subscribe("Elijah_C_MEGR_3171_Dehumidifier_Filament_Box_Project",on_off_request_handler);Particle.subscribe("Elijah_C_MEGR_3171_Peltier_Power_Level_Dehumidifier_Box",Peltier_power_handler);Particle.publish("Gunner_P/MEGR_3171/Dehumidifier_Filament_Box/Peltier_state",String(request_Peltier_on),10);}
//Loopvoidloop(){if(millis()-last_millis>=update_interval);{dehumidifier_manager();last_millis=millis();}}
ThingSpeak記錄干燥箱的實(shí)時(shí)濕度和溫度以及除濕機(jī)的電源狀態(tài)??呻S時(shí)隨地查看除濕機(jī)狀態(tài),確保系統(tǒng)正常運(yùn)行。注意:上面顯示的圖表包含每30秒報(bào)告一次的數(shù)據(jù),而不是代碼中設(shè)置的5分鐘默認(rèn)值。