這是一個用于 3D 打印干燥箱的除濕器,無需干燥劑即可保持燈絲干燥。
概述
構建此項目后,你就可以給你的 3D 打印機干燥箱配備一個功能齊全的除濕機,以保持您的燈絲干燥并隨時以備使用了。除濕機使用 Peltier 設備工作,該設備將熱量從設備的一側傳遞到另一側,從而產生冷熱側。設備的冷側會產生冷凝水,從而去除干燥箱內空氣中的水分。Peltier 夾在兩個散熱器之間,風扇在其中吹過。風扇為 Peltier 的熱側提供冷卻,同時還吹走冷散熱器翅片上積聚的冷凝水。
除濕機由兩個 Particle Photon 控制。一個 Photon 控制 Peltier 設備,而另一個讀取干燥箱內的濕度和溫度。兩個 Photon 相互通信以確定 Peltier 是否應該打開或關閉以及功率級別是否應該設置為一或二(低或高)。當濕度水平達到大約 30% 時,高功率模式啟動。在這一點上,只有通過低于冰點才能從空氣中去除更多的水分。可以使用預定義的變量在代碼頂部設置所需的目標濕度和其他參數。
構建
首先,將原來的筒形插頭從電源上斷開,并焊接在新的大電流筒形插頭上。
使用導熱膏和夾具支架組裝兩個散熱器和 Peltier 模塊。使用大型散熱器隨附的緊固件連接夾具支架。如圖所示,確保將大型散熱器的散熱片定位在夾具的長方向上。否則散熱器將無法正確裝入外殼。
注意:散熱器隨附的彈簧將不用于此項目。
參考電路原理圖來組裝電子設備。如果需要,連接器可用于電路的低電流部分。
注意:在將這兩個組件連接到電路的其余部分之前,將搖臂開關和大電流筒形插孔插入電子外殼盒。還要確保將 12V 電壓傳輸到燈絲盒中的光子的電線足夠長,以便通過出口空氣管進入燈絲盒。
將 Peltier 組件放入其外殼內,并用四個 M3x16 螺釘固定。
注意:只擰緊螺絲,直到它們緊貼為止。
使用適合您選擇的風扇的緊固件將 90 毫米風扇固定到頂部管道連接器上。
注意:調整風扇方向,使空氣通過頂部管道連接器的小端吸入。
將頂部管道連接器和電子外殼連接到 Peltier 組件外殼,同時引導電線穿過外殼的切口。將四個 M3x12 螺釘用于頂部管道連接器,四個 M3x6 螺釘用于電子外殼(警告:一旦感覺到任何阻力,請停止擰緊電子外殼的螺釘,否則您會剝去螺紋。這很容易做到,因為螺釘與塑料的接合只有 3 毫米。)
注意:對于某些電線尺寸,可能需要擴大切口。
使用四個 M3x10 螺釘將側管連接器連接到 Peltier 組件外殼。(警告:只有在第一次感覺到阻力后才稍微擰緊螺絲,否則你會剝掉螺紋。這里只有 6 毫米的嚙合。)
使用 2-1/2“ PVC 管或等效外徑的管子將空氣進出除濕機。可以使用 M3 螺釘和螺母將夾子擰緊到管子上。
將軟管倒鉤擰入靠近 Pelter 外殼組件底部的排水口。將聚氨酯軟管連接到所需位置。注意:可能需要強力膠或適當的密封劑來防止軟管倒鉤螺紋周圍的泄漏。如果軟管倒鉤不能成功地擰入印刷部件,則可以鼓勵聚乙烯軟管在沒有倒鉤的情況下裝入孔中,并用強力膠或其他方法固定到位。
peltier 控制代碼:
/* Program description*/
// User Configuration
const float Power_Level_1 = 90; //Low power level in percent supplied to the Peltier module that will not cause the dehumidifier to ice up
const float Power_Level_2 = 100; //Supplies maximum power to the Peltier module but may cause the dehumidifier to ice up
const float Fan_Speed_1 = 40; //Fan speed in percent for power level 1 above
const float Fan_Speed_2 = 60; //Fan speed in percent for power level 2 avove
const char Peltier_MOSFET_Pin = D0; //Pin that will control the Peltier MOSFET (Must be digital PWM)
const char Fan_MOSFET_Pin = D2; //Pin that will control the fan MOSFET (Must be digital PWM if anything other than 100 is used for the fan speeds)
const int Fan_PWM_Frequency = 20; //Frequency of the PWM signal that will be sent to the Fan
const int Peltier_PWM_Frequency = 500; //Frequency of the PWM signal that will be sent to the Peltier module
// Program Variables
bool request_Peltier_on = false;
float Peltier_power_level = (Power_Level_1/100)*255;
int Peltier_current_state = 0;
float Peltier_current_power_level = Peltier_power_level;
float fan_speed = (Fan_Speed_1/100)*255;
unsigned long last_millis = 0;
int update_interval = 60000;
// Recieved Data Handlers
void on_off_request_handler(String event, String data) {
request_Peltier_on = data.toInt();
Particle.publish("Gunner_P/MEGR_3171/Dehumidifier_Filament_Box/Peltier_state", String(request_Peltier_on), 10);
}
void Peltier_power_handler(String event, String data) {
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);
}
}
// Dehumidifier Manager
void dehumidifier_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);
}
}
// Setup
void setup() {
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);
}
// Loop
void loop() {
if (millis() - last_millis >= update_interval); {
dehumidifier_manager();
last_millis = millis();
}
}
ThingSpeak 記錄干燥箱的實時濕度和溫度以及除濕機的電源狀態。可隨時隨地查看除濕機狀態,確保系統正常運行。注意:上面顯示的圖表包含每 30 秒報告一次的數據,而不是代碼中設置的 5 分鐘默認值。
-
除濕機
+關注
關注
0文章
24瀏覽量
9206 -
3D打印
+關注
關注
26文章
3552瀏覽量
109242 -
干燥箱
+關注
關注
0文章
42瀏覽量
4592
發布評論請先 登錄
相關推薦
評論