控制用水量(<15€)

有几种方法来检查其用水量,在这里我选择在我的热水箱(热水器)出口处放置一个霍尔效应涡轮机,这台涡轮机配备了温度传感器,我也在冷水网络上放了一台涡轮机(可选)。

目标

  • 知道消耗了多少热水(按体积计算),知道流量是可能的,但我没有使用它。
  • 知道出水的温度。
  • 了解冷水的消耗(用第二台涡轮机)
  • 整体是完全自主的,可以通过wifi搜索。
  • 控制整体成本
  • 在不拆卸的情况下替换有源元件的可能性

编辑2025年1月: 此页面已通过将D1 mini替换为最新版本D1 Mini V4进行了重大更新。 我用ESP Home取代了ESP Easy(为了更容易与家庭助理集成)。

新页面: 我灌输了水的消耗。

必要的设备和费用

D1 Mini配备了几个入口,您可以使用多个涡轮机,每个区域具有不同的消耗量,或热水和冷水(我选择)。

  • A 个 D1 迷你 ESP8266(介于1至3欧元之间)

  • 10k欧姆(R1)
  • 10k欧姆(Optional)
  • 连接器能够断开有源元素与无源元件(选项,1€)2P+3P

涡轮线和温度传感器的修改

为了分离D1mini和探头,我宁愿不把它们焊接在一起。

我的第一台涡轮机 : 所以我使用简单的连接器(我手上只有4P),这给出了:

  • 温度传感器配备了两根黑线,所以没有困难,没有意义,我在白线上焊接了一根黑线,另一根黑色线在黄线上。
  • 流量传感器配备了3根线,我保留了颜色。

在第二台涡轮机上, 我选择了带有连接器的模型

所以我买了一些 相应的连接器, 使它更容易连接。

D1 Mini 的推送

这里是布线

在这个方案中,我选择用绿色纱线代替黄色纱线,因为黄色是看不见的。 为了避免3.3V和5V之间的混淆,我用橙色表示,另一个用红色表示。 这需要适应上一段中解释的(可选)连接器。

理解的一些要素

温度传感器 热敏电阻是热敏电阻,即它作为温度的函数而改变值。 所以我在电阻为10K的分隔桥上测试它(这个值对应于25°C时最接近温度探头的值),这个模拟信息在其模拟输入A0上输入D1Mini。

流量传感器 至于它提供数字信息以便连接数字输入,我选择了D5(第二个是D7),其他输入在我的测试中存在问题。 它仅由3.3v供电,因为数字输入上的5V会烧烤电路。 我添加了一个上拉阻力,它不一定有用,Wemos经常有一个集成阻力,但考虑到阻力的价格,我毫不犹豫。 它位于数据终端和+3.3v之间。 在第二台涡轮机上,我没有进行任何阻力来测试差异,最终没有。

ESP D1 Mini 的配置

有几种方法来利用Wemos和兼容产品,我选择使用ESP Easy,我已经在Sonoffs中使用了很多。 请注意,此部分可以适应任何ESP。 我服用D1 Mini的目标是独立,所以我想避免使用覆盆子或Arduino,这对其他东西也很有用。

D1 mini的电源,我把它刺在附近计算机设备的USB上,没有附近的USB电源,您可以使用电话充电器或任何允许您拥有5v的系统。

为了简单起见,D1 mini的配置从本教程中分离出来,有必要有专门的文章,因此有必要:

设置 ESP Easy

除了在ESP esasy中配置的通常设置(在上面的链接中指定),放大本教程的特定元素很有趣:

设备 标签

  • 温暖 温暖 对应于热水网络上的涡轮机(在气球的出口处)

它连接到D5数字输入(GPIO14)

我选择将刷新间隔设置为2s,但它不是强制性的,它只是当你打开水时看到安装的仪表。

探针给出三个数字值,我选择删除小数位。 总值将除以390,下面我解释如何找到这个除法的分母。

 

  • 温度 温度 对应于热水的温度。

附注03/04/2022 在A Seb821 的 仁慈 委员, 我将热敏电阻连接到3.3V而不是5V。 

它连接到模拟输入A0

我选择只使用整数值,这限制了与 Jeedom 的链接和不必要的信息存储。

 

  • 冷 冷 对应于冷水网一般入口处的涡轮机(可选)

它连接到D7数字输入(GPIO13)

探针给出三个数字值,我选择删除小数位。 总值将除以408,下面我解释如何找到这个除法的分母。

硬件标签

这似乎不是强制性的,但我已经习惯于指定我打算用D1Mini引脚做什么,所以我将使用的两个数字输入配置如下:

由于I2C未被使用,我禁用了所有内容:

工具 / 高级 标签

它完全没有用,但它更干净,我放了一个NTP服务器,以便D1准时(192.168.1.1是我的Syno路由器)

禁用串行端口也是一个好的做法。

探针校准(涡轮机)

探测器具有必要的校准,涡轮机每分钟响应许多革命,我们希望升水。

没有奇迹的配方,每个涡轮机都有自己的物理限制,在我们的水平上,『桶填充』测试将使校准探针成为可能。

以下是如何做到这一点:

  • 不要在TotalChaude的Formula列中放任何东西。

  • 提高 TotalChaude 的价值: (例如TC1=1000)
  • 跳跃并填充5升水(例如跳跃=5)
  • 提高 TotalChaude 的新价值: (例如TC2=2950)

指数应为I=(TC2-TC1)/Saut或(2950-1000)/5)= 390

要添加的公式将是 %值 值%/390

ESP Easy插件中的配置

因此,D1 Mini是ESP Easy插件的设备。

ESP Easy设备数据作为info命令在插件中到达:

利用 Jeedom 中的数据

这一段非常重要。 这是必要的,因为测量的总量(冷水conso +热水conso)不保存在D1Mini中。 在断电的情况下,电表从零开始 !!!

为此,我使用2个场景+1个虚拟场景。

+

计算情景 总热水

我只描述热水场景,冷水场景在逻辑上是一样的。

这是价值的变化。 TotalChaude 的 这触发了场景的启动:

以下是整个场景,下面我将详细介绍:

要获得全文版本:

场景名称: 热水 总计算
家长主题事项: 冷 热 水
场景模式: 挑衅 》
活动 - 活动: #[冷热水][D1Mini][TotalChaude]#

SI SI #[冷热水][D1Mini][TotalChaude]# 变量(Total Hot Water Previous)
然后
(variable)变量的分配: 总可变热水(Total Hot Water)+#[冷热水][D1Mini][TotalChaude]# 变量(Total Hot Water Previous)
中 农

SI SI #[冷热水][D1Mini][TotalChaude]# <变量(Total Hot Water Previous)
然后
(variable)变量的分配: 总可变热水(Total Hot Water)+ #[冷热水][D1Mini][TotalChaude]#
中 农

行动 行动
(variable)变量的分配: 之前的热水总量 #[冷热水][D1Mini][TotalChaude]#

已停用:

行动 行动
(variable)变量的分配: 之前的热水总量为0
(variable)变量的分配: 热水总量0

在解释该场景之前,请指定灰色部分仅激活一次,以初始化两个变量(Total Hot Water Previous和Total Hot Water)为零。

  • 变量 总热水 上一 记住热水表的最后一个值

第一次测试 验证热水表的新值高于从仪表收到的先前值(这是通常的操作)

在这种情况下,总热水变量的值为: 总热水(Total Hot Water)+#[冷热水][D1Mini][TotalChaude]# 变量(Total Hot Water Previous)

示例:

  • #[冷热水][D1Mini][TotalChaude]# = 809
  • variable(Total Hot Water Previous)= 808
  • 可变性(Total Hot Water)= 3750

热水总量=3750+809-808=3751,热水计新值为3751

第二个测试检查从热水计收到的新值是否小于记录的最后一个值,这意味着D1米在此期间已经返回到零。

在这种情况下,总热水变量的值为: 总热水(Total Hot Water)+ #[冷热水][D1Mini][TotalChaude]#

示例:

  • #[冷热水][D1Mini][TotalChaude]# = 3
  • variable(Total Hot Water Previous)= 808
  • 可变性(Total Hot Water)= 3751

热水总量=3751+3=3754,热水计新值为3754

最后一个块记录热水器的最后一个值(#[冷热水][D1Mini][TotalChaude]#在变量总热水之前。 这个值很重要,它被测试以找出前两个块中的哪一个用于计算总热水的值。

虚拟 冷 热水

没有什么很复杂的,我们恢复变量(总热水)和变量(总冷水)

图 图 图

由于记录了冷水和热水的价值,您也可以通过在其设计上显示来享受它。

以下是图表的例子,每个人都可以做他们喜欢的事情。

  • 一天的消费

  • 月度消费

由于这张图是最有趣的,我详细介绍了它:

您必须选择"列"模式并选择"每日摘要"。 把两个梯子中的一个看得见。

变化和改进

  • 03/04/2022: 热敏电阻应连接到3.3V以保护Analogue输入,修改后的图表,谢谢Seb821。
  • 要研究避免刷新到2的解决方案,可以使用Esp Easy的规则(规则)

发表 回复