首页 > 其他 >特殊应用电路 > 基于树莓派实现的家庭智能散热器阀的设计方案

基于树莓派实现的家庭智能散热器阀的设计方案

来源:互联网发布者:红水杯 关键词: 嵌入式 树莓派 更新时间: 2024/08/23

    该项目使用廉价的热驱动阀(ebay 上 10 英镑左右)和基于 ESP8266 的独立电子设备来提供 WiFi 可控的散热器阀。然后可以使用“家庭助手”(在 Raspberry Pi 上)来控制阀门,如果需要,也可以控制锅炉。

    可以添加 DHT22 温度检测器,以便电子设备也可以将温度反馈给 Home Assistant。带有多个继电器的板可用于控制多个散热器。您可以使用 13A 插头 PSU(推荐)使阀门和电路板在 24V 上运行,或者在 240V 上运行的阀门和电路板。

    完成此项目需要一台 3D 打印机和一个不起眼的步进电机。这是一个不起眼的项目,但它很有效,而且在我的公寓里正在滴答作响,相当成功。

poYBAGJX5_2AZCknAAY4KwMb404573.png

    补给品

    阀门:ebay上有几种阀门,有的24V,大部分240V,我建议选择240VC常开的。

电子产品选择:

    带有 ESP01 板、24v 至 5v 降压转换器和平滑组件的 24V 系统

    单板 ESP12、24V 或 240V,如果您愿意,可以添加 DHT22 温湿度传感器。

    (1 更有趣,也许更有趣,而且更小。2 更方便。)

    变压器

    第 1 步:基于 ESP-01 的 24V 阀门控制器

    这比单板方法更容易焊接和理解,但它很有趣,而且物理上非常紧凑。

    此解决方案仅为 24V。零件是:

    24V 1A 13A 插头变压器

    ESP-01

    ESP-01 中继卡

    24V 至 5V 降压转换器

    100n 和 10n 聚酯电容器,10microFarad 电解电容器,最小的铁氧体磁珠,一小块电路板 - 如果您包括额外的平滑,请参见下文

    小盒子 - 我用的是 72x48x24mm

    24V 热驱动阀

    ESP8266 是一款令人惊叹的小型微控制器,配有 Wifi,只需几英镑。有时它对 PSU 上的噪音有点敏感。所有这些中国 PSU 和转换器都非常符合价格,而且可能很吵。因此,我在降压转换器和 5V ESP-01 继电器板之间添加了平滑处理。

    我使用的降压转换器具有可变输出电压,我需要用制表师的飞利浦螺丝刀在微型电位器中仔细设置它,并用万用表检查电压。

    您可以看到我已经过度小型化,并且 vero-board 部分小得难以管理。事实上,我什至不确定它是否需要 - ESP-01 可能只使用降压转换器并且没有平滑电容器或铁氧体磁珠就可以正常工作。

    看看我是如何在这里和那里焊接到电路板背面的——你需要一个精致、干净的烙铁头和一点技巧。

    添加 DHT22 传感器可能并不容易,我还没有尝试过。

    第 2 步:ESP-12f 继电器板 - 24V

    这是比上面的 ESP-01 方法更简单、更整洁的解决方案。ESP-12f 更胜一筹 - 4Mb 内存超过 1Mb,并且有更多 GPIO 可用。如果您希望电子箱具有温度/湿度传感器,可以轻松添加 DHT22,家庭助理可以使用它来控制打开和关闭散热器。盒子不必紧挨着阀门(您可以选择盒子和阀门之间的电线长度),这样温度传感器的位置就可以非常有用,远离散热器的扭曲效应。

    如果添加 DHT22,它有 4 个引脚,但只使用了 3 个(请参阅网络上的大量信息。)它需要一个上拉电阻,我使用了 6.8K,在“sense”和 Vcc 之间 - 看看我是如何焊接的将电线连接到传感器上(而不是在盒子内)。这提供了一个传感器,如果需要,可以从主板上断开,这更容易构建,如果你愿意,也可以拆卸。非常清楚您插入了哪个 I/O 引脚编号,以便您可以对其进行配置(请参阅。)

    这些板采用 12v 到 80v 之类的任何直流电压。我们为阀门使用 24V,所以它非常整洁:电路板和阀门的一个电源。它也非常安全:所有电源电压都在 13A 插头 PSU 内,在官方制造的部件中安全绝缘。

    第 3 步:ESP-12f 继电器板 - 240V

    如果你真的很细心并且非常确定你理解的话,你可以使用 240V 的阀门和电路板。

    事实上,据我所知,240V 阀门更容易获得(尽管找到 24V 应该没有问题。)

    与上一步中的电路板非常相似的电路板可以在其上安装一点 240V 开关模式电源,几乎不再需要了。我想我付了 8 英镑而不是 6 英镑。惊人的!

    然而 - 我真的不喜欢电源电压。你冒着震惊和火灾的风险——为什么要冒这个险?

    也就是说,这很容易。在我的身上,我有 DHT22 选项(请注意,我使用热塑料来保护 dht22 电线 - 我弄错了,这张照片是在重新熔化和改造之前拍摄的。)我会说,尽管有 240V在内部,添加 DHT22 是一个进一步不必要的风险,所以再说一次 - 我认为我们应该为这个项目坚持使用 24V,因为它便宜、整洁、简单和安全。

    这些板有点大。ebay上有一个10x6x2.5cm的盒子,很便宜。

    第 4 步:锅炉控制

    只有corgi注册工程师才能在锅炉上工作。我的威能有一个用于打开加热的开关的两线接口,时钟采用两根线并在“开启”时间时关闭它们之间的开关。我建议您像这样运行该项目 - 只需继续使用您的时钟,但在 Home Assistant 上设置您的 wifi 控制阀门以与时间一致。然而,控制器对锅炉的工作与将 24V 电源切换到热驱动阀一样。

    我的所有散热器都没有遥控器,所以锅炉总是有一些散热器要加热。我不是供暖工程师或管道工,但我相信如果所有散热器都关闭,锅炉的泵就会受到影响,我认为我说供暖工程师总是安装一个没有恒温阀的散热器是对的。无论如何,即使您在所有散热器上都有我的阀门设计,您仍然可以通过 Home Assistant 中的自动化配置确保至少有一个是打开的。

    第 5 步:安装散热器阀门

    这应该是拧下旧恒温阀并拧上电动阀的问题。这样做时,您可能需要非常用力地按压。

    有趣的是,阀门的行程似乎非常小,据我所知可能只有 5 或 6 毫米,但我尝试过的所有阀门似乎都运行良好。如图所示,我忘记了它的制造商,它的螺纹可能略少:它不会在我的一个散热器上运行,而其他散热器则可以。

    第 6 步:Arduino Sketch - 加载和配置

    我制作了一个通用草图,可以与继电器和温度/湿度传感器中的一个或两个一起使用。它使用 LittleFS 上传配置文件,该文件配置存在的硬件以及 GPIO 引脚是什么(它们在 ESP-01 和不同的板之间有所不同。)

    您甚至可以在虚拟温度或继电器类中进行编译,因为我将硬件细节移到了单独的类中。ESP-01 只有 1Mb,我们想要 LittleFS 和 Arduino “空中”上传,这样我们就不必拔下 ESP-01 或将 USB 串行连接到卡的 TX/RX(不止一次好歹。)

    附加的草图和包含的文件,以及一些配置文件。

    在 Arduino 上,您需要 ESP8266 板库(网上有很多信息。)

    您还需要 LittleFS、PubSubClient、ArduinoJson(参见草图顶部的#includes。)使用库管理器添加这些。

    我认为你默认得到所有其他人。

    请注意,我已经删除了我的姓名和密码:

    char mqtt_user[34] = “xx”;

    char mqtt_pwd[34] = “xxxxx”;

    你可以放你的,但你也可以将它们添加到配置文件中,就像你喜欢的那样。

    如果要配置温度或继电器:

    //#include “DummyTemp.h”

    #include “Temp.h”

    //#include “DummyRelay.h”

    #include “Relay.h”

    只需通过评论更改为使用虚拟版本即可。实际上,您可能不需要这个。我认为它可能对 ESP-01 有所帮助,以节省一点内存并保持 OTA 工作,但我认为编译的代码无论如何都足够小。

    请注意,配置文件是卡 ID - 您只有在第一次运行草图时才能看到它,因此您只能在运行一次后创建文件。然后您可以在 Arduino 的“工具”下使用 LittleFS 上传。

    ESP-01 和 ESP-12f 板的上传代码不同。确保在工具菜单上选择正确的内存和文件系统大小。对于 ESP-01,它是 1Mb,对于 ESP-12f,它是 4Mb(Arduino 可能会自动检测,不能保证。)选择您看到的最小大小的文件系统,让 OTA 工作的最大值(它只会在ESP-01 上工作) !)

    ESP-01 - 您拔下并插入 USB/ESP-01 串行适配器,然后插入 Arduino 环境的 PC 串行板。

    ESP-12f 卡 - 你需要一个普通的 USB 到串行适配器,查看照片,并使用 3 路带状连接器将 TX、RX 和 Gnd 连接到板上(参见其中一个板连接器的图片,但它们不同稍微。)请注意,您必须在电路板和插头之间反转 TX 和 RX,以便电路板的 TX 转到插头的 RX,反之亦然(否则,如果您明白我的意思,您将传输到发射器。)

    确保您了解两种情况下程序和运行模式之间的区别。ESP8266 重复使用 I/O 线进行上传,您必须将 IO0 接地才能设置此模式。ESP-01 USB 适配器有一个小开关,但对于 ESP-12,您需要使用电路板随附的小跳线来桥接 GND 和 IO0(参见照片 - 拍摄时未安装跳线。)

    这个项目使用了非常漂亮的 WiFiManager。第一次运行草图时,Wifi 进入接入点模式。使用笔记本电脑或智能手机连接到电路板 - 我认为它显示为“AutoConnectAP”但我忘记了。这应该是显而易见的。然后您可以选择您的wifi名称,输入密码并保存。然后该板连接到您的 wifi。

    在插入串行监视器的情况下第一次运行卡(见图。)很抱歉,我有一个未诊断的错误,因此当您运行上传的代码时,没有配置文件,它很快崩溃,*但是*您将在 Arduino(或腻子或其他)上的串行监视器中看到显示的卡名称。然后,您可以创建一个配置文件并将其上传到 Tools/LittleFS。我注意到一些 ESP-01 卡会导致 Arduino 在加载结束时显示错误,但它们仍然达到 100% 并加载。很烦,但我解决不了。配置文件必须位于名为 data 的子目录中!示例配置(附上几个)

    {

    “mqtt_server”:“ha.abe”,

    “mqtt_port”:1883,

    “mqtt_topic_suffix”:“-240v”,

    “dht_gpio”:4,

    “temp_correction”:-1.8,

    “湿度校正”:-4,

    “detector_type”: “dht22”、

    “led_gpio”:16、

    “relay_gpio”:[5]、

    “relay_active_state”:1、

    “led_active_state”:0

    }

    配置是 JSON。这些控制器使用 MQTT 与 Home Assistant 控制器进行通信(您还可以使用 mosquitto 工具 mosquitto_sub 和 mosquitto_pub 监控消息并发送自己的消息。)

    您很可能在 LAN 上使用 mDNS(又名“Bonjour”、avahi 等)。如果是这样,您的 mqtt 服务器将具有“本地”域。我认为草图可能不适用于 .local 域 - 但我不确定(可能需要添加 mDNA 代码 - 我只是不确定。)

    如果您设置检测器类型,则您正在配置温度/湿度检测器。使用 dht22。您可以使用 dht11,它们更便宜 - 但不要打扰。

    您可以有 0 个或多个中继,这就是 JSON 数组的原因。通常你只有一个用于继电器的 GPIO,但我有一个带有 2 个继电器的有用板,用于控制我的卧室和大厅外面的散热器。然后你有两个 GPIO(和 2 组 mqtt 东西,见下文。)你确实需要从卡文档中找出哪些 GPIO。有些继电器卡需要您在继电器引脚和 GPIO 引脚之间添加跳线(我的双继电器是我遇到的那个。)

    MQTT 在这里完全超出了范围,但如果被问到,我会添加详细信息和建议。

    一个关键概念是topic。消息是在“主题”上发送的。这些板具有温度(如果使用)和继电器状态的信息主题。当板子启动时,它会读取其卡 ID,后缀“-dh22”和/或“-relay”中的一个或两个以显示您拥有的硬件,然后为您配置的“mqtt_topic_suffix”添加后缀 - 您将其设置为识别阀门控制器在其他人中。

    卡运行后,通过 LittleFS 上传配置文件,您可以测试 mqtt。为您的平台安装 mosquitto 实用程序 - 我认为 Windows 也将拥有它;我使用Linux。这是我最新的中继卡的一些输出:

    mosquitto_sub -v -h ha.abe -u XX -P YYYY -t ‘#’ | ts | grep 0F74

    Feb 15 18:43:45 esp0F74D3-dht22-relay-240v-NO OFF

    Feb 15 18:45:04 esp0F74D3-dht22-relay-240v-NO OFF

    Feb 15 18:46:19 esp0F74D3-dht22-relay-240v-NO OFF

    Feb 15 18:46:35 esp0F74D3-dht22-relay-240v-NO-cmd ON

    Feb 15 18:46:37 esp0F74D3-dht22-relay-240v-NO ON

    Feb 15 18:47:28 esp0F74D3-dht22-relay-240v-NO-cmd STATUS

    Feb 15 18:47:29 esp0F74D3-dht22-relay-240v-NO ON

    Feb 15 18:47:36 esp0F74D3-dht22-relay-240v-NO-cmd RESET

    Feb 15 18:47:44 esp0F74D3-dht22-relay-240v-NO OFF

    请注意我如何在命令通道上发送命令以打开继电器,并在信息主题上以新状态回答,然后我使用 STATUS 命令进行询问,如果您想要卡,我还添加了 RESET 命令重启。如果您安装了 dht22 并等待 10 分钟,您将获得温度:

    Feb 15 19:15:05 esp0F74D3-dht22-relay-240v-NO-temp {“humidity”:“52.9”,“medianh”:“53.0”,“temperature”:“18.0”,“mediant”:“18.0”,“hum-correct”:0,“temp-correct”:0}

    Feb 15 19:27:38 esp0F74D3-dht22-relay-240v-NO-temp {“humidity”:“52.3”,“medianh”:“52.3”,“temperature”:“18.2”,“mediant”:“18.2”,“hum-

    请注意,您可以根据已知温度计监控温度和湿度,并将更正设置到配置文件中。dht22s 有时可能需要 2 或 3 度!dht22也很吵。我希望商业的也是如此(比如 Tuya zigbee 温度计,它物超所值),但它们会有平滑代码。我通过使用 Hampel 库来剔除异常值来做到这一点,这样我的温度计几乎和 Tuyas 一样光滑。如果您使用串行监视器运行该板,您将看到调试代码显示何时丢弃异常值。您可以调整异常值参数、样本数量和采样频率,但我希望您能找到我努力的目标。

    当卡配置并工作时,您可以分离串口,或拔下 esp01 并插入继电器(或温度)模块。您应该会看到它在运行时在 mqtt 上发送信息!

    虚拟温度.h下载

    虚拟继电器.h下载

    esp0EF487.txt下载

    esp7FD57A.txt下载

    esp29A28C.txt下载

    esp2548B5.txt下载

    温度.h下载

    继电器.h下载

    中继-temp-hampel-littlefs-oo.ino

    第 7 步:Pi + MQTT 上的家庭助理

    家庭助理的安装、设置和配置大多超出了范围。有很多教程文档。默认安装有一个专门用于家庭助理的树莓派,这是官方“支持”的。您可以将它安装在现有的 pi 上。

    您还需要 MQTT 代理插件。您可以单独安装 MQTT,但尽管我在安装时遇到了一些麻烦,但我认为可能是代理最好的。

    配置传感器和开关也有点棘手,但请参阅我的屏幕截图显示两者。我的传感器没有进入区域。对于在 yaml 中配置 mqtt 传感器的家庭助理来说,这似乎并不简单,因为它不是很麻烦,我没有尝试过。这只是意味着您的自动化不能说“打开楼下的散热器”,而是必须有一个开关列表。

    你会看到我做了两个自动化:在我起床之前打开散热器,如果/当它变热时关闭它们。你会看到我让我的公寓保持凉爽。将我的锅炉置于混乱的流动和回流状态的主体,因此散热器阀门处于回流状态,这使得它们在切换时非常嘈杂 - 这就是为什么在操作锅炉之前您会看到阀门完全打开或完全关闭(但请记住- 这是一个控制锅炉的实验 - 你应该使用你的时钟。)我希望大家不要遇到这个麻烦。

提问/讨论

这里还没有内容,您有什么问题吗?

我要提问/讨论

推荐帖子 最新更新时间:2024-11-13 08:50

nRF24L01外围电路问题
ant1和ant2为什么要这样接啊,ant1外围电路阻抗等于多少?如何计算啊?C6起什么作用,大小如何决定呢。 那位大哥帮忙下 nRF24L01外围电路问题
 guojosen单片机
高频头【解剖】
在数字卫星电视中高频头在接收端是非常重要的一环,通过接收空气中由卫星转发的电视信号,并进行放大,转换成第一中频信号并传输到接收机进行信号处理,最终得到电视图像信号输入电视。 那么高频头究竟长什么样呢?家里有个废弃的的高频头,刚好可以拿来拆解看看里面的
 michael_llh以拆会友
FSMC驱动的显示屏使用DMA传输问题
最近在做的项目中有一个480x320的彩屏,刷屏比较慢,需要提速,于是乎想到了DMA。 屏与STM32使用16Bit总线连接,使用FSMC传输方式。 对于写数据LCD也就是写(0x60000000 | 0x08080000)空间 在STM32F2的DMA2支持Memory t
 liutogostm32/stm8
【复旦微车规MCU FM33FT0A 系列】+ 环境搭建
复旦微车规MCU FM33FT0A介绍: 配置FM33FT0A 的开发环境,官网上没有找到相关的开发资料,可以在复旦微的论坛下找到汽车MUC相关的资料下载 http://www.fmdevelopers.com.cn/forum.php?mod=viewth
 kjsm汽车电子
怎样提高电脑速度,我的电脑平时点右键的时候,弹出对话框很慢,这是怎么回事啊,怎样让它提高速度阿??
怎样提高电脑速度,我的电脑平时点右键的时候,弹出对话框很慢,这是怎么回事啊,怎样让它提高速度阿?? 怎样提高电脑速度,我的电脑平时点右键的时候,弹出对话框很慢,这是怎么回事啊,怎样让它提高速度阿?? 重装是对付病毒和冗余软件的好办法 可以装系统管理工具 有用的东西备份后重装系统
 navyin嵌入式系统
这个接收中断程序能接收到数据吗?
我编程的意图是想把AT指令发给GSM模块,然后GSM模块回复 OK 或 ERROR ,我想在发完指令之后把GSM回复的存放在寄存器中,大家看看这个接收中断能不能接收到回复数据? 这个是发送AT的程序: 这个是接收中断程序: 这个到底能不能接收啊?接收中断程序是接收到数据自动调用进
 面纱如雾嵌入式系统

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

EEWORLD 电路图 站点相关: 下载中心 Datasheet 参考设计

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved