干洗澡水不热厨房水热工作热不热


家在顶楼想着利用太阳能,就咹装了太阳能热水器但毕竟遇上刮风下雨,靠天吃饭不靠谱太阳能热水器虽然也有电热功能,但水用完了加热等待时间太长所以也咹装了天然气热水器。
大致的管路示意图如下:
但这样使用时就稍显麻烦因为燃气热水器这边直接承受自来水水压,压力较大如果两邊的阀门同时打开,水就会从太阳能热水器的热水管逆向流动给太阳能热水器反向上水,直至热水器水箱装满溢出也不会停止因此,兩边的阀门不能同时开启曾经尝试在太阳能这边安装止逆阀,但效果不佳止逆阀无法完全密封,只是稍微延缓溢出的时间而已
我家嘚燃气热水器还有个特点,因为装在露台是室外机型,待机15分钟就会自动关闭此时打开水,热水器不会自动点火必须按动控制器上嘚开关打开热水器,才会响应用水请求点火而且更麻烦的是,每次开机后之前设定的水温又会自动回到40°,而洗澡水温通常要设定到60°,浴室里的水温水压感觉才最合适,意味着每次开机都要重新设定水温。
燃气热水器在露台而太阳能热水器的控制器又在洗手间,和露囼隔着一个大客厅
综上可见,每次用热水之前这个过程之麻烦:
mandID进行判断处理吧。
再就是串口通信因为Device 3和树莓派通信会用到,可以借用MT层的函数MT_UartRegisterTaskID(task_id)注册以后,收到串口数据会产生CMD_SERIAL_MSG事件就可以对串口数据进行处理了。MT层要求的串口数据格式为:FE + 数据长度(不含命令字節、校验位等)+ CMD0 + CMD1 + 数据 + XOR校验这样很好,我的调试信息和串口数据共用一个串口也不会有什么问题了
至此,应用层基本框架差不多可以动起来了可以开始着手对具体的设备和数据进行操作了。这也是一个路漫漫其修远的过程

先把这一步要做的任务理一遍,找出轻重缓急
首先来看看我们家有个性的燃气热水器,别人家的燃气热水器是24小时开水即热我们家的是15分钟就睡过去了还健忘。。
控制器那四个角是被我拆开卸螺钉的地方翘起来了,回头还得粘上。
针对燃气热水器,需要能够监测其是否开启用户是否正在使用热水;还要能够开启燃气热水器,并将水温设定至最高温度60°C
看起来感觉应该不难,控制器右边两个LED分别指示开启状态和出热水状态用GPIO去检测就恏了;开关和温度设定看是高电平还是低电平触发,单片机输出相应电平应该就行了
自动增压泵自己带了个流量开关,就是标箭头那个实现用户开水就自动开启,正好利用它来监测用户是否在使用太阳能的热水麻烦的是,这个开关是直接控制220V的这个电压对单片机的3.3V來说,好像稍微有点高。
旁边的阀门后面会换成电动阀门,由Device 1根据Coordinator发来的命令控制开关阀门是四线控制的,这个用两个继电器就可鉯轻松搞定
最后来看看太阳能。。控制器热水器在楼顶就不拍照片了,想看自己上网搜都长的差不多。
这里主要是采集太阳能的沝位水温发送给Coordinator,作为自动控制的依据
看起来好像很easy,但这是这个系统中最最最麻烦的环节也是从一开始最没把握的环节,所以就選择从这里开始攻关吧这里搞定,其他都是毛毛雨了
二话不说,先拆为敬不然没法分析。
网上大致搜了一下我这种太阳能热水器┅般是用四线传感器,其中两线是测水位的电阻两线是热敏电阻,利用电阻变化来测定水位水温
而测定电阻常用的办法是利用RC电路充放电时间随R变化,通过记录充放电时间来间接计算R值
这个办法显然比较麻烦,我怎么知道什么温度对应什么样的电阻值这个阻值又对應什么样的充放电时间?
看看控制器都已经把水位水温显示出来了我能不能直接拿到这个值呢。。
太阳能热水器控制器的程序不是我寫的显然不可能直接把这个值给我;既然它能驱动液晶屏显示出对应的信息,能不能抓液晶屏上的信号来获得水位水温呢这是我想的苐一条路。
拆开一看是那种定制化的液晶屏,左图上一大排针都是它的引脚看着就头大,用示波器看了一下波形乱的一塌糊涂,而苴电平似乎还不稳定除了高低电平,好像还有中间电平只好上网查查,原来这类液晶驱动显示信息较多为了减少驱动信号(这还叫尐?)采用动态驱动,为了防止液晶出现动态驱动中对比度降低的“交叉效应”一般都会采用一种所谓的“平均电压法”,这就是我茬示波器上看到有非高低电平的中间电平的原因是确有其事,并非我眼花
这样的话普通的GPIO就没法抓这样的液晶信号了,看来对动态驱動的液晶屏此路不通,只能另辟蹊径了
想想,归根结底是电阻控制器在测电阻的时候会有扫描电压加上去,那么电阻两端就会产生壓差如果我用CC2530的ADC去采集这个电压,假设ADC的精度足够高是不是就可以根据这个电压算出电阻呢?试试吧
于是看了下传感器的接线,在丅图左边三个画红框的地方引出三组线到CC2530的P0.0-P0.2口,并将P0.0接到P2.0利用P2.0在有扫描电平的时候触发ADC转换序列,并通过DMA采集数据
为了找规律,在鈈同的水位和水温下面抓了不知道几千条数据看起来如下图
但完全看不出我希望的那种电阻两端的电压差。大量数据放一起对比电平仩看不出明显差异,倒是注意到波形的宽窄呈现一定的变化规律
同时,这个波形和我从直觉上对电路的理解觉得应该产生的波形有很夶差异,百思不得其解最后只好拿来纸笔,把相关电路画下来并一个个确认相关元件的类型和参数。
左边那3个蓝色圆圆的器件我一矗以为是电容,但根据上面的字怎么也找不到相关的资料最后翻墙出去,终于在万能的谷歌上找到了这几个器件的准确型号和照片原來它们居然是:压敏电阻!真是大跌眼镜啊,难怪总觉得电容在电路里产生不了这样的波形。真是做什么事都不能想当然。
最后画出嘚传感器部分电路如下:
根据采集到的波形结合电路图分析,图中写出了我推测的在不同波形下电路所处的状态——看来太阳能控制器确实是在利用RC充放电回路测定电阻。
既然无法采集到希望的电压信息看来只能采取这种最基础、也是最麻烦的方式了:利用RC充放电时間测定电阻。
从图上看虽然能看到有的信号电平有逐渐变化的过程,但信号还比较乱考虑从传感器端采集信号改为从控制器IC端采集信號,于是把引线改到了第一张拆机图右边3个红圈处也就是电路图中标P0、P1、P2的地方。这样抓到的信号如下:
下面的sheet名代表了不同的水位和沝温“-”前的4代表满水位,0是空水位后面的60、61、62是水温。
这个图看起来还是很乱但如果我们只看P0的数据,如下:
这个图看起来就相當规整了
通过不同条件下测量数据的对比,波形的宽度确实和要采集的信号正相关
这样的话,不用采集3组信号只用采集P0点的信号就夠了,而且也不用ADC利用Timer记录波形宽度就行了。
然后又是大量的抓数据,然后看波形宽窄比例的变化最后,得到水位变化的曲线如下:
水位曲线只有4个等级比较简单,这个就可以直接用了
温度曲线就比较麻烦,到底是指数曲线、对数曲线还是幂指曲线
采样了足够哆的数据后,在Excel中对时间系数及其倒数进行分析很是惊喜,看来P0/P1和温度呈线性关系采用了Excel的计算出的26.455*x-31.974作为温度计算公式,上机后与原控制器测温误差在1°C以内效果相当理想。
最难的一块骨头终于啃下来接下来该轮到别的了。
先来看看太阳能用水检测吧这个需要检測220V通断的,变压器肯定犯不着太大材小用了;阻容分压?好像隔离不太好。上网找了一下,有人建议用光耦隔离这个不错,于是艹草画了个图桥式整流加光耦:
一开始本来还计划用Protel来做电路设计,但真临了一想就这么几个器件,随手画画就好想出错都难,实茬犯不着再开一个工具。
于是网上淘了两个PC817,这边就算齐活了
接下来是燃气控制这边。
按键控制测了一下是低电平有效,这个好說搞个9014拉低就好了。
开关和用水监测却给我找了点小小的麻烦本来以为LED亮起来,测测正极有没有电压就好了结果拿示波器一打,根夲不是这么一回事:
不论灯亮不亮正极都是一个5V的方波;负极随灯开关有不同波形的变化;如果测LED正负极之间的电压,则开启时有1.8V的方波关闭时反而有最低-0.4V的方波,如下图右边所示
简单分析了一下,正极应该是控制器上4个LED共享的PWM驱动信号所以不论任何一个LED亮灭,这個方波始终存在;单个LED是低电平驱动高电平截至,所以负极正好能观察到示波器上的波形
原理分析清楚了,那问题就容易解决了并個PNP管,跟着LED报告状态就行了翻箱倒柜一番,找到几个残留的9012够了。电路如下所示DET点接CC2530中断脚,有中断则表示LED开启无中断则表示LED关閉。
外围各种信号、状态都已采集到那接下来就简单了,编程焊接电路,组装实施

大致控制策略无非就是:
1. 检测太阳能热水器的水溫和水位;
2. a) 如果太阳能的热水合用,且用户此时没有使用热水则:
2. a) i) 打开太阳能的热水出水阀;
2. a) ii)关闭燃气热水器的进水阀;
2. b) 如果太阳能这邊水温低于60°,且用户没有使用热水,则:
2. b) i) 打开燃气热水器的开关;
2. b) iv) 打开燃气热水器进水阀。
2. c) 如果太阳能这边水位为最低那么不管用户昰否正在使用太阳能的热水,强制切换为燃气;
2. d) 如果太阳能上水时用户尝试使用热水,强制切换为燃气
3. e) 如果应该使用燃气热水器时,燃气热水器因为待机15分钟自动关闭则按动电源键重新开启并设置温度为60°C。
当没有客人的时候有时哪怕太阳能20、30°的水温,也觉得可以用来洗洗手,这时这个自动策略就不适用了,因此在Coordinator又加了两个按钮,用于手动切换太阳能/燃气以及让系统在自动和手动工作模式之間切换。
考虑到Coordinator和燃气热水器装在露台有淋雨的危险,因此外壳最好减少留孔普通的按键就不适合,不好密封最好是触摸按钮。淘寶上溜了一圈淘了几个合适的触摸模块回来。
这玩意儿离手的距离要合适太远感应不到,离上壳太近又会直接感应到上壳始终保持常開状态怎样可以灵活调整这个距离呢?想来想去排针加插座解决这个问题:
既能相对稳定,又能灵活调整触摸按钮的高度
还有就是偠解决模块的烧录问题。
卖家提供的是测试板上的排座要在模块上焊排针插上去烧
测试模块这样没问题,可问题是有的地方安装空间有限焊上排针太碍事;飞线烧吧太麻烦,每个模块都要飞将近10根线
琢磨着怎么样自己做个烧录器呢,结合手边有的材料和零件关键是偠能和模块的引脚紧密接触。最终利用两组排针一个简易烧录器出炉了:
烧录时把模块的邮票孔夹在两组排针中间,就可以顺利实现烧錄、调试虽然偶尔会有点接触不良,但比一个个飞线好多了
考虑到模块总会有bug,而没有外接Flash256KB内存根本就不够ZStack实现OTA升级,因此在线调試时肯定会频繁拆下来所以模块都是用杜邦线引出接到其他电路部分,方便拆卸
这是从燃气热水器控制器引出的线。
下面是Coordinator内部的全貌杜邦线太多,看起来有点乱糟糟没办法,不是工业化设计出来的成品:
本来计划从燃气那边把5V的电压引过来这样就省了一组电源,奈何继电器要的电流太大那边的功率不够,一开继电器就全系统复位只好外接了一组USB 5V充电电源,通过左上角的电源模块转为3.3V
下图昰太阳能热水阀控制器的内部结构,看起来比较清爽外围主要就一组光耦和一对继电器:
然后是水管管路改造,要把电动阀门装上下媔是部分零件:
由于空间有限,电动阀门没法直接安装只能利用波纹管转接,本来一个直直的增压泵现在变成了九曲回肠,水泵也趁此机会换了个新的水压大了不少:
本来还给LED留了孔,后来发现特别是绿光LED实在太亮了,就干脆用纸全蒙上但晚上还是觉得很亮,可鉯考虑加大电阻或改用PWM控制占空比
因为中间有墙,Zigbee还是会有通信不良的情况发生如果持续无法收到Device 1或者2的信号,Coordinator右边两个LED会分别闪烁以提示用户。如果是在自动工作模式此时也会自动切换到燃气模式,以保证用水
至此,本系统核心部分工作已基本完工可以实现燃气/太阳能的全时工作和自动切换,也支持手动操控考虑到用水条件不是一个变换频率很高、实时性要求很强的场景,系统中大部分地方采取了5秒轮询的方式只有少数控制,例如手动切换燃气、太阳能等为实时中断处理
在电脑上通过串口终端,也已经可以通过Device 3向Coordinator发送指令、获取工作状态:
接下来只要用树莓派替代电脑开发一个UI界面,向Device 3收发串口指令就行了;或者更进一步就像开头说的那样,将树莓派接入Wifi后开发相应的服务器和手机端UI,实现远程操控完成智能家居的完整场景。
树莓派虽然之前没用过但其实质就是一台嵌入式Linux電脑而已,这上面的软件开发只是时间问题而已没有什么新的东西。
不过老实说之前要么就是在控制台或Linux内核驱动层折腾,要么就是茬Android上做App开发Linux上的带UI的App开发还真没搞过,用什么来做呢
调Zigbee时抓包工具是基于QT的,那干脆我也用QT吧正好有参考,还可以跨平台
QT还算简單,有Win32 GUI和Android等App开发的基础参考QT Creator中的教程,花两天时间个大致把功能和界面搭了出来:
然后就是怎么移到树莓派上去运行
电脑上交叉编译昰可以,但那个环境配置估计还是有点麻烦而且我以后用到的机会应该也不多吧。。
于是决定直接到树莓派上去搞
网上搜罗了一番,先安装基础包:
然后因为需要和Zigbee模块串口通信还需要安装串口模块:
QT version也要确保选上了,然后确保工程的编译路径存在发现QT Creator会在工程目录后面加一堆后缀,导致路径不存在然后无法生成而且不论是在Windows下还是Linux下都有这个问题,QT项目组该看看这个问题一开始搞得我莫名其妙,不知道工程哪儿出什么错了
环境准备好后,导入工程编译顺利完成。
本来计划是飞线直连树莓派的串口突然转念一想,直连串口是串口USB转串口也是串口,既然调试板有USB口直出插上就是了,何必飞线呢没有飞线的羁绊,以后想将这个Gateway模块挪作他用做点别嘚测试,还更方便
上机一试,哈哈要的就是这个DIY的效果。
习惯了做国际化的工程界面默认都是英文,抽空再用QT的方法翻译一下吧^_^
前攵提到的Zigbee和QT工程代码已提交至Github,有兴趣的话可以作为参考:
毕竟是第一次接触Zigbee难免有疏漏或理解不正确之处,欢迎指正
  • 新装修的房子恒温热水器,洗澡水不热厨房水热间和卫生间的台盆开热水时水流很大热度也够,但是缉长光短叱的癸痊含花洗澡时淋浴龙头和花洒水流小而且水温不夠求专家解惑!

  • 热水器的水卫生间热,洗澡水不热厨房水热不热

  • 洗澡水不热厨房水热热宝长期不用放掉里面的水吗

  • 浴室再开热水可以保持溫度,洗一会儿就变冷水了而当在洗澡水不热厨房水热开热水时燃气热水器洗澡的时候,浴室的热水也变冷了但是当洗澡水不热厨房沝热关热水时,开始有热水请问是怎么回事

  • 也就是说宿县小区里暖气的走向,还是从楼下往楼上走啊到底是顶楼暖和,还是一楼暖和啊是从楼上往楼下走

  • 还是一楼暖和啊宿县小区里暖气的走向,还是从楼下往楼上走啊到底是顶楼暖和?也就是说是从楼上往楼下走

  • 哋暖供热方式,是楼下热还是楼上热

  • 我家想在卫生间装即热电热水器现在矛盾要不要买个厨宝,邻居家都是买的燃气热水器放在洗澡水不热厨房水热,然后冬天卫生间和洗澡水不热厨房水热都有热水,就怕洗澡水不热厨房水热和卫生间龙头没有热水了

  • 大热说找物业检查管道阀门是否環了,造成循环不畅

  • 刚买的用了一次我就开热水结果是凉的带点温的,水是凉的温度计针应该指在第一格那吗到了第二天晚上我看到熱水器的温度计那根针指着第三格《热水》,也就是插一次电用完就没插电了怎么指在第三格那呢

我要回帖

更多关于 客厅的暖气热卧室的不热一点 的文章

 

随机推荐