亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

将您的中央供暖系统连接到 Arduino

组件和用品

Arduino UNO
× 1
Arduino OpenTherm shield
× 1
24V 电源
× 1

关于这个项目

您有没有想过您的锅炉何时以及为什么会运行并为您的家供暖?您想使用 Arduino 自动化您的加热系统吗? OpenTherm 防护罩专为您设计。它将允许您使用 Arduino 监控和控制 OpenTherm 锅炉。

背景

去年我想将我的燃气加热锅炉与壁炉调节器结合起来。我的 BAXI 锅炉和恒温器非常聪明,所以我想自然而然地扩展锅炉来控制壁炉。我厌倦了所有那些允许我这样做的昂贵的官方 BAXI 扩展。

所以我为自己构建了一个 OpenTherm 网关,它允许我拦截恒温器和锅炉之间的通信,并设置一个算法来启动锅炉或使用壁炉中的热量 - [有关调节器的更多信息]。

由于有很多人想要类似的东西,我决定创建一个模块 - Arduino shield - 可以让任何人非常轻松地控制他们的房屋供暖。

盾有什么用?

  • 创建您自己的基于 Arduino 的 锅炉 使用现有的 OpenTherm 恒温器。极不可能有人会这样做,但有可能。
  • 使用扩展板构建您自己的基于 Arduino 的 恒温器 全面接管您的锅炉和家庭供暖。非常适合家庭自动化。此应用仅需要外部 5V 电源。
  • 在现有锅炉和恒温器之间的线路中放置一个 OpenTherm 防护罩并创建一个监视器 观察锅炉何时以及如何为您的家供暖。您甚至可以拦截通信,例如无线控制加热。
  • OpenTherm 允许有一个中间人(网关 ) 与锅炉和恒温器通信的设备。这就是我如何使用屏蔽来创建 OpenTherm 调节器。

可用数据和命令

  • 室温
  • 室温设定值
  • 热水温度
  • 回水温度
  • 生活热水温度*
  • 生活热水压力*
  • 生活热水流量*
  • 室外温度*
  • 锅炉状态(运行/未运行/错误)
  • 调制级别
  • 排气温度*
  • 统计锅炉运行了多长时间

* 请注意,只有当您的锅炉配备必要的配件时,这些配件才可用

建造盾牌

电子电路基于使用 PIC 微控制器的 OpenTherm 网关项目。我已经将它用于 Arduino 并创建了一个很好的 Arduino UNO 兼容布局。

您可以使用上面的原理图和 Gerber 文件自行创建屏蔽。我正在通过 PCBWay 制造我的电路板 - PCB 原型的简单方法。您可以让他们在一周内创建和运送这些漂亮的蓝色美女。蓝色阻焊膜与基本绿色的价格相同!我也喜欢他们的客户服务,没有什么问题。或者,您可以订购预先包装好的 DIY 套件。

使用盾牌制作恒温器

第一个示例将向您展示如何使用屏蔽来创建您自己的自定义恒温器。你需要什么:

  • OpenTherm 锅炉
  • Arduino UNO、WeMos D1 或任何 Arduino UNO 兼容板。对电路板的唯一要求是支持引脚 2 和 3 上的引脚中断。
  • 5V 电源。在此设置中不需要 24V 电源,因为只有在与恒温器通信时才需要。

如上图所示,将您的锅炉与 Arduino OpenTherm 扩展板连接起来,将扩展板连接到 Arduino 上,您就可以开始编程了。 Arduino OpenTherm IO 库包含以下示例,向您展示如何与锅炉进行通信。

void loop() { if (OPENTHERM::isIdle()) { message.type =OT_MSGTYPE_READ_DATA; message.id =OT_MSGID_SLAVE_CONFIG;消息值HB =0;消息值LB =0; Serial.print("->"); OPENTHERM::printToSerial(消息); Serial.println(); OPENTHERM::send(BOILER_OUT, 消息); // 向锅炉发送消息 } else if (OPENTHERM::isSent()) { OPENTHERM::listen(BOILER_IN, 800); // 等待锅炉响应 } else if (OPENTHERM::getMessage(message)) { // 锅炉响应 OPENTHERM::stop(); Serial.print("<-"); OPENTHERM::printToSerial(消息); Serial.println(); Serial.println();延迟(100); // 下一次通信前的最小延迟 } else if (OPENTHERM::isError()) { OPENTHERM::stop(); Serial.println("<- 超时"); Serial.println(); }} 

首先,用OPENTHERM::isIdle检查是否没有挂起的命令 .如果没有,您可以发送下一个。在本例中,您请求从站配置标志。如果命令成功发送,您必须使用 OPENTHERM::listen 开始监听来自锅炉的回复 称呼。方法 OPENTHERM::getMessage 一旦有来自从属设备的未决回复,如果出现问题或超时,将返回 true 方法 OPENTHERM::isError 返回真。该库包含 OpenTherm 消息结构,其中包含来自协议的解码数据,因此您根本不需要关心格式。签出源代码它是有据可查的。所有类型的消息都列在常量中,或者您可以查看 OpenTherm 文档。

struct OpenthermData { 字节类型;字节 ID;字节值HB;字节值LB;浮动 f88(); void f88(浮点值); uint16_t u16(); void u16(uint16_t 值); int16_t s16(); void s16(int16_t 值);} 

使用屏蔽来创建监视器、网关或调节器

第二个示例将向您展示如何将中间人设备连接到 OpenTherm 总线以监控锅炉和恒温器或拦截它们的通信。你需要什么:

  • OpenTherm 恒温器
  • 24V 500mA 电源

如上图所示,将屏蔽层连接到锅炉和恒温器之间的总线上。可以看到它中断了这两个设备之间的总线。现在,除非您将网关软件上传到您的 Arduino,否则您的通信将中断,该软件会将来自恒温器的命令和回复转发给锅炉,反之亦然。 Arduino OpenTherm IO 库中有一个很好的例子。

void loop() { if (mode ==MODE_LISTEN_MASTER) { if (OPENTHERM::isSent() || OPENTHERM::isIdle() || OPENTHERM::isError()) { OPENTHERM::listen( THERMOSTAT_IN); } else if (OPENTHERM::getMessage(message)) { Serial.print("-> "); OPENTHERM::printToSerial(消息); Serial.println(); OPENTHERM::send(BOILER_OUT, 消息); // 将消息转发到锅炉模式 =MODE_LISTEN_SLAVE; } } else if (mode ==MODE_LISTEN_SLAVE) { if (OPENTHERM::isSent()) { OPENTHERM::listen(BOILER_IN, 800); // 回复需要在 800 毫秒内发回 } else if (OPENTHERM::getMessage(message)) { Serial.print("<- "); OPENTHERM::printToSerial(消息); Serial.println(); Serial.println(); OPENTHERM::send(THERMOSTAT_OUT, 消息); // 将消息发送回恒温器模式 =MODE_LISTEN_MASTER; } else if (OPENTHERM::isError()) { mode =MODE_LISTEN_MASTER; Serial.println("<- 超时"); Serial.println(); } }} 

网关只是开始侦听恒温器命令。如果检测到请求,它将对其进行解析并将其转发给锅炉。网关现在将开始监听锅炉回复。如果在 800 毫秒内收到回复,网关会将回复转发回恒温器。恒温器和锅炉永远不会知道它们之间有什么额外的东西。正如您所看到的,您有足够的空间来编写自己的代码来捕获消息并从中读取有用的信息(状态、温度、压力、统计信息……)。您甚至可以覆盖或丢弃您不喜欢的请求或回复。

如您所见,与您的智能供暖系统进行通信并使其更加智能非常容易。在下一篇文章中,我将向您展示该硬件在我的 OpenTherm 调节器中的更多实际用法。

代码

用于 Arduino 的 Opentherm IO 库
https://github.com/jpraus/arduino-opentherm

示意图


制造工艺

  1. 监控我的中央供暖锅炉
  2. 在家中构建无线传感器网络
  3. 将传感器连接到您的 Raspberry Pi 以在有毒气体出现时向您发出警告!
  4. 使用 Arduino 和 Raspberry Pi 构建您的 Internet 控制的视频流机器人
  5. 如何将 GrabCAD Print 与 Stratasys 3D 打印机连接
  6. 提高企业取暖油效率的技巧
  7. 对吊扇启用 Alexa Control
  8. Arduino Spybot
  9. FlickMote
  10. 为您的项目添加动画(选框)照明
  11. 使用 Arduino Cloud 随时随地了解您家的温度!
  12. 使用 Alexa 和 Arduino IoT Cloud 完全控制您的电视