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

目标
- 知道消耗了多少热水(按体积计算),知道流量是可能的,但我没有使用它。
- 知道出水的温度。
- 了解冷水的消耗(用第二台涡轮机)
- 整体是完全自主的,可以通过wifi搜索。
- 控制整体成本
- 在不拆卸的情况下替换有源元件的可能性
|
编辑2025年1月: 此页面已通过将D1 mini替换为最新版本D1 Mini V4进行了重大更新。 我用ESP Home取代了ESP Easy(为了更容易与家庭助理集成)。 新页面: 我灌输了水的消耗。 |
必要的设备和费用
- A 个 霍尔效应涡轮机 在3/4集成温度传感器(包括第10.90个端口)
- 如果是冷水,有 没有温度计的版本
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的规则(规则)



