在这篇文章中,我们将构建一个基于短信的水泵控制器,当没有检测到水流通过水泵时,水泵将自动关闭。在文章的下半部分,我们还将构建另一个更简单的无GSM自动防漏电路。
什么是干跑
我们已经讨论过了GSM泵控制器如果还没有,请在这个网站上查看。在这里,我们在现有的设计上增加了一个额外的功能,这将防止电机干运行。
空运行意味着在没有液体流动的情况下运行水泵。根据电动机在运行的时间不长时间而不泵送水和水泵的质量,因此可以对不可分发的损坏进行维修损坏。
是的,水泵并不便宜,如果你是一个每天灌溉农田的农民,那么水泵的一个小问题就会让你蒙受经济损失。
维修泵可能需要一些时间和金钱,所以最好跟随着名的口号“预防比治愈更好”。
电动机排练是一个很常见的问题,当水泵没有足够的水流过时,就会出现机械部件以及电气部件过热的情况。
在某一点上,机械部件将开始熔化,也可能导致短路。
可以使用该项目中提出的电路来防止这种灾难。
为了探测水流,我们采用YF-S201水流传感器.当传感器没有检测到水流时,它会切断水泵的电源,并将SMS确认发送到接收方围绕干跑关闭。
有了这个基于GSM的控制,你可以打开和关闭泵,也电路承认泵干运行问题。
基于SMS的泵控电路:
该电路由9V变换器、桥式整流、1000uf平滑电容和LM7809 9V稳压器组成。Arduino板和SIM 800 / SIM 900 GSM模块提供两个直流插孔供电。
千万不要将Arduino 5V引脚的GSM模块供电给GSM模块5V引脚,因为Arduino板无法提供足够的电流。
之间的联系Arduino和GSM模块如下:
Arduino TX ---------------------- RX SIM 800/900
Arduino Rx ------------------- TX SIM 800/900
Arduino GND ------------------- GND SIM 800 / 900
主电源由LM 7809稳压器提供。
当继电器激活时LED指示灯发光,当继电器不激活时LED指示灯关闭。
二极管In4007将吸收高压尖峰,同时打开和关闭继电器的同时发生。
水流传感器连接Arduino板提供的A0引脚、5V、GND。
基于GSM的设计程序:
//---------------- 项目由R.Girish ------------//
int motor = 8;
int LED = 9;
Int temp = 0;
Int I = 0;
Int j = 0;
Int k = 0;
int X = 0;
int Y = 0;
int mtr_on = 0;
浮动时间= 0;
浮动频率= 0;
const int输入= a0;
Const int test = 6;
char str [15];
void setup()
{
Serial.begin (9600);
pinMode(电动机、输出);
pinMode(领导、输出);
digitalWrite(电机、低);
digitalWrite(领导、低);
analogWrite(测试,100);
for(k = 0; k <60; k ++)
{
延迟(1000);
}
以“在+ CNMI = 2, 2, 0, 0, 0);
延迟(1000);
serial.println(“AT + CMGF = 1”);
延迟(500);
以“在+发生= \”+ 91 xxxxxxxxxx \ " \ r ");//将x替换为手机号码
延迟(1000);
系列。println("System is ready to receive commands.");//您想发送的短信文本
延迟(100);
以(char) 26);// CTRL+Z的ASCII码
延迟(1000);
}
无效循环()
{
If (temp == 1) / /当前位置
{
检查();
temp = 0;
我= 0;
延迟(1000);
}
if(mtr_on == 1)
{
X = pulseIn(输入,HIGH);
Y = pulseIn(输入,LOW);
时间= x + y;
频率= 1000000 /时间;
if(Isinf(频率))
{
digitalWrite(电机、低);
digitalWrite(领导、低);
延迟(1000);
以“在+发生= \”+ 91 xxxxxxxxxx \ " \ r ");//将x替换为手机号码
延迟(1000);
系列。println(“马达失效。//你想发送的短信
延迟(100);
以(char) 26);// CTRL+Z的ASCII码
mtr_on = 0;
延迟(1000);
}
}
}
void serialevent()
{
而(Serial.available ())
{
如果(Serial.find (" / "))
{
延迟(1000);
而(Serial.available ())
{
char inChar = Serial.read();
str (+ +) = inChar;
if (inChar == '/')
{
temp = 1;
返回;
}
}
}
}
}
空白支票()
{
如果(!(strncmp(str, "motor on", 8)))
{
DigitalWrite(电机,高);
digitalWrite(领导、高);
延迟(1000);
以“在+发生= \”+ 91 xxxxxxxxxx \ " \ r ");//将x替换为手机号码
延迟(1000);
serial.println(“电机激活”);//The SMS text you want to send
延迟(100);
以(char) 26);// CTRL+Z的ASCII码
For (j = 0;J < 20;j + +)
{
延迟(1000);
}
mtr_on = 1;
}
else if (!(strncmp(str, "motor off", 9))
{
digitalWrite(电机、低);
digitalWrite(领导、低);
mtr_on = 0;
延迟(1000);
以“在+发生= \”+ 91 xxxxxxxxxx \ " \ r ");//将x替换为手机号码
延迟(1000);
系列。println("Motor deactivated");//你想发送的短信
延迟(100);
以(char) 26);// CTRL+Z的ASCII码
延迟(1000);
}
否则if(!(strncmp(str,“测试”,4)))
{
以“在+发生= \”+ 91 xxxxxxxxxx \ " \ r ");//将x替换为手机号码
延迟(1000);
系列。println("The System is Working Fine.");//您要发送的短信
延迟(100);
以(char) 26);// CTRL+Z的ASCII码
延迟(1000);
}
}
//---------------- 项目由R.Girish ------------//
你必须输入接收者的10位手机号码。
以“在+发生= \”+ 91 xxxxxxxxxx \ " \ r ");//将x替换为手机号码
你需要把手机号码放在代码中的这5个地方。
短信命令:
·您的短信必须以“/”开头,以“/”结尾
·/马达开启/用于启动马达。
·/电机关闭/用于关闭电机。
·/test/用于测试电路。
这是测试的SMS,而原型设计:
从截图中我们可以观察到以下几点:
·首先接通电机,确认电路并答复。
·电机停用,电路被确认回复。
·再次启动电机,拔下传感器模拟干运行情况,电路关闭泵并回复泵干运行确认。
·最终发送测试短信,电路回复“系统运行正常”。
我建议在水泵后米后安装水流传感器。
这就是基于GSM的泵防喷器。
现在再来看看没有GSM的简易水泵防喷器,这可能是两者中比较简单的一个。
线路图:
这里没有什么要解释的,只要按照原理图连接就行了。电源可以是至少500 mA的9V墙适配器或GSM控制器原理图中所示的电源。
提供按钮以打开和关闭泵。
一旦你按下按钮打开水泵,电路会等待20秒来检测水流,在此期间按钮关闭20秒。
在最初的20秒后,按钮是使能的,你可以关闭泵手动按下按钮再次。
如果检测到有水流,电路在20秒后保持水泵开启,否则电路切断电机电源。如果检测不到水流,电路还可以在任何时刻切断电源。
如果电路因干运行而关闭,LED会快速闪烁。
简单泵干式防喷器程序:
// --------------------------由r.girish开发------------------------ //
int X = 0;
int Y = 0;
Int I = 0;
int mtr_on = 0;
浮动时间= 0;
浮动频率= 0;
const int输入= a0;
Const int test = 6;
const int按钮= a1;
const int LED = 8;
Const int motor = 9;
void setup()
{
Serial.begin (9600);
pinMode(输入,输入);
PinMode(测试,输出);
pinMode(领导、输出);
pinMode(电动机、输出);
analogWrite(测试,100);
digitalWrite(按钮、高);
}
无效循环()
{
if (button) == LOW && mtr_on == 0 if (button) == LOW && mtr_on == 0)
{
serial.println(“电机激活”);
digitalWrite(领导、高);
DigitalWrite(电机,高);
For (i = 0;我< 20;我+ +)
{
延迟(1000);
}
mtr_on = 1;
}
if (button (button) == LOW && mtr_on == 1) / /按下按钮
{
系列。println(“电机失效”);
digitalWrite(领导、低);
digitalWrite(电机、低);
mtr_on = 0;
延迟(1000);
}
if(mtr_on == 1)
{
X = pulseIn(输入,HIGH);
Y = pulseIn(输入,LOW);
时间= x + y;
频率= 1000000 /时间;
if(Isinf(频率))
{
系列。println("干运行关闭");
digitalWrite(电机、低);
digitalWrite(领导、低);
mtr_on = 0;
而(真实)
{
digitalWrite(领导、高);
延迟(500);
digitalWrite(领导、低);
延迟(500);
}
}
}
}
// --------------------------由r.girish开发------------------------ //
这两种设计都结束了。
如果您有任何具体的问题关于这个基于短信的泵控制器与自动干运行关闭电路,请在评论部分表达,你可能会收到快速的回复。
我已经连接了所有连接,但电机一旦提供给CKT I的电源就会(是RESTORE CONNECTINGSE),我认为应该是N / O)
请通过切换继电器触点来检查,先用灯泡检查一下,如果一切正常,再连接实际负载。
你好先生,
是否有其他方法可以检查泵在干燥状态下运行。我听说很少有工业的干式运行传感器实际上是计算泵在干燥状态的正常vs时的电压差或放大器差异。
Hi Madhav,根据我的说法,检查放大器的差异是最好和最可靠的方法,另一种方法是监测电机温度
谢谢你的重播,先生。
我的意思是我们是否可以将电流输入到arduino,然后分析并采取行动。
提前致谢 。
Madhav,通过无线方法监控它可能是很复杂的,但是可以在电机将自动关闭电机的情况下进行布置,并且发送到您的手机上的短信。
我想学习编码arduino UNO板我最近购买。这是我死前想做的事。我80岁了。所以如果你能帮上忙,就快点。非常感谢。
我希望我可以教你,但是我自己也在Arduino的学习阶段,所以不能提供太多的帮助,但是如果可能的话,我会尝试发布一篇相关的文章,帮助像你一样有兴趣的读者更容易地了解Arduino
感谢。上帝保佑,Fali
帮帮我,先生,我想要短信和电话控制3相自动干燥关闭水泵,我是农民,我正在尝试这个项目,我自己的农场,请帮帮我,先生
嗨Rushikesh,您可以使用相同的电路和代码并为3个相位电机构建它。
您需要实现的唯一变更是:
将BC548替换为TIP122,并将单继电器替换为三个并行的30安培继电器(并联线圈)…
在此之后,你可以用三相电机的3根线来连接继电器的3个单独的触点。
或者,您也可以用一个TTTP继电器或一个三投三触点继电器(30安培)替换继电器。
谢谢你的回复,先生,但是请告诉我,如果我想用它从12v或15v的变压器上给35v供电,那么c1, c2, c3 d1, d2的d值是多少?
你可以用C1 = 0.1uF, C2, C3 = 100uF/25V, D1, D2 = 1N4007
PLS SIR可以使用电压倍增器从15V或12V变压器电动35V直流电。请你可以给我D电压倍增器的D电路图,我假设在DAT情况下使用。TNX.
无线,是的,你可以通过使用以下链接中解释的电路来实现:
https://www.homemade-circulay.com/?s=voltage+doubler.