在这篇文章中,我们将构建一个基于SMS的水泵控制器,当检测到没有水流通过泵时,泵自动关闭。在本文的下半部分,我们还将在没有GSM的情况下构造另一个简单得多的自动演练防喷器电路。
什么是汽车的试运行
我们已经讨论过基于GSM的泵控制器如果还没有的话,可以在这个网站上看看。在这里,我们在现有的设计上增加了一个额外的特点,这将防止电机干运转。
空运行指水泵运行时无液体流动。其后果可能是可使用的损坏或不可使用的损坏,这取决于电机在不抽水的情况下运行的时间和水泵的质量。
是的,水泵不便宜,如果你是一个每天灌溉农田的农业学家,那么水泵的一个小问题就会让你陷入经济损失。
维修水泵可能需要一些时间和金钱,所以最好遵循著名的口号“预防胜于治疗”。
电动机排练是一个很常见的问题,当水泵没有足够的水流过时,机械部件以及电气部件就会发生过热。
在某一时刻,机械部件将开始融化,也可能导致短路。
利用本项目提出的电路可以避免此类灾害。
为了探测水流,我们采用YF-S201型水流传感器.当传感器检测到没有水流时,就会切断水泵的电源,并向接收方发送断开干运行的短信确认。
有了这个基于GSM的控制系统,你可以打开和关闭泵,也可以通过电路确认泵的干运行问题。
基于SMS的泵控制电路:
该电路由使用9V变压器的AC - DC变换器、1000 uF平滑电容的桥式整流器和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
主电源由lm7809稳压器提供。
继电器激活时,LED指示灯发光,继电器失活时,LED指示灯熄灭。
二极管IN4007将吸收在开关继电器时发生的高电压尖峰。
水流传感器连接Arduino的A0引脚、Arduino板提供的5V和GND。
基于GSM的设计方案:
//---------------- 项目由R.Girish ------------//
Int电机= 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 input = A0;
Const int test = 6;
char str [15];
无效的设置()
{
Serial.begin (9600);
pinMode(电动机、输出);
pinMode(领导、输出);
digitalWrite(电机、低);
digitalWrite(领导、低);
analogWrite(测试,100);
For (k = 0;k < 60;k + +)
{
延迟(1000);
}
以“在+ CNMI = 2, 2, 0, 0, 0);
延迟(1000);
以“在+ CMGF = 1”);
延迟(500);
以“在+发生= \”+ 91 xxxxxxxxxx \ " \ r ");//将x替换为mobile number
延迟(1000);
系列。println("System is ready to receive command .");//发送短信
延迟(100);
以(char) 26);// CTRL+Z的ASCII码
延迟(1000);
}
无效循环()
{
If (temp == 1)
{
检查();
temp = 0;
我= 0;
延迟(1000);
}
If (mtr_on == 1)
{
X = pulseIn(input, HIGH);
Y = pulseIn(input, LOW);
时间= X + Y;
frequency = 1000000 / Time;
如果(isinf(频率))
{
digitalWrite(电机、低);
digitalWrite(领导、低);
延迟(1000);
以“在+发生= \”+ 91 xxxxxxxxxx \ " \ r ");//将x替换为mobile number
延迟(1000);
系列。println(“马达失效。//你想发送的短信
延迟(100);
以(char) 26);// CTRL+Z的ASCII码
mtr_on = 0;
延迟(1000);
}
}
}
空白serialEvent ()
{
而(Serial.available ())
{
如果(Serial.find (" / "))
{
延迟(1000);
而(Serial.available ())
{
char inChar = Serial.read();
str (+ +) = inChar;
if (inChar == '/')
{
temp = 1;
返回;
}
}
}
}
}
空白支票()
{
如果(!(str, "motor on", 8))))
{
digitalWrite(电机、高);
digitalWrite(领导、高);
延迟(1000);
以“在+发生= \”+ 91 xxxxxxxxxx \ " \ r ");//将x替换为mobile number
延迟(1000);
系列。println("Motor Activated");//你想发送的短信
延迟(100);
以(char) 26);// CTRL+Z的ASCII码
对于(j = 0;J < 20;j + +)
{
延迟(1000);
}
mtr_on = 1;
}
else if (!(str, "motor off", 9))))
{
digitalWrite(电机、低);
digitalWrite(领导、低);
mtr_on = 0;
延迟(1000);
以“在+发生= \”+ 91 xxxxxxxxxx \ " \ r ");//将x替换为mobile number
延迟(1000);
系列。println("Motor deactivated");//你想发送的短信
延迟(100);
以(char) 26);// CTRL+Z的ASCII码
延迟(1000);
}
else if (!(strncmp (str,“测试”,4)))
{
以“在+发生= \”+ 91 xxxxxxxxxx \ " \ r ");//将x替换为mobile number
延迟(1000);
系列。println("The System is Working Fine.");//发送短信
延迟(100);
以(char) 26);// CTRL+Z的ASCII码
延迟(1000);
}
}
//---------------- 项目由R.Girish ------------//
您必须将代码与收件人的10位移动电话号码放在一起。
以“在+发生= \”+ 91 xxxxxxxxxx \ " \ r ");//将x替换为mobile number
你需要把手机号码放在这5个位置的代码。
短信命令:
·你的短信必须以“/”开头,以“/”结尾
·启动/启动电机。
·/电机关闭/用于关闭电机。
·/test/用于测试电路。
以下是原型测试短信:
从截图中我们可以观察到以下几点:
·首先启动电机,电路响应确认。
·电机失活,电路得到应答。
·再次激活电机,拔下传感器,模拟干转情况,电路关闭泵,回复泵干转确认。
·最终发送测试短信,电路回复“System is Working Fine”。
我建议在水泵几米后安装水流传感器。
这就是基于GSM的泵干转防喷器。
现在让我们来看看没有GSM的简单水泵干转防喷器,这可能是两者中比较容易的一个。
线路图:
这里没有太多要解释的,只要按原理图接线就行了。电源可以是一个9V的壁适配器,至少500ma或在基于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 input = A0;
Const int test = 6;
const int button = A1;
const int LED = 8;
Const int马达= 9;
无效的设置()
{
Serial.begin (9600);
pinMode(输入,输入);
pinMode(测试、输出);
pinMode(领导、输出);
pinMode(电动机、输出);
analogWrite(测试,100);
digitalWrite(按钮、高);
}
无效循环()
{
if (digitalRead(button) == LOW && mtr_on == 0)
{
系列。println(“运动激活”);
digitalWrite(领导、高);
digitalWrite(电机、高);
For (i = 0;我< 20;我+ +)
{
延迟(1000);
}
mtr_on = 1;
}
if (digitalRead(button) == LOW && mtr_on == 1)
{
系列。println(“电机失效”);
digitalWrite(领导、低);
digitalWrite(电机、低);
mtr_on = 0;
延迟(1000);
}
If (mtr_on == 1)
{
X = pulseIn(input, HIGH);
Y = pulseIn(input, LOW);
时间= X + Y;
frequency = 1000000 / Time;
如果(isinf(频率))
{
系列。println(“演练关闭”);
digitalWrite(电机、低);
digitalWrite(领导、低);
mtr_on = 0;
而(真)
{
digitalWrite(领导、高);
延迟(500);
digitalWrite(领导、低);
延迟(500);
}
}
}
}
//-------------------------- 项目由R.GIRISH ------------------------//
以上就是两种设计的总结。
如果你有任何关于这个基于SMS的泵控制器与自动干运行关闭电路的具体问题,请在评论部分表达,你可能会收到一个快速的答复。
先生,我可以用倍压器从15v或12v变压器给35v直流供电吗?请给我d倍压器的电路图,我想在这种情况下使用。tnx
无线,是的,你可以通过使用下面链接中解释的电路来实现:
//m.addme-blog.com/?s=voltage+doubler
谢谢你的回复,先生,但是请告诉我,如果我想用它从12v或15v变压器供电到35v, d值是c1, c2, c3 d1, d2在555倍压器以上。
C1 = 0.1uF, C2, C3 = 100uF/25V, D1, D2 = 1N4007
帮我,先生,我要短信和电话控制,自动干燥关闭的三相水泵我是农民,我在尝试这个项目,我自己的农场,先生,请帮助我
你好,Rushikesh,你可以使用相同的电路和代码,并为你的三相电机建立它。
你需要实现的唯一改变是:
用TIP122代替BC548,用三个30安培继电器并联(线圈并联)代替单个继电器,1N4007可以是所有3个线圈并联的一个普通二极管。
在这之后,你可以将继电器的3个独立触点与三相电机的3根导线连接起来。
或者,你可以用一个TTTP继电器或一个三投三触点继电器(30安培)替换继电器
我想学习代码arduino UNO板我最近购买。这是我死前想做的事。我80岁了。所以如果你能帮你最好快点。提前表示感谢。
我希望我能教你,但是我自己在Arduino的学习阶段,所以不能提供太多的帮助,但如果可能,我将尝试发表一个相关的帖子,将帮助了解Arduino更容易的所有感兴趣的读者像你
感谢。上帝保佑,Fali
你好先生,
是否有其他方法可以检查泵是否处于干燥状态。我听说很少有工业干转传感器在泵正常和干转状态下计算电压差或安培差。
嗨,Madhav,在我看来,检查安培差是最好和最可靠的方法,另一种方法是监测电机温度
谢谢你的重播,长官
如何监控同样的,我的意思是我们是否可以输入电流放大器馈电到arduino并分析它采取行动。
先谢谢你。
Madhav,通过无线方式监控它可能会非常复杂,但是可以安排电机自动关闭,并发送短信到你的手机。
我已经连接了所有的连接,但电机一给CKT I供电就启动(继电器连接正确吗,我认为它应该到n/o)
请换掉继电器触点,先用灯泡检查一下,如果一切正常,就可以接通实际负载了。