構建一個用于3D打印干燥箱的除濕器
這是一個用于3D打印干燥箱的除濕器,無需干燥劑即可保持燈絲干燥。
概述
構建此項目后,你就可以給你的3D打印機干燥箱配備一個功能齊全的除濕機,以保持您的燈絲干燥并隨時以備使用了。除濕機使用Peltier設備工作,該設備將熱量從設備的一側傳遞到另一側,從而產生冷熱側。設備的冷側會產生冷凝水,從而去除干燥箱內空氣中的水分。Peltier夾在兩個散熱器之間,風扇在其中吹過。風扇為Peltier的熱側提供冷卻,同時還吹走冷散熱器翅片上積聚的冷凝水。
除濕機由兩個ParticlePhoton控制。一個Photon控制Peltier設備,而另一個讀取干燥箱內的濕度和溫度。兩個Photon相互通信以確定Peltier是否應該打開或關閉以及功率級別是否應該設置為一或二(低或高)。當濕度水平達到大約30%時,高功率模式啟動。在這一點上,只有通過低于冰點才能從空氣中去除更多的水分??梢允褂妙A定義的變量在代碼頂部設置所需的目標濕度和其他參數(shù)。
構建
首先,將原來的筒形插頭從電源上斷開,并焊接在新的大電流筒形插頭上。
使用導熱膏和夾具支架組裝兩個散熱器和Peltier模塊。使用大型散熱器隨附的緊固件連接夾具支架。如圖所示,確保將大型散熱器的散熱片定位在夾具的長方向上。否則散熱器將無法正確裝入外殼。
注意:散熱器隨附的彈簧將不用于此項目。
參考電路原理圖來組裝電子設備。如果需要,連接器可用于電路的低電流部分。
注意:在將這兩個組件連接到電路的其余部分之前,將搖臂開關和大電流筒形插孔插入電子外殼盒。還要確保將12V電壓傳輸?shù)綗艚z盒中的光子的電線足夠長,以便通過出口空氣管進入燈絲盒。
將Peltier組件放入其外殼內,并用四個M3x16螺釘固定。
注意:只擰緊螺絲,直到它們緊貼為止。
使用適合您選擇的風扇的緊固件將90毫米風扇固定到頂部管道連接器上。
注意:調整風扇方向,使空氣通過頂部管道連接器的小端吸入。
將頂部管道連接器和電子外殼連接到Peltier組件外殼,同時引導電線穿過外殼的切口。將四個M3x12螺釘用于頂部管道連接器,四個M3x6螺釘用于電子外殼(警告:一旦感覺到任何阻力,請停止擰緊電子外殼的螺釘,否則您會剝去螺紋。這很容易做到,因為螺釘與塑料的接合只有3毫米。)
注意:對于某些電線尺寸,可能需要擴大切口。
使用四個M3x10螺釘將側管連接器連接到Peltier組件外殼。(警告:只有在第一次感覺到阻力后才稍微擰緊螺絲,否則你會剝掉螺紋。這里只有6毫米的嚙合。)
使用2-1/2“PVC管或等效外徑的管子將空氣進出除濕機??梢允褂肕3螺釘和螺母將夾子擰緊到管子上。
將軟管倒鉤擰入靠近Pelter外殼組件底部的排水口。將聚氨酯軟管連接到所需位置。注意:可能需要強力膠或適當?shù)拿芊鈩﹣矸乐管浌艿广^螺紋周圍的泄漏。如果軟管倒鉤不能成功地擰入印刷部件,則可以鼓勵聚乙烯軟管在沒有倒鉤的情況下裝入孔中,并用強力膠或其他方法固定到位。
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記錄干燥箱的實時濕度和溫度以及除濕機的電源狀態(tài)??呻S時隨地查看除濕機狀態(tài),確保系統(tǒng)正常運行。注意:上面顯示的圖表包含每30秒報告一次的數(shù)據(jù),而不是代碼中設置的5分鐘默認值。