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

这是一个用于 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 分钟默认值。

同步整流降压转换器MAX15026在300kHz开关频率下的
精密配电监控多回路电表在数据中心的应用
戴尔科技最新发布AMD EPYC处理器的VxRail E系列
基于NVIDIA Tesla V100 GPU等硬件打造隐私计算加速方案
图片文字识别:揭开数字世界的神秘面纱
构建一个用于3D打印干燥箱的除湿器
华为首款矩形智能手表开启预售
中国电信天翼云与印象笔记达成合作 创新场景化笔记解决方案
笔记本新手使用的16个为什么?
西门子PLC的常见故障及解决办法
如何使用HDMI连接方式大屏高清玩游戏
我们在选购线束测试仪时,一般要注意哪些事项
基于Microchip dsPIC®数字信号控制器的脉搏血氧仪设计
京微雅格CME-M5工业触摸屏设计获2012年全国优秀解决方案奖
酷炫的手机来电感应桌子,Magic Table
天马荣获和而泰颁发 “最具影响力奖”
罗斯蒙特8705TSA025C1M0NQ法兰式电磁流量计
疫情当前 人工智能在从前线到后勤的各个领域都大放光彩
相序保护器工作原理
OPPO发布3+N+X计划