一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 10450|回复: 37

[其他DIY] DIY远程水箱水位及温度采集显示系统

[复制链接]
发表于 2015-4-21 13:28 | 显示全部楼层 |阅读模式
本帖最后由 1ylh 于 2015-4-22 10:24 编辑

DIY远程水箱水位及温度采集显示系统

玩电子这么多年了,各种各样,形形色色的元件都把床底给堆满了,消耗的太少,都在吃灰呢。一直以来都是仿制仿制,仿制又要买新的元件,备的元件都不适合新的“项目”,自己做的东西都很少,眼看着东西都没法消耗了,终于下定决心搞一个真正的“DIY”吧。
记得以前(嗯嗯,估计至少有3年了吧)看见论坛上有人发的带水箱水位显示的自动上水器,当时回帖说想DIY个数码显示的,显示水位的百分比。为此,12年的时候就在淘宝上买好了水压传感器,美信里申请好了相应的芯片(幸好早申请好了,现在已经无法申请了——我没有企业信箱啊)。芯片型号见图纸吧。
电路设计部分,自己只会51,所以选了个STC系列带AD的,因为之前只玩过89c2051/89C51嘛,又想玩下AD,所以选了这款,显示用2位的数码管就可以了,想起以前还申请过DS1920不锈钢的传感器(以前申请了18b20,美信没给,就换着申请了下这个,就是比较难装,不锈钢纽扣式封装),顺便加一个温度采集吧,反正加个切换显示就行。乡下的水箱在4楼顶上,我总不能传感器装楼顶,给它弄个15米的线路吧,那样信号都不知道会变成啥样子,所以方案选择时打算弄两套单片机系统,楼上的一套专门采集信号,串口发送到楼下的单片机来处理显示,考虑供电和走线,选用网线来传输,15米的距离还是用RS485的通信吧,保险点(反正申请的485芯片,嘿嘿),网线有4对线,其中2对用来供电,两对用来通讯,正好,搞定!楼下的主控,接收串口发来的信息,处理,显示,驱动水泵抽……等等,超过今天的范围了,为什么??下文慢慢说吧!
硬件选择完毕,就开始画电路图了。水压传感器是电桥输出,信号mV级别,弄个仪放吧,简单高效!一片358运放给压力传感器恒流供电,多的一组组成一个减法电路——处理下压力传感器的零点漂移吧!(结果没用上,因为,俺那个传感器漂移居然是负值),下面就是电路图了(信号采集部分 dlu.jpg
画好了,然后画PCB,根据好几年前买的盒子尺寸画!(再汗一个,那盒子都买了有5年以上了) pcb11.jpg
过了年,打样回来,准备安装呢,一看傻眼了!主控的封装弄错了,宽体的弄成窄体的了,看看吧: 单片机封装错误.jpg

算了,谁叫自己那么笨,还好管脚距离是一样的,用刀刮刮,就这样用吧!
焊接很快,弄好了就开始写代码了,先写个显示的,弄个定时器,每秒加一个数字,送去显示,写好上机没问题,一次成功!,然后加一个串口,发送到电脑来检查,也很成功,再写AD转换,居然也是一次成功,为了验证AD的线性,还专门测试了一下,结果在数码之家发表了一下,顺便把我的负值M币变成了正的,哈哈!地址:http://bbs.mydigit.cn/read.php?tid=1197658&ds=1#tpc
有网友说什么14位16位的飘什么的,我至于吗?就一个1米多的水箱,分成256份来显示还不够?难道我要弄到连0.1mm的水位变化都显示出来?再说了,我才几块钱的单片机啊,足够了。测试水压采集,弄个管子,先嘴巴吹气,咋纹丝不动啊,嘴巴压力不够?找万能的度娘,有人表示可以到20kpa啊。咋不动呢?传感器坏了?换一个吧,幸好买了好几个不一样的,(幸好应该改成不幸,哈哈),可以动了,看着换下来的传感器,应该不对啊,新的就坏了?难不成是拿错了?结果一试,晕啊,卖家发货的时候把1mpa的和20kpa的装混了,1mpa的,嘴巴能吹动才怪呢!哈哈
好了,采集部分基本弄好了,是不是该弄下面处理部分了呢?嗯嗯,要加上水泵,加上电压、电流监测、加上抽水多久水位没变化要自动关机,加上电机过热、过载、超压、欠压保护,加上……等等!看着手上的9块剩余的板子,想想已经有了的简单上水控制,还是算了,以后再说,我再用块采集部分的板子,改成数据显示和报警就得了,哈哈,省就一个字啊!嗯嗯,连单片机也换成便宜的11f02e吧,2k程序足够了,不要ad,便宜啊!
焊好了,自己再在空焊盘上加了个蜂鸣器,就开始写代码了,边写边改边调试,过程就不说了,一会在软件功能上会写出来的。先上图 外壳.jpg 焊好的两兄弟.jpg

扒衣见君

扒衣见君
开槽.jpg 裸着工作.jpg 工作图(网线12米距离).jpg 网线口开槽1.jpg 网线口开槽2.jpg 下方圆 的是温度传感器.jpg 水压传感器.jpg
信号处理部分代码编程说明:
1、主控采用STC11F02E,串口速率2400(速率低,尽量减少距离造成的误码概率,)晶振6MHZ;只会汇编,代码用汇编编写,用的是WAVE 6000。
2、软件接收下位机发来的数据信号,在二位数码管上显示。因为为上位机,数码管一直显示,不屏蔽显示;采集部分显示30秒后关闭显示;
3、采用内部EEPROM存储设置的报警水位,掉电不失;
4、接收下位机数据,形式为*,水位,温度,E0,E1,E2;*为引导符号,水位为百分数,温度为10进制温度,E0表示水位传感器错误(暂时未考虑),E1为温度传感器错误,E2为水位硬件溢出错误;当发生错误代码时,优先显示错误代码,优先顺序是E0.E1.E2,且以每秒一次速度闪动;
5、在正常情况下,按键“上”和“下”是切换显示水位和水温开关。按设置键进入报警水位设置,“上”为加1,“下”为减1,报警水位只能设置在1%~80%报警,设置时报警位以一秒一次的速度闪动,再次按设置键存储退出,在无操作30秒后自动存储退出。按键时蜂鸣器短响一声。
6、增加看门狗,约1s复位一次,水位比较时,连续3个水位数据达到要求才开启报警,防止在水位报警边沿时反复触发;报警电路全部完成,其中水位报警30秒长响一次,每次约1000ms,传感器故障每30秒,短响3次,每次200ms,间隔200ms。双重报警一长一短。
7、增加一个数据接收故障报警功能,连续10秒未收到正确串口信息就显示故障E3.并按传感器故障报警响铃。
8、蜂鸣器用的是无源蜂鸣器,驱动频率约4khz。
9、装好485芯片后,不能在线编程了,还没继续深入研究,反正以上功能没有大的缺陷性问题,不升级也没关系(上述代码运行时发现的问题是,故障报警不是一有就声响,而是30秒一次,也就是有故障后30秒才第一次报警,以后每30秒响一次,如果串口信号开始正常,采集部分由故障码发来,在串口通讯故障后,原故障码没有清除,会在处理部分显示)
其他说明:
1、     温度传感器因为是纽扣封装,很难固定,正好在某论坛上买的自闪变色LED灯的外壳可以用,去掉灯,去掉纽扣电池,锉刀打磨下正好安装上DS1920,没拍详图。
2、     电源插口没拍照片,在网线口上面安装的。采集部分单片机供电开始是7805,后来改成了78L05,可以在照片上反映出来,原因有两点,a、7805比较高外壳扣不拢;b、采集部分显示器30秒后关闭,电流不大,78L05足矣。因为78L05关系到单片机的AD转换,故此预先筛选了下电压尽量到5V,其实只要稳定即可,现场设置时,在最高水位调整多圈电位器,让显示为AA即可)。两位数码管,100%显示AA%。
3、     PCB板错误地方:a、单片机封装错误,宽体变成窄体,刮下引线,安装也可以使用,第11和20脚要用铜丝跳线焊接下;b、压力传感器封装画错,因压力传感器要安装在外壳边沿,引线要外引,故影响不大;c、运放减法电路错误,第5、6脚信号要反过来,因为使用的这枚压力传感器零漂移是负值,所以没有使用(使用的是降低安装高度,让水位在零时,水管里残存的压力使其为零),如果需要使用,稍微改造下即可纠正。
4、     采集部分数码管没露出,因为正常工作时数码管是关闭的,而且我用了插座安装,调试好后可以拔出数码管,另外采集部分户外安装,需要防水,所以没必要开孔,安装好后接缝处要做防水处理(包括温度传感器接口和网线接口也要做防水,槽也没开好,很难看,呵呵,将就吧)。
5、     面板上目前还没来得及标注按键和指示灯的功能,上面的灯左边是电源,右边是通讯指示,采集部分一秒发一个信号闪一次,处理部分接受到信号闪一次,下面的按钮左边的是“减”,中间是“加”,右边是“设置”按钮。
6、     成本分析,开始时,只想用好手上有的芯片,反正是申请的,也没做过多考虑,做完后看了下淘宝,那片仪放MAX4194和RS485(其实是全双工的RS422)都要20~30一片,吓死人啊,真的要这么做,用我们这的话说就是“豆腐花了肉的价”,所以呢,如果要省成本的话,仪放可以用LM324来搭一个差动放大电路代替,RS422改成RS485吧,MAX485也不贵,STC12c4052AD也可以选其他便宜点的STC片子,新系列的反而便宜点。
7、     其他还没想到,想到再补充吧,下周下乡去现场安装试运行下!

    嗯,数码那没m币,所以在那边也发了帖子,哈哈!

打完收工!!

源码.rar (9.58 KB, 下载次数: 199)
 楼主| 发表于 2015-4-21 13:29 | 显示全部楼层
本帖最后由 1ylh 于 2015-4-30 15:17 编辑

留一楼备用。补安装完的照片!

显示器整体

显示器整体

显示器安装

显示器安装

整体

整体

采集器安装

采集器安装

温度传感器安装

温度传感器安装

防水处理

防水处理

采用细节(堵头钻孔+圆珠笔芯头部,不漏水)

采用细节(堵头钻孔+圆珠笔芯头部,不漏水)

采样安装

采样安装
回复

使用道具 举报

发表于 2015-4-21 13:42 | 显示全部楼层
之前苦苦寻找远程水箱水位及温度控制系统,就是找不到成品,等楼主的成品,呵呵。
回复

使用道具 举报

发表于 2015-4-21 13:48 | 显示全部楼层
自动控制方面为啥没有啊?这么玩没一点用啊,单片机加几路继电器,电磁阀,电加热等
回复

使用道具 举报

发表于 2015-4-21 14:11 | 显示全部楼层
几年前做过这个,烂尾了,用的是超声波监测,水位没试过,距离倒是试过,测量精度还挺准
回复

使用道具 举报

 楼主| 发表于 2015-4-21 14:59 | 显示全部楼层
yleee 发表于 2015-4-21 13:42
之前苦苦寻找远程水箱水位及温度控制系统,就是找不到成品,等楼主的成品,呵呵。

呵呵,谢谢!其实如果不要那些什么水泵电机保护的,代码稍微改下就可以控制一个继电器继而控制水泵了,问题是我家的实际情况是已经被水电工装了一个估计是机械式的自动上水器,也可以手动,到水泵去的电线是埋设的,我已经无法加上控制了,所以弄个能显示的也就行了,不一定会再完善处理部分了,原来设想的是处理部分用DIP40的51,水位水温分开同时显示,电机加上过压过流过热保护,加上缺水(经过一定时间水位没变化,一般是不会发生的,是地下水)保护,加上超时保护(比如继电器粘连了,超过多久没停机,或者水位已经溢出【装个水位硬件开关】保护),然后把板子做成通用板子加上1602、12864的接口焊盘,打样后就有10片,还可以做其他的,哈哈。不过以后再看吧,有可能让王老板失望了,当然,还是那句话,如果直接控制一个继电器,我可以修改好代码发给你,自己再加个继电器就成。
回复

使用道具 举报

 楼主| 发表于 2015-4-21 15:01 | 显示全部楼层
prince_15 发表于 2015-4-21 14:11
几年前做过这个,烂尾了,用的是超声波监测,水位没试过,距离倒是试过,测量精度还挺准

嗯,超声波的模块我也买了,但不敢用来控制水位,主要有下面的因素:1、水塔里面安装不方便;2、万一控制失灵,水位溢出,会把模块淹了,水塔里的水可是要饮用的。所以考虑到这些觉得还是水压传感器安全方便点。
回复

使用道具 举报

发表于 2015-4-21 16:03 | 显示全部楼层
请教下LZ,这种两线又能测水位又能测水温的是个啥原理,媳妇家太阳能就装的这玩意。。。
http://item.taobao.com/item.htm? ... &id=15322199188
回复

使用道具 举报

发表于 2015-4-21 16:21 | 显示全部楼层
这个不错,期待楼主的成品
回复

使用道具 举报

发表于 2015-4-21 16:37 | 显示全部楼层
不用数码显示,直接像以前收录机里热的动态音频显示屏一样显示水箱水位就更直观了。传感器感觉用超声波测距更好,不用放水面,放箱顶是不会淹到的。再用无线传输信号,水箱上就一个信号发送器,安装更快捷。我只会说,不会做
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2026-1-12 20:48 , Processed in 0.044131 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表