在本文中,我们将使用Arduino构建一个基于GSM的LPG泄漏短信报警电路,当LPG气瓶泄漏或阀门关闭不当导致泄漏时,通过短信提醒接收者和周围的人。
使用MQ-135作为传感器
我们将使用MQ-135空气质量传感器检测空气中LPG气体的上升。
如果你不太熟悉MQ-135传感器,请查看这篇文章,它解释了所有关于传感器MQ-135的基础知识:
液化石油气气瓶每天为成千上万的家庭提供食物,有些可能从公司或政府管道连接液化石油气。我们总是低估燃气泄漏/爆炸所造成的损害,可能是因为我们偶尔/很少在报纸上看到它们。
我们必须承认,一个满的或接近空的LPG气瓶不亚于一个炸药。如果我们有意或无意地处理错误,就会导致灾难。
大部分事故是由于液化石油气气瓶或气灶的阀门泄漏造成的。这是因为,用户可能会忘记正在做饭的食物,而进入家庭/其他家务。由于灶台周围的液体,火焰熄灭。
液化石油气(LPG)不断流出,最终有毒气体漂浮在房间里,微小的冲击,甚至是静电荷,都有可能爆炸。
如果气瓶和灶台维护不好,也可以模拟类似的情况。橡胶管是最脆弱的部分,那里的针孔间隙足以让气体从钢瓶中逸出。
液化石油气本身没有任何/微弱的气味,液化石油气生产商添加了一种气味剂,我们可以通过气味感觉到。但是,每个人都有繁忙的生活,当泄漏发生时,我们无法在现场。因此,我们将在厨房里放置一个人造鼻子(MQ-135传感器)。
当它检测到液化石油气并超过预先设定的阈值水平时,它会发出哔哔声并发送短信提醒用户。
注意:MQ-135能够检测烟雾和空气中的其他化学物质。传感器无法区分它们,所以如果设置发出哔哔声并发送短信警告,你可以假设厨房/房间有问题。
可能是食物烧焦或液化石油气泄漏,甚至是火灾。简单地说,我们可以说这是一个多功能警报系统。
设计:
LPG泄漏短信警报电路相当简单,Arduino初学者友好。大脑像往常一样是arduino,每秒钟分析传感器读数并做出决定。GSM modem,用于向接收人号码发送短信警报。蜂鸣器是用来提醒煤气泄漏区域周围的人的。你甚至可以用继电器代替蜂鸣器。
线路图
传感器加热器线圈采用外置电源。IC7805的输入电压必须高于8伏。GSM modem必须从其直流插座供电,而不是由arduino供电。
外部电源、GSM modem和arduino之间建立接地连接。使用有效的SIM卡,并确保你的SIM卡有可用的短信计划。
原型形象:
使用和测试说明:
为了测试的目的,我们需要串行显示器,一旦校准完成,您可以从外部电源供电arduino。
不要使用电池作为主要电源,它从电源中汲取几百毫安,当传感器低于最佳温度时,它会发出错误警报。然而,您可以使用电池作为备份电源与尖锐的截止电压。
当用户打开电路时,需要3分钟来获得传感器的最佳温度,直到那时电路是无效的。我们可以从连续监视器上看到。它显示“传感器等待最佳温度”。
一旦传感器达到最佳温度水平,设置就会向接收电话号码发送测试消息。一旦你收到它,你可以认为GSM调制解调器工作正常。
它开始在串行监视器上显示一些数字,这是来自传感器的电压水平。空气污染越严重,印出来的值就越高。
在设置阈值之前,您应该了解这些值。例如:如果你正在阅读300年到350年之间,你应该在程序中设置阈值,两次读数的价值系列显示器,上面说600例(可以设置从0到1023),它不应该错误触发由于小房间的空气污染内容的变化,两倍或更高的价值优先。
现在拿一个雪茄打火机靠近气体传感器,让气体泄漏,但不要点燃它。读数应该很高,应该发送短信警告和蜂鸣器开始哔哔。
不要将传感器直接放置在烹饪区域上方,因为传感器容易被腐蚀,由于热食物颗粒的排放,传感器读取垃圾值,并发送错误的短信警报。
程序代码:
//-------------- 项目由R.Girish ---------------//
# include < SoftwareSerial.h >
SoftwareSerial gsm (9 8);
输入int = A0;
int输出= 7;
int th = 600;/ /设置的阈值温度
unsigned long A = 1000L;
unsigned long B = A * 60;
unsigned long C = B * 3;
unsigned long D = B * 30;
无效的设置()
{
Serial.begin (9600);
pinMode(输出,输出);
digitalWrite(输出、低);
系列。println("传感器等待最佳温度");
延迟(C);
系列。println(“发送测试短信……”);
gsm.begin (9600);
gsm.println(“+ CMGF = 1”);
延迟(1000);
gsm.println(“在+发生= " + 91 xxxxxxxxxx“r”);//将x替换为手机号码
延迟(1000);
gsm。println("LPG leak, test SMS");//您要发送的短信
延迟(100);
gsm.println((字符)26);// CTRL+Z的ASCII码
延迟(1000);
系列。println(“测试短信发送。”);
}
无效循环()
{
以analogRead(输入));
延迟(1000);
如果(analogRead(输入)> th)
{
延迟(5000);
如果(analogRead(输入)> th)
{
系列。println(“发送短信 ............");
以analogRead(输入));
gsm.println(“+ CMGF = 1”);
延迟(1000);
gsm.println(“在+发生= " + 91 xxxxxxxxxxx“r”);//将x替换为手机号码
延迟(1000);
gsm。println("Warning: LPG gas leak detected");//要发送的短信
延迟(100);
gsm.println((字符)26);// CTRL+Z的ASCII码
延迟(1000);
系列。println(“短信发送。”);
digitalWrite(输出、高);
延迟(B);
延迟(B);
digitalWrite(输出、低);
延迟(D);
}
}
}
//-------------- 项目由R.Girish ---------------//
注意:用你自己的值替换th=600。
int th = 600;/ /设置的阈值温度
将x替换为收件人的电话号码。您需要将接收人的电话号码放在程序中的两个位置。
gsm.println(“在+发生= " + 91 xxxxxxxxxx“r”);//将x替换为手机号码
亲爱的赃物,
可以给我Sim900A连接到Arduino Uno的简单图吗?
对不起,威利,我还没有研究过,所以我对这个没有任何想法。
对不起,先生,你能解释一下arduino是如何工作的吗?你有电路做一个吗?
非常感谢你的反馈
很高兴你喜欢它们Noel,但是Arduino的文章是由另一个作者写的,我的专业是离散电子领域而不是Arduino,所以在这方面我不能帮助你。