漏电保护系统



我想分享我的经验,以创建一种不仅有趣的实施设备,而且还可能有益的设备。也许有人会说可以做一些简单的事情,但这不是我们的方式...

一切始于公寓维修后发现潜在问题的事实。如果某处发生泄漏,没有一定的体力和灵巧,将无法进入起重机进入公寓,因为关闭起重机的舱门安装得不是很好。因此,在紧急情况下(紧急情况)快速关闭水龙头将无法正常工作。有必要对此做一些事情,并且出现了一个解决方案-远程实现机会,即 在不打开舱口的情况下,停止供水。而且,作为奖励,实施电子产品可以信任的所有其他功能。

这就是设备的外观。



主要特点:
  • 如有泄漏,请独立关闭供水
  • 在“手动”模式下关闭供水-前面板上有一个“红色按钮”和一个两位置拨动开关
  • 在自己的显示器上显示仪表读数
  • 在显示屏上显示其他有用的信息

不能,但是要计划:
  • 使用备用电源工作。现在,在断电的情况下-设备无用
  • 使用无线泄漏传感器
  • 自己清洁水龙头。为了不“变成酸性”,建议每月打开/关闭一次
  • 通知有关智能手机上的事件并由“空中”控制

它不能(无论多么必要):
  • 有多个通道可读取不同的有线泄漏传感器,现在所有传感器(5个)并联连接
  • 单独管理起重机。它们有两个(一个在热水上,另一个在冷水上),并且它们并联连接
  • 传感器破损控制

以下是组件及其用途(截至2015年7月的价格)的说明。

当然,我还需要一个程序员/仿真器,我使用了一个:ARM仿真器,支持ARM7,ARM9,ARM11,Cortex-M3内核,ADS,IAR,STM32,JTAG接口,双缓冲V8版本在这些功能中,可能要提到的是,除了用于SW编程的标准导线之外,我还必须将来自可编程芯片的电流供应电压施加到它,在我的情况下为3.3伏。程序员必须了解逻辑值的电压电平。没有这个,可编程芯片就不会被检测到。而且,该编程器具有为可编程设备供电的能力,为此提供了一个引脚,JLink.exe实用程序可以打开/关闭电压。

有关铁的更多信息


微控制器


整个系统的大脑是ST的32位微控制器,由中国工厂的中国工人整齐地焊接到与Leaf Maple Mini “兼容”的板上
关于Leaf Maple Mini
正如所注意到的 eta4ever
,
«» , …

有48个结论。内核运行在72MHz,集成了SRAM-20KB和Flash-128KB。更多细节在这里这样的参数肯定会鼓励使用高级工具和工具,即 这些是FreeRTOS,图形彩色显示,C ++等。(而不是两个LED和组装器)。通常,不要否认自己什么……除了C ++,但这不是芯片问题。
为什么?
C++ , , , . , C++ , , , , .. STM32CubeMX , FreeRTOS. , .

利用微控制器的结论。从这里您可以猜测连接了什么。


显示




在与ILI9341兼容的控制器上构建具有320x240像素TFT显示屏的模块,该模块负责显示信息;它由SPI以该捆绑包的最大可能频率(18MHz)工作。SPI仅在一个方向上连接到微控制器,用于从显示模块读取数据的输出仍然悬空,因为 我没有提出此功能,但我将其保存在微控制器的自由支脚上。数据传输在DMA上进行

用于连接SD卡的连接器焊接在背面的模块上,我尚未测试过使用SD卡的能力,并且该连接器不参与此项目。

RTC和EEPROM模块




模块上的时钟由DS3231芯片实现。我没有造成任何特殊问题,唯一的不便是所有值(日期,时间)都以BCD格式存储在寄存器中,当两个十进制数字反映在一个字节中时(高四位-最高有效位,低位-最低有效位) 。例如,值“ 38分钟”存储为十进制值56(十六进制表示为“ 38”)。无法找出是否可以切换到二进制格式。

该模块有自己的电池,因此,每次断电时,您都无需设置时间和日期。同样,AT24C32微电路焊接在模块板上,具有多达32768个EEPROM位!简而言之,它是4 KB的非易失性存储器。时钟和存储器都位于同一I2C总线上。目前,内存仅用于存储设备设置,计数器读数的当前值以及其他内容。最终占用了25个字节。稍后,它将用于保存各种事件的日志,并可能用于保存消耗量统计信息(我不知道为什么,但有时会对图形显示进行编程)。

除了I2C总线触点和电源,板上还有两个。“ SQW”是来自闹钟的信号,可以通过寄存器进行编程,“ 32K”是DS3231为其他设备生成的频率。该项目不适用。

带湿度传感器的模块




它用作外部世界和微控制器之间的缓冲区。通往探头的电线总长约10米,没有屏蔽。常规的两线电话线。如果发生静电击中,我希望只有这个模块会死,而微控制器不会。它能够测量两个电极之间的电阻,并以模拟形式(从0到电源电压的电压)和数字形式(0/1,该模块具有一个可变电阻器,可以将其调整到操作极​​限)来提供此信息。

此模块存在一些小问题。施加和移除电源电压时,数字量输出处的模块发出跳闸信号,这也可以通过LED闪烁一秒钟来看出(在模块板上,LED与数字量输出并联安装)。当接通/复位系统电源时,微控制器设法读取异常信号(问题1)。该解决方案是通过在预期固定一段时间的情况下跳过短操作脉冲来实现的。

可变电阻的调整角度很小,在这个角度上我无法找到没有误报和良好灵敏度之间的界限(问题2)。后来实现了通过ADC微控制器读取模拟信号。同时,可以在设备设置中将响应限制设置为参数。现在认为,调整响应级别的能力是多余的,最好对边界值进行硬编码。

注意到在运行几分钟后(预热?),模块突然开始发出自发运行信号(问题3,其中有多少个?!)。

在异常响应的边界处,LED发光强度(在模块上)逐渐增加或减小,就好像是由PWM发生器控制的那样,很明显,这是噪声,并且是高频的,在模块的“数字”输出端可以期望得到相同的亮度(问题4)。 )

我要说明的是,实现了从模块读取模拟信号后,所有这些问题均已解决。

探头(发生事故时直接位于积水处的传感器部分)是用简易方法制成的。这是锡(钢)和一个小的圆形接线盒,经过机械改造为所需的类型,并在内部焊接了电线。当水进入电极对之间时,电阻减小,控制器将其视为“泄漏”。



实验室测试表明,该产品可以很好地发挥其功能,而不是系统中的薄弱环节。

营养


整个系统通过为电话充电-5伏2A(此处有余量)来工作。在Maple Mini板上,安装了3.3伏的电压调节器,输入电压可以高达12伏,稳定器的特性允许,但是这么大的电压不便于使用,下面将对此进行详细说明。

使用稳定器,RTC,TFT模块和湿度测量模块的电源也将获得3.3伏电压。起重机通过ULN2003AN电源开关组件直接从电源(即电源)连接。从5伏特开始工作,减去键上的压降。ULN2003AN仅使用七个通道中的两个。

当然,建议用电压稍高的另一个电源代替,因为有时,关闭起重机时,其中一台由于其自身拖车的运行而处于接近极限的位置(在阀体中安装了两件,以求出极限位置),停了一秒钟,然后出现“反弹”(由于变速箱齿轮的游隙) ),然后反复尝试拧紧球阀等,直到控制器从伺服驱动器上拔下电源电压为止。

现场的卖方了解到起重机应在5伏特的电压下工作,在这种情况下,电压供应较少。制作软件后,才能打开和关闭分接头,仅在特定时间(6秒)内提供电压,在此期间,分接头必须有时间才能分合。值得注意的是,这种效果不会影响水龙头的关闭不完全,因为 此刻是在水龙头完全切断水流之后。还可以提及的是,对伺服器施加的电压过高(在实验中施加了9伏),使它们进一步惯性运动(在触发限位开关之后),并通过撞击声与极端位置抵靠。

伺服球阀


截止阀看起来很可靠,但是电子零件必须完成。



如果看一下起重机控制电路,您会注意到它们是由正电压控制的。一般的“减号”和两根信号电源的“加”线,一根用于闭合,另一根用于断开。但是ULN2003AN无法在此模式下工作;在该模式下,打开键时,托管输出连接到减号。解决方案是改变起重机本身的控制极性。为此,我不得不交换“预告片”的信号,因为 由于极性变化,电动机沿相反方向旋转(与备用电路相比),而极限位置现在沿相反方向旋转。因此,我们有一台起重机,它具有一个共同的“加”和两个控制“减”。确实需要什么!

带有伺服的起重机处于“战斗”状态。



抄表


当然,没有数据存储在计数器本身中,可以通过从其上拆下的两根线读取该数据。这只是一个带有舌簧开关和位于旋转叶轮上的磁铁的链条。用万用表进行的测量未显示电路中存在任何电阻或电容。在我的计数器中,舌簧开关的回路(随后断开)以一升水的流量发生。某处有关于仪表的信息,每10升就会形成一个信号。那些。他们是不同的。

要求微控制器读取这些脉冲。设备的用户界面当然会提供初始值。

由于存在的问题:在没有电的情况下,水的消耗将不予考虑。存在硬件缺陷,有必要对其进行修复-用电池做备用电源,这对于设备的主要功能也是必需的,否则设备将无法在必要时关闭水龙头。

从这里开始以下两个任务:
  1. . , , « », , () / . , ( ), «», , (, ), , FreeRTOS.
  2. , , « ».
    关掉水龙头?
    , , , , , 11 , , «» , , «» , !

控制项


编码器


位于显示屏旁边,用于导航菜单。旋转-转到下一个/上一个菜单项,按-选择/激活一个菜单项。

“红色按钮”


关闭水龙头的最简单方法是按下红色按钮。尽管它不应该有用,因为 前一段时间,设备本身必须做所有事情。但以防万一,按钮存在。反复按,长按,双击等。不算在内,只有第一按就可以了。“紧急”模式被激活,只能通过特殊菜单项将其禁用。

开/关拨动开关


当然,如果系统未处于“崩溃”模式,它们也可以通过水龙头关闭,但也可以打开。这对于暂时关闭供水很有用。

三色LED


这里的一切也很简单。指示当前模式:绿色-一切正常,红色-并非一切正常,蓝色-使用拨动开关阻止抽头(请参见上文)。不使用混合色,三个就足够了。但是这里出现了一个问题。发光是如此强烈,以至于您观看显示器时都会眼花乱。每种颜色470欧姆是不够的。通过程序进行了纠正。当显示屏处于活动状态(在使用控件一段时间后处于活动状态)时,此指示灯熄灭。

结论


设备正常运行,定期测试表明设备正常运行。它不会冻结,也不是越野车。虽然我知道代码中哪里有潜在但非关键的错误,但本文中没有讨论。

来源,Keil uVision 5项目,STM32CubeMX的项目文件

Source: https://habr.com/ru/post/zh-CN382065/


All Articles