专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

水塔水质监控器—实际安装使用

作者:七彩流星雨   来源:本站原创   点击数:  更新时间:2014年04月21日   【字体:
将本装置投入实际使用,由于水井下面是已经用水泥盖上了,没办法把探头伸到井下,所以只能关闭水井水质检测功能,只启用自动抽水功能。当然也可以在水管处插入探头,但是如果密封不好,漏气会导致抽水机的扬程变短甚至抽不到那么高的水位。


2013年3月30日下午
买来相关的材料。
有水管,弯头,软电线,硬电线等。

首先先看看家里的水塔:
 

水管接在水塔原先预留的透气孔上,浮球式水位传感器从此伸入水塔低水位和满水位位置,固定在一节水管上。然后把电线引出来,用水管罩着牵引到墙角的洞,进入屋内。用水管罩是防止阳光直射电线容易老化。
墙角的洞原先并没有预留足够宽的直径……只能穿软线进去试试看了,水管没办法再进去了 。



在给水管钻孔和割槽安装浮球的时候,手头上没有砂轮锯,想到一个土办法就是“用密集的点绘成线”
也能代替砂轮锯切割直线啦~~~虽然不是很好看。





这样就能固定在水管上了,然后把这只水管扭到水塔里面就行,水塔的排气口有内牙,我水管的一头套有外牙。



哎呀,真是一大堆东西堆在这里有得弄的,走线决定走墙角。抽水机的电源线用4mm^2的硬线做,买了一捆100米~~~,不信从5楼到天井不够长。水位控制线用软线做。
当初抽水机怎么就没接地线呢。。。哎不接也算了,也没什么人靠近它的,有一段上水管是铁的,如果水有电的时候,能够传电到墙壁里,也充当了一点地线作用吧。

由于天色已晚,工程量还是有点的,把材料买好后明天再做,因为明天可能下雨,出去不方便。今晚就顺便更改程序。



涉及到房子的大工程,房主当然也兴致勃勃地爬上楼顶观看啦。





看呵,邻居家家户户都装有水塔,都使用地下水。如果每人当初建挖水井的时候都装上这个东东,那我也能赚一点了。

2013年3月31日早晨
程序几乎重新编写了一遍,很多地方得到优化。
做这产品比做比赛作品收获更多。考虑更周全特别是日后维护,作品只是一时演示,不实际。现在这个监控器已经成为产品,各方面都得到优化如失控等意外情况发生时,能够及时自我解决或给用户提供另一种补救措施这两点已经做到。还有低功耗等这都是大赛作品一般考虑不到的。我宗旨是不懂技术的人也能维护! 
为了提升程序的稳定性,启动了单片机内的看门狗。
看门狗就是如果程序跑飞了,出现不可预料的情况时,即没有执行喂狗操作。就能够在65.5ms后马上自动复位单片机,不让整套装置失控 。
另外,利用单片机内的EEPROM,存储了一些具有记录性、值得回忆意义的文字和数据,数据内容终身不毁,即使断电仍保存,除非人为去擦除。
存储了装置第一次启动的时间,累计自动完成抽水的次数,本装置的来源以及经历。
下面是EEPROM存储的内容。初始化状态。值得注意的是,AVR单片机的数据存储模式是小端模式,即有效字节低位在地址低位。 

 

累计自动完成的抽水次数,这个我特别设计算法,数据类型定为unsigned long int 哈哈~~~范围够大的吧,还是unsigned的。但是EEPROM的总线宽度只有8位。这样就回归到最底层的设计啦,自己设计函数把数值存进EEPROM,读写函数如下:
unsigned long int time=0;

for (i=0;i<4;i++)//读数据
{
time<<=8;
while(EECR&(1<<EEWE));
EEAR=0x23-i;//内置EEPROM的0x20地址是记录自动完成抽水的次数
EECR|=1<<EERE;//进行读操作
time|=EEDR;
asm("WDR");//喂狗
}
time++;
for (i=0;i<4;i++)//写数据
{
while(EECR&(1<<EEWE));
EEAR=0x20+i;
EEDR=time;
EECR|=1<<EEMWE;//准备写操作
EECR|=1<<EEWE;//写操作
time>>=8;
asm("WDR");//喂狗
}

由于是产品了,所以要更为自动化。

把抽水设计成一个周期任务,如果在抽水过程中,家里突然停电,等到下次来电时能够自动继续抽水,直到抽满为止。
装置的电源开关去掉,一上电马上工作。
关于程序方面,更多可靠性的功能我还会继续增加和维护,直到我离开这个房子去其他地方的时候。
目的让维护更加简便呵呵。

为了防止装置硬件性故障,(软件上是没问题的了,有看门狗) 
在抽水机的控制电路上,设计了另一道保障,能在装置失控的状态下人为强制控制抽水机,即回到原始的手动抽水的办法 。

结合实际情况,控制器安装在5楼,抽水机在一楼,需要从一楼到五楼拉两条线,它们是控制抽水机的关键电线。虽然电线有绝缘层,但途径各个楼梯,为了更安全,我把这两条线设成零线,只有抽水机工作时才有电。单片机控制继电器闭合、断开这两条线,能够达到自动控制抽水的目的,同时就算绝缘层破裂也不要紧。
这样的话,在原来的电闸处,火线就必须时刻接通到抽水机,这就是我原先埋怨没有接地线的原因。
不过,抽水机和楼梯,仍是楼梯的安全较重要,抽水机在门角,少人去理。当然使用两个继电器控制或者在这里两条电线上套一水管是最安全不过的了。【2013年4月7日13:37:41对此斜体字内容进行更正:无论怎样接线,始终都会有一条火线经过楼梯,这在不用无线控制下是不可避免的】



右边的电闸是以前难道是爸爸装的?由于左边的电闸的螺丝生锈,我拆开右边的看看还能不能用,结果看到保险丝的地方,顿时笑了……左边用铜线接上,右边用一块铝片接上,乱七八糟的,有这样接的嘛,不过算了反正那个电闸已经不用了。


我只能接在线上了,电闸里的螺丝有一些已经不能扭开,在原来的线上剥开一道口子,捆绑上去。好难捆绑,原来的是多股线,我的是单股4mm2的粗铜线……

这样左边的电闸就成了第二道保障了,当装置失控时,不能自动恢复的时候,拔掉装置电源,这个电闸就和原来的电闸没什么区别了,打上抽水,拉下断电。装置正常运行的情况下,电闸是打下来的,不通电的。

2013年3月31日下午
终于把所有东西安装完了。在测试过程中,因为安装时候家人在旁边说话,说着说着我把高低水位的控制线接反了……结果抽水过程闹出笑话,抽到低水位就停了。
还有抽水机断电的时候,由于水塔的水多,水面的水波推动浮球,在临界点的时候有几率导致抽水机抽抽停停。这个问题必须解决。
2013年3月31日晚上
抽水机在临界点抽抽停停的问题已经解决,同时我关闭掉了许多LED灯,保留两盏灯,红灯亮表示未抽在水,绿灯亮表示正在抽水,任何一盏灯亮都表示装置正常运行。数码管的电源也断开,两片74HC573芯片也断电。尽最大可能节省功耗。由于万能表的200mA保险丝断了,只能用20A的量程,测得电流为0.2A。那么功率就大概1W左右。还是可以的。
 
使用水管套电线,防止老鼠咬。幸亏这个洞还足够大,当初真是有远见,凿得不错@赶海人生 




水塔安装完后的外表图

此装置我还将继续升级,往维护方面升级,能够更快帮助人们,即使是不懂技术的人,也能检测出哪里出问题


2013年4月6日22:41:30
至今,水塔水质监控器已经全天候运行了一周,整体表现良好。期间出现两次不寻常的情况,每个情况出现后,又都恢复正常,并不是一直错误地发展下去,均不不影响日常用水:
①投入使用后第三天的清晨,妈妈报告说抽水不到1分钟又停了
②今晚,外婆说刚才
自动抽水10分钟,并且启动前1个小时已经抽满过一次水,不可能用得那么快。

触发抽水的条件有且只有一个:低水位传感器的信号线被拉高电平。
可能的原因:
①有可能在布线过程中划伤信号线,每个传感器有一条+5V的线和一条信号线,划伤的话可能有几率+5V的线和信号线触碰,导致误判。
②水中的悬浮物或水流把低水位传感器的浮球暂时拉低,导致错误地触发信号。

改进方法:主程序中加一种算法来验证是否是误判,对传感器不能100%信任。
 
2013年4月7日13:39:09
对它进行了第一次维护。
取出芯片,读出EEPROM内容,
地址0x20处的数据为0x0F。说明装置从第一次安装使用到现在已经完成自动抽水15次。但这个值我觉得太特殊了,今晚抽过一次水后,我有必要再读一次数据,看是否还是0x0F。

本次维护新增了两处判断,即软件把水位传感器的信号进行去抖动处理。新增了两项记录。
当检测到电位发生变化的时候,等待10秒钟,10秒过后再次检测,如果电位没有再次变化,则说明此时的信号是正确的,然后采取相应行动。否则记录此次出现错误信号的事件。
虽然这样子检测一般情况下能把错误的信号过滤掉,但是还是会存在有一些特殊情况,如传感器损坏、有异物缠住浮球等,但发生几率很低。
在EEPROM里,我设0x10~0x11这两个空间来记录低水位传感器传出错误信号的次数,0x12~0x13为高水位传感器传出错误信号的次数。



2013年4月13日21:18:49
自从上次维护以来,又过了一个星期,这个星期一点问题都不出,外婆也没发现有异常。
现在我调取了EEPROM里的数据,根据自动记录的数据,至今已经完成自动抽水任务21次,两个传感器发生错误信号的次数为0
看来上次更改的算法是起到了很好的作用。
本次维护不做任何改动。






2013年5月11日18:53:12
再次对它进行维护。
更改220V电机线连接方式。
 







主要改动为:火线进入一号开关,开关打上去后,通过一根保险丝进入二号开关和装置里的继电器的一端。

这样的话,一号开关就是总开关了 ,它比装置优先控制火线的接通。装置也由原先的控制零线改为控制火线。

这样,火线从一楼到楼顶时,如果漏电,人触碰到的话,要不就是保险丝熔断,要不就是电表处的漏电、过流保护开关自动跳闸。而且,抽水机在启动的情况下,没有火线到,整个机器是不会带电的。
当维修抽水机时,打下一号总开关,是最安全的了(如果零线带电等特殊情况除外),其实我应该再让一号开关同时控制零线和火线的,这样能够防止人不知道零线带电的情况下维修抽水机。
不过抽水机那边有个排插和插头的,维修时可以拔掉那个插头。




2013年7月2日23:48:41 
自从使用了新的水塔水位监控器后,一直没有出现问题。
今天发现居然不自动抽水了,外公在我不在家的时候,通过闸刀开关直接强制抽水,并不影响日常用水,这点设计很好!检查时我故意设计的蜂鸣器派上大用场,在外面把线剥开绝缘层,短接如果听到蜂鸣器响就说明是传感器问题。我剥开后发现,线内部都被腐蚀,烂掉了。短接后用万能表测电阻几百欧千欧去,可能由于井水矿物质多,由于存在微弱的5v直流电,形成原电池。四五个月后时间长了也会慢慢反应腐蚀掉。换单股粗电线可以缓解 

还有,因为控制算法的需要,需要将信号线保持高电平,可以将这个上拉电阻换大些。使得电流减到最小,单片机只要电压信号就够了,不需要多大的电流,另一方面,上拉电阻大了以后,电流会减小,能降低水塔那边微弱的原电池反应速率,延长电线寿命


2013年7月6日23:53:13 
根据电路实际焊接,元件选取,更新电脑里的原理图并打印出来放在装置旁边以便以后查询。
信号线上拉电阻由原来的10K换成680K。 
通过串口清空数据时,增加回馈信息。 
补焊上次漏焊的高频滤波电容C2。
 


2013年7月7日15:15:29 

更换水塔中的电线,采用多股铜芯软电线,接头处焊接并用热熔胶封住,这样能够防止水进入线的绝缘套里,防止发生化学反应电解,不用电工胶布包扎了。
 

关闭窗口

相关文章