全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 音视频/家电 >

构建一个用于3D打印干燥箱的除湿器

时间:2022-07-22 17:25

人气:

作者:admin

标签: 除湿机  3D打印  干燥箱 

导读:这是一个用于 3D 打印干燥箱的除湿器,无需干燥剂即可保持灯丝干燥。...

这是一个用于 3D 打印干燥箱的除湿器,无需干燥剂即可保持灯丝干燥。

概述

构建此项目后,你就可以给你的 3D 打印机干燥箱配备一个功能齐全的除湿机,以保持您的灯丝干燥并随时以备使用了。除湿机使用 Peltier 设备工作,该设备将热量从设备的一侧传递到另一侧,从而产生冷热侧。设备的冷侧会产生冷凝水,从而去除干燥箱内空气中的水分。Peltier 夹在两个散热器之间,风扇在其中吹过。风扇为 Peltier 的热侧提供冷却,同时还吹走冷散热器翅片上积聚的冷凝水。

除湿机由两个 Particle Photon 控制。一个 Photon 控制 Peltier 设备,而另一个读取干燥箱内的湿度和温度。两个 Photon 相互通信以确定 Peltier 是否应该打开或关闭以及功率级别是否应该设置为一或二(低或高)。当湿度水平达到大约 30% 时,高功率模式启动。在这一点上,只有通过低于冰点才能从空气中去除更多的水分。可以使用预定义的变量在代码顶部设置所需的目标湿度和其他参数。

构建

首先,将原来的筒形插头从电源上断开,并焊接在新的大电流筒形插头上。

使用导热膏和夹具支架组装两个散热器和 Peltier 模块。使用大型散热器随附的紧固件连接夹具支架。如图所示,确保将大型散热器的散热片定位在夹具的长方向上。否则散热器将无法正确装入外壳。

注意:散热器随附的弹簧将不用于此项目。

pYYBAGLabEiAaklYAAQmSzffSQI500.png

参考电路原理图来组装电子设备。如果需要,连接器可用于电路的低电流部分。

poYBAGLabE6AFeWjAACO8Z0ge4U963.png

注意:在将这两个组件连接到电路的其余部分之前,将摇臂开关和大电流筒形插孔插入电子外壳盒。还要确保将 12V 电压传输到灯丝盒中的光子的电线足够长,以便通过出口空气管进入灯丝盒。

poYBAGLabFSAPffqAAW2N1AGC5k210.png

pYYBAGLabFmAYwVzAAR80PmrzpE155.png

将 Peltier 组件放入其外壳内,并用四个 M3x16 螺钉固定。

注意:只拧紧螺丝,直到它们紧贴为止。

poYBAGLabF6AJDifAAN5q4H2hiY547.png

使用适合您选择的风扇的紧固件将 90 毫米风扇固定到顶部管道连接器上。

注意:调整风扇方向,使空气通过顶部管道连接器的小端吸入。

poYBAGLabGOADEMiAAMvRt9_OX0276.png

将顶部管道连接器和电子外壳连接到 Peltier 组件外壳,同时引导电线穿过外壳的切口。将四个 M3x12 螺钉用于顶部管道连接器,四个 M3x6 螺钉用于电子外壳(警告:一旦感觉到任何阻力,请停止拧紧电子外壳的螺钉,否则您会剥去螺纹。这很容易做到,因为螺钉与塑料的接合只有 3 毫米。)

注意:对于某些电线尺寸,可能需要扩大切口。

poYBAGLabGiAB8x4AAQlymMZQKU259.png

使用四个 M3x10 螺钉将侧管连接器连接到 Peltier 组件外壳。(警告:只有在第一次感觉到阻力后才稍微拧紧螺丝,否则你会剥掉螺纹。这里只有 6 毫米的啮合。)

使用 2-1/2“ PVC 管或等效外径的管子将空气进出除湿机。可以使用 M3 螺钉和螺母将夹子拧紧到管子上。

将软管倒钩拧入靠近 Pelter 外壳组件底部的排水口。将聚氨酯软管连接到所需位置。注意:可能需要强力胶或适当的密封剂来防止软管倒钩螺纹周围的泄漏。如果软管倒钩不能成功地拧入印刷部件,则可以鼓励聚乙烯软管在没有倒钩的情况下装入孔中,并用强力胶或其他方法固定到位。

poYBAGLabG-AbDbNAAMPd5cdgEY917.png

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();
}
}

poYBAGLabEKAPoJVAAD6w6INx-M422.png

ThingSpeak 记录干燥箱的实时湿度和温度以及除湿机的电源状态。可随时随地查看除湿机状态,确保系统正常运行。注意:上面显示的图表包含每 30 秒报告一次的数据,而不是代码中设置的 5 分钟默认值。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信