我们发表了许多有趣的文章arduino项目喜欢基于GSM的火灾报警系统,直线跟踪机器人,基于RFID的门禁系统这一次,我们发布了一个非常有用的家庭应用程序-使用Arduino和GSM模块的气体泄漏检测器,带有SMS警报和声音警报.我们出版了液化石油气使用Arduino的传感器项目以及之前的MQ2传感器,用于感应液化石油气泄漏并发出声音警报。该项目还具有一个继电器系统,可在气体泄漏时打开或关闭特定设备(例如,我们可以在气体泄漏时关闭主电源以防止火灾)。
让我们开始我们的项目吧!
项目目标
- 检测气体泄漏(如液化石油气泄漏、丁烷泄漏、甲烷泄漏)或可使用MQ5传感器检测的任何此类石油基气体物质。
- 设置基于短信的警报机制,发送3条短信(3条警报消息)到2个指定的手机号码(在arduino程序中输入)
- 气体泄漏时发出声音报警,气体泄漏得到控制后停止报警(大气中的气体含量在正常范围内)
- 通过16×2 LCD模块在LCD上显示状态。
让我们开始建设我们的项目-带有短信警报和声音警报的气体/液化石油气泄漏检测器!。
我建议您在构建这个项目之前阅读以下教程!
1.将MQ5传感器接口到Arduino-教你如何将MQ5 LPG传感器接口到Arduino,并使用MQ5模块的模拟或数字出针读取值。
2.GSM模块与Arduino接口–教您如何将GSM模块连接到Arduino,并使用AT命令发送/接收文本消息。
GSM模块–买家指南-你想买GSM模块吗?GSM模块有少量的产品变体,如SIM900, SIM300, SIM800等。我们创建了这个买家指南,以帮助您选择合适的GSM模块为您的项目需求。
电路图- Arduino和GSM模块的气体泄漏检测器
如图所示组装电路!重要连接说明如下。组装电路的照片如下所示。
注:-这张照片里没有说话人。无论如何,你可以按照电路图把扬声器连接到arduino的8脚上。
程序/代码
#include#include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);SoftwareSerial mySerial(9、10);int传感器= 7;int议长= 8;int gas_value、Gas_alert_val Gas_shut_val;int Gas_Leak_Status;int sms_count = 0;void setup() {pinMode(sensor,INPUT);pinMode(扬声器、输出);mySerial.begin (9600); Serial.begin(9600); lcd.begin(16,2); delay(500); } void loop() { CheckGas(); CheckShutDown(); } void CheckGas() { lcd.setCursor(0,0); lcd.print("Gas Scan - ON"); Gas_alert_val=ScanGasLevel(); if(Gas_alert_val==LOW) { SetAlert(); // Function to send SMS Alerts }} int ScanGasLevel() { gas_value=digitalRead(sensor); // reads the sensor output (Vout of LM35) return gas_value; // returns temperature value in degree celsius } void SetAlert() { digitalWrite(speaker,HIGH); while(sms_count<3) //Number of SMS Alerts to be sent { SendTextMessage(); // Function to send AT Commands to GSM module } Gas_Leak_Status=1; lcd.setCursor(0,1); lcd.print("Gas Alert! SMS Sent!"); } void CheckShutDown() { if(Gas_Leak_Status==1) { Gas_shut_val=ScanGasLevel(); if(Gas_shut_val==HIGH) { lcd.setCursor(0,1); lcd.print("No Gas Leaking"); digitalWrite(speaker,LOW); sms_count=0; Gas_Leak_Status=0; }}} void SendTextMessage() { mySerial.println("AT+CMGF=1"); //To send SMS in Text Mode delay(1000); mySerial.println("AT+CMGS=\"+919495xxxxxx\"\r"); // change to the phone number you using delay(1000); mySerial.println("Gas Leaking!");//the content of the message delay(200); mySerial.println((char)26);//the stopping character delay(1000); mySerial.println("AT+CMGS=\"+918113xxxxxx\"\r"); // change to the phone number you using delay(1000); mySerial.println("Gas Leaking!");//the content of the message delay(200); mySerial.println((char)26);//the message stopping character delay(1000); sms_count++; }
使用打火机使用“煤气泄漏”-参考照片
计划的重要方面
在开发气体泄漏检测仪等关键系统或火灾报警系统等类似系统时,需要持续监控传感器参数(24×7)。因此,我们的系统必须持续监测“气体泄漏”。这是通过连续扫描传感器输出(MQ5的数字输出)来实现的ScanGasLevel ()子例程。如果您仔细研究这个程序,就会发现主函数loop()只有两个被反复调用的子例程——CheckGas()和CheckShutDown()。CheckGas() -是一个子程序,它连续扫描传感器输出,并在任何时间点发生“气体泄漏”时采取行动。CheckShutDown()是一个子程序,用于监视关闭过程并检查房间的状态是否恢复到正常状态(没有气体泄漏)。
CheckGas ()-是监测气体泄漏发生的功能24×7。该函数获取MQ35测量的气位(通过使用digitalRead()命令从MQ35读取数字)并将其存储到变量中Gas_alert_val进行比较。如果没有“气体泄漏”-传感器将会高.如果在任何时间点发生“气体泄漏”,输出的传感器将立即变为低的地位。该声明如果(Gas_alert_val = =低)检查这一点,如果发生气体泄漏,则检查内部子例程SetAlert()将被调用。
SetAlert()是控制发送到程序中加载的每个手机号码的SMS警报数量的功能。可以通过更改while循环的停止条件来更改发送的SMS警报数量。停止条件sms_计数<3——意味着3短信提醒将发送到每个手机号码。如果您想发送5个警报,只需更改停止条件为sms_count<5 -明白了吗?发送短信的功能(使用AT命令)-SendTextMessage ()将被称为3倍如果短信提醒数是3.这个函数SendTextMessage()将被调用的次数与程序中设置的短信警报的次数一样多。除了发送短信报警外,该子程序还控制声音报警。使用命令digitalWrite(speaker,HIGH)来触发警报——这将激活连接在arduino引脚8的扬声器。
注:-我们使用停止条件限制了短信提醒的数量。一旦发生煤气泄漏,并且已经发送了设定数量的短信提醒,系统将不再发送短信!系统认为它的工作通过发送短信结束了。人类必须来解决气体泄漏问题。发送警报后,系统将开始监控shutdown进程。一旦气体泄漏被消除,系统将自动重新激活其短信警报设置重置sms_count变量归零。
应用“煤气泄漏”后的输出如图所示!
下面是输出的视频演示!
CheckShutDown()-是监控煤气泄漏是否被关闭的功能。只有当“煤气泄漏”发生时,我们才需要使用这个功能。为了将条目限制在这个例程中的语句中,我们引入了一个变量气体泄漏状态.这个变量值将被设置为value1当发生气体泄漏时(检查SetAlert()中的语句)。CheckShutDown()中的语句只会在值为气体泄漏状态==1.(如果没有发生气体泄漏,我们就不需要浪费时间执行ShutDown检查语句)。我们认为一旦室温恢复正常,“气体泄漏”就被消除了。所以如果我们的变量煤气关断阀回到HIGH状态,我们认为气体泄漏已经消除,环境是安全的。子例程有停止气体泄漏报警的语句(参考语句- digitalWrite(speaker,LOW) -切断arduino引脚8的供应并停止声音报警),当气体泄漏完全消除时(Gas_shut_val == HIGH状态)将执行该语句。我们开始我们的气体泄漏监测再次与短信提醒活动!(我们重置气体泄漏状态变量和sms_count变量回到零-这是必要的变量条件监测气体泄漏再次和发送警报短信,如果气体泄漏重复。
这里是一个项目的幻灯片演示!
63评论
如果我不使用LCD,但使用了arduino uno、mq5、gsm模块sim900和蜂鸣器,该怎么办?是否可以从gsm模块接收短信?或者应该使用其他编码?
先生,我按电路图放了蜂鸣器,但它总是发出声音而感觉不到任何气体。如何纠正这个问题。我s there any problem in programme code.please send me sir.
你能告诉我如何组装所有组件吗?请在项目截止日期前尽快回复
您好,先生,这个项目很好,先生,我想知道arduino是否可以用pic16f微控制器来替换,如果可以,请问我该怎么做?
我可以使用gsm sim900A吗?
mySerial.begin (9600);
在这一行9600是什么意思?
9600表示微控制器的速度,即微控制器以每秒9600字节的速度发送和接收信息
先生,我能买这个项目吗?做这个项目需要多少钱
先生,我能买这个项目吗?做这个项目需要多少钱
这太棒了!家里再也不会因为煤气泄漏而发生火灾了!Weldone Adnin。
我需要使用atduino在160×16的滚动点矩阵上工作,先生,你能帮我做这个项目吗?
你好,先生,你能帮我吗?我用的是gsm模块sim 900A..我可以使用这个编码吗?或者我需要其他编码..请帮帮我,先生。Tq
如果我不想包括lcd显示器,我应该对程序做什么?
我们要用GSM 300板和mq2气体传感器做什么项目,你能帮我吗
该电路可使用9v电池连接。
你好,我的项目和你一样,但是我使用arduino,通过电报发送通知。你有arduino的编码可以连接电报吗?
我使用MQ 9,但它没有响应。屏幕总是显示没有气体泄漏。然后,我使用MQ 5,它也是一样的。请给我一个建议。
我的项目工作,但我没有收到短信,所以你能帮我吗?
乔乔,我在遵循你的计划步骤。它是有帮助的。我也想加电磁阀来控制供气。那么,这段代码会有什么变化呢?你能帮我吗?
这个程序对arduino uno有效吗?
是的。电路和代码采用Arduino Uno进行开发。
我想加个排气风扇店那个项目怎么加,那个风扇的代码在哪里,用代码指导我先生,当煤气泄漏时,检测风扇是自动打开的,下来后风扇是关闭的
我想在那个项目中添加排气扇,我做什么,我在哪里编码,打开风扇以减少房间里的空气,建议我做什么,先生
我们如何通过这个项目来控制一个设备?比如关掉怀疑有煤气泄漏的装置。
我们在arduino连接的所有5v电源都是5v,对吗?
你好
短信只发送到第一个号码。怎么让它也变成第二个数字呢
我可以并联多个传感器吗?这怎么可能?
是的。你可以。使用Arduino的免费引脚。
我在arduino上传的所有程序/编码?
先生,你能给我们推荐一些免费的胸针吗?哪一种适合用于气体泄漏检测......
非常有帮助,任何项目新手都容易理解。
谢谢你!
谢谢你给了这么漂亮的项目
我也在做同样的项目,先生,但我需要你帮助我,请我想要一个prg自动天然气预订和天然气lekg检测器。
您好…您使用了哪个gsm模块以及如何对gsm调制解调器进行编程…请回答
采用SIM900 GSM模块。在这里阅读更多-//www.snellingtn.com/gsm-and-gprs-module-price-guide
我应该在哪里得到这个项目的报告。。???
先生,我做过同样的项目,但它不工作。即使液晶显示器也没有电源
请帮助我知道如何上传代码ARDUINO,您能否让我知道这里使用的组件名称,先生。因为我对做这个项目非常感兴趣。是的,如何上传程序,应用程序用来做它。
我试过这个,效果很好。我还添加了一个solneoid阀门用于自动关闭,只是用阀门替换了蜂鸣器。非常感谢!
我想用微控制器检测液化石油气,请如何
u plz可以帮助我吗?我已经按照上面的电路图运行,一切正常。我使用了上面给出的相同代码。我的气体被检测到,但主要问题是短信没有在我的手机上发送。如何做?plz帮助我有我的提交:(((((
我如何修改这个代码,以使用模拟出的气体传感器,然后显示气体值在lcd上的实时,然后最后,当有一个气体泄漏,它打开排气风扇以及扬声器和短信?
谢谢你!
您好!我对做这个项目很感兴趣,如果您已经回答了这个问题,我可能会错过它,但是您使用了什么编程应用程序来编写/运行代码,以便arduino可以执行它?
你好…请我尝试实施这个项目,但收到的短信是无限的。它会给无限的短信。请我如何才能停止。在我的情况下,我只需要一个提醒短信一次。
好的,项目 .......!!!,
我已经尝试使用我的mq6模块,但我的模块没有加热应用气体,请帮助我....
如果使用GSM屏蔽,会有什么不同?代码中必须写入哪些更改?会很有帮助的,提前谢谢你
将MQ2气体传感器的代码相同。谢谢提前
有必要改变传感器的ppm范围来检测…
该项目能否与基于gsm的火灾报警系统arduino项目相结合?因为我需要为我的最后一年项目提供所需的想法。
有人能帮我吗?这是我的密码。
# include
# include“SIM900.h”
# include“sms.h”
# include
/ / # include
# include
短信;
Boolean started = false;
字符缓冲区[160];
char smsbuffer [160];
charn[20];
/ / LiquidCrystal液晶(4、2、3、7、8、9);
int buttonState;
int lastButtonState = LOW;
长上次去BounceTime=0;
长去弹性=50;
Boolean st = false;
int蜂鸣器=12;
无效设置(){
/ /液晶。开始(16日2);
Serial.begin (9600);
如果(gsm.begin (2400))
{
开始= true;
}
如果(启动)
{
delsms();
}
短信。SendSMS(“+60142646978”,“Gas Sensor and GSM module activated”);
}
void循环(){
/ /液晶。setCursor (0,0);
//lcd.打印(“Detektor气体短信”);
int val = analogRead(A0);
val=map(val,01023,0100);
/ / lcd.setCursor (0,1);
/ /液晶。打印(“阿提拉·:”);
/ / lcd.print (val);
/ /液晶。打印(“%”);
//使用传感器检测的代码
If (val > 10) {
语调(蜂鸣器,800500);
延迟(1000);
圣= true;
}
Else st = false;
如果(st!=lastButtonState){
lastDebounceTime =米尔斯();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
如果(st!=按钮状态){
buttonState =圣;
if (buttonState == HIGH) {
PString str(缓冲区,sizeof(缓冲));
str.begin ();
str.print(“检测到气体!气体泄漏在”);
str.print (val);
str.print(“%”);
//字符串a=str;
sms.SendSMS(“+60142646978”,缓冲区);
}
}
}
//代码使用SMS lapor。
lastButtonState =圣;
Int pos = 0;
如果(启动)
{
pos = sms.IsSMSPresent (SMS_ALL);
如果(pos)
{
短信。(pos, n, smsbuffer, 100);
延迟(2000);
如果(!比较字符串(smsbuffer lapor))
{
PString str(缓冲区,sizeof(缓冲));
str.begin ();
str.print(“当前气体泄漏率”);
str.print (val);
str.print(“%”);
//字符串a=str;
sms.SendSMS(“+60142646978”,缓冲区);
}
delsms();
}
}
}
//删除短信Yang dihantar
void delsms()
{
For (int I = 0;我< 10;我+ +)
{
int pos = sms. issmpresent (SMS_ALL);
If (pos != 0)
{
if(sms.DeleteSMS(pos)==1{}else{}
}
}
}
我正在使用arduino uno、sim900模块、mq2气体传感器和蜂鸣器创建基于sms的气体传感器检测器。
我有两个选择:
1.mq2气体传感器检测并将结果通过短信发送到代码中设置的数字。
2.我们可以发送一个特定的字符串,以知道周围的气体百分比,并将结果发送到代码中的特定数字设置。
但我想将第二个选项更改为自动回复任何传入号码。我该怎么办?
先生,我对这个项目感兴趣,但我想使用单极步进电机与ULN2003A驱动器。所以我想当检测到气体泄漏时,步进电机逆时针旋转180度,关闭气体调节器。所以先生,我也需要为步进电机编程,以满足我的上述要求。请回复!
先生,我可以用Sim-900A或Sim-900D GSM模块来代替Sim-900吗?因为我们国家没有Sim-900 GSM模块。如果我使用Sim-900A或Sim-900D GSM模块而不是Sim-900,那么我也必须更改代码,还是Sim-900A和Sim-900D模块保持不变?请回复!谢谢你!
如何用伺服电机代替蜂鸣器
你好,这个小项目卖了吗?我可以买这个,因为我不知道如何使它..请发邮件给我。
tq操作
我如何合并温度传感器代码与烟雾探测器代码?
你好,
这是一个非常有趣的家庭安全项目。
谢谢,这个项目,,
拉梅什
@Ramesh–希望您使用arduino尝试了这个气体泄漏检测器项目!感谢您的反馈。
我已连接,但短信无法发送,请帮助我
这是工作……吗?如果我在8脚添加LED,那么没有感觉到液化石油气,它就会发光.......你能告诉我它是如何工作的.......吗请发给我详情....
Vanakam乔乔。这非常有用。我需要一个代码的液化石油气泄漏检测器arduino uno和Gsm与mq2传感器不使用lcd显示。请帮助我您的代码jojo
@bhavani–本文中已经给出了代码-//www.snellingtn.com/gas-leakage-detector-using-arduino-with-sms-alert
当您使用Digital Out MQ2时,代码没有太大的区别!您可以通过修改此代码轻松地自己完成它!
我正在使用mq4传感器,代码不能工作。它能感知气体,但味精不能发送给给定的不。现在PLZZ告诉我我现在必须做什么,或者请提供我新的代码
非常有用的项目,代码解释得很清楚
谢谢作者。
约伽拉哈
谢谢Yogaraj的赞美!你也可以在这里尝试我们其他的Arduino项目//www.snellingtn.com/arduino-projects-and-circuits-collection
这是工作……吗?如果我在8脚添加LED,那么没有感觉到液化石油气,它就会发光.......你能告诉我它是如何工作的.......吗