在本文中,我们将构建一个火灾报警系统使用Arduino,LM35温度传感器和GSM模块。这个目标火灾探测器使用Arduino是在LM35温度传感器的帮助下感测环境的出现,如果检测到火灾(使用GSM模块),请将3 SMS警报存储在Arduino程序内的两个手机号码。

我们已经开发了一个非常好的教程如何将GSM模块与Arduino接口使用GSM模块发送/接收短信。将任何设备与微控制器接口是用该特定设备构建有用的系统或项目的第一步。在本教程中,我们将构建一个非常有趣的项目- a火灾报警系统,将短信发送到一组手机号码当火灾发生在特定位置时。我们见过很多典型消防报警项目它会发出警报或启动自动关闭机制。该火灾报警项目利用现代通信技术处理紧急情况。

GSM模块-买家指南- 你想买一个GSM模块吗?GSM模块有少数产品变体 - 如SIM900,SIM300,SIM800等。我们已创建此买家指南,以帮助您为项目需求选择合适的GSM模块。

基于短信的火灾报警系统的应用

1.基于短信的火灾报警系统在人类互动有限的偏远地区非常有用。这种系统在矿山、工业区、工厂等方面很有用。

2.夜猫子——我们都知道夜猫子晚上不睡觉。基于短信的火灾报警系统有助于监控地点,并在夜间发生火灾时发出警报。

3.快速关闭火灾–90%的火灾损失是由于缺乏早期火灾探测造成的。火灾袭击通常是无声的,只有当火灾蔓延到大面积时,人们才会知道火灾。基于SMS的火灾警报系统会立即向多个手机号码发出警报,因此可以快速采取补救措施。这有助于防止火灾事故造成的重大损害和损失。

注1:-同样的电路可以用来建立arduino温度报警系统——当温度高于或低于特定水平时,必须发送警报或打开蜂鸣器。

所以让我们到达电路和编码部分!

注2:-我想你已经知道怎么做了处理温度传感器LM35你知道怎么做GSM模块与Arduino.在继续之前,请阅读并学习这两个文章..

基于GSM的火灾报警系统使用Arduino电路图

基于GSM的Arduino火灾报警系统

电路图说明- arduino火灾探测器

本arduino火灾报警器的电路连接非常简单,易于理解和实现。如果你是一个初学者,阅读下面的教程来完美地掌握连接。

1.LM35温度传感器和Arduino- 用火传感器的arduino接口arduino lm35-阅读本教程,了解如何连接LM35和Arduino

2GSM模块和Arduino-阅读本教程学习如何使用Arduino和GSM模块发送短信

3.LCD和Arduino-阅读本教程了解如何连接16×2 LCD模块到Arduino

使用Arduino的火灾报警系统程序/代码

下面是监控火灾事故和监控关闭过程(火灾事故后应该发生的)的程序!

#包括#包括液晶显示器(12,11,5,4,3,2);软件序列mySerial(9,10);int传感器=A1;浮动温度读取、温度警报值、温度关闭值;int sms_计数=0,火灾设置;void setup(){pinMode(传感器,输入);mySerial.begin(9600);Serial.begin(9600);lcd.begin(16,2);delay(500);}void loop(){CheckFire();CheckShutDown()}void CheckFire(){lcd.setCursor(0,0);lcd.print(“Fire Scan-ON”);Temp_alert_val=CheckTemp();if(Temp_alert_val>45){SetAlert()//发送短信警报的函数}float CheckTemp(){temp_read=analogRead(sensor);//读取传感器输出(LM35的Vout)temp_read=temp_read*5;//将传感器读数转换为温度temp_read=temp_read/10;//添加小数点返回temp_read;//返回温度值(摄氏度)}void SetAlert(){while(sms_count<3)//要发送的sms警报数{SendTextMessage;//向GSM模块发送AT命令的函数}Fire_Set=1;lcd.setCursor(0,1);lcd.print(“火灾警报!SMS已发送!”);}void CheckShutDown(){if(Fire_Set==1){Temp_shutu val=CheckTemp();if(Temp_shutu val<28){lcd.setCursor(0,1);lcd.print(“火灾已关闭!立即安全”);SMS_count=0;Fire_Set=0;}}}void textmessage(){mySerial.println(“AT+CMGF=1”);//以文本模式延迟发送短信(2000);mySerial.println(“AT+CMGS=\”+919544xxxxxx\“\r”);//更改使用延迟的电话号码(2000);mySerial.println(“在新房间点火!”;//消息延迟的内容(200);mySerial.println((char)26);//停止字符延迟(5000);mySerial.println(“AT+CMGS=\”+919847xxxxxx\“\r”);//更改使用delay(2000)的电话号码;mySerial.println(“在新房间里开火!”;//消息延迟的内容(200);mySerial.println((char)26);//消息停止字符延迟(5000);sms_count++}

项目的重要方面

当我们开发火灾报警系统或这些关键系统时,我们必须记住的一个重要方面是真实的世界情景。一种“火”可以随时发生(24×7)。这意味着我们的系统必须时时刻刻监控24×7的火灾。如果你仔细研究这个程序,你会发现它在void loop()内部只有2个函数调用checkfire()CheckShutDown ()

checkfire()- 是监视火灾24×7的函数的功能。此功能提取通过LM35测量的温度并将其存储到变量上temp_alert_val.进行比较。将该温度值与的设定值进行比较45度摄氏.通常热带地区的室温在25摄氏度到30摄氏度之间。这将因大陆和地点而异。你必须通过测量安装现场的平均室温来改变这个比较值!

如果发生火灾,室温将超过45度(在几秒钟内),并有一个内部子程序SetAlert ()将被调用。SetAlert()是控制发送到程序中加载的每个手机号码的短信提醒数量的函数。发送短信警报的数量可以通过改变while循环的停止条件来改变。停止条件sms_count < 3——意味着3 SMS警报将发送到每个手机号码。如果您想发送5个警报,只需更改停止条件为sms_count<5 -明白了吗?发送短信的功能(使用AT命令)-SendTextMessage ()将被称为3倍如果短信提醒数是3.此函数sendtextmessage()将被调用多次作为程序中设置的号码SMS警报。

注意:-我们使用停止条件限制了短信提醒的数量。一旦发生火灾事故,并且已经发送了设定数量的短信提醒,系统将不再发送短信!系统认为它的工作通过发送短信结束了。人类必须来把火扑灭。发送警报后,系统将开始监控shutdown进程。一旦Fire被关闭,系统将重新激活其短信警报设置重置sms_count变量归零。

CheckShutDown ()-是监控火灾是否被关闭的功能。只有在发生火灾事故时,我们才需要使用这个功能。为了将条目限制在这个例程中的语句中,我们引入了一个变量Fire_Set.这个变量的状态将被设置为value1当发生火灾事故时(检查SetAlert()中的语句)。CheckShutDown()中的语句只会在值为火组==1.(如果没有,就没有火灾事故,我们不需要浪费时间执行ShutDown检查语句)。我们认为一旦室温恢复正常,火灾就已经停止了。所以如果我们的变量温度关闭值温度低于28度,我们认为火灾已经关闭,一切安全。我们开始我们的消防手臂监测再次与短信提醒活动!(我们重置Fire_Set变量和SMS_COUNT.变量回到零-这是正常房间状态的条件)

实施项目!

在此发布之前,我们已经在实验室中多次测试了这个项目和代码。我附上一张照片的最终输出如下。

基于GSM的火灾报警项目

如果你有任何疑问/疑问-发表在评论部分!

希望您已经成功地完成了一个带有短信提醒功能的arduino火灾报警器!这个项目很好,可以用arduino搭建一个家庭火灾报警系统。我们有更多的arduino项目供你尝试,它们列在下面!

首先,看看我们的Arduino项目集合 - 列出100+基于Arduino的项目。如果您对某些火灾,烟雾和天然气检测的项目感兴趣,我们可以走:

1.利用Arduino进行气体泄漏检测-是一个非常有趣的项目,用于检测液化石油气泄漏或其他类型的气体,如氢气、一氧化碳等的存在。使用MQ5、Arduino、GSM模块和蜂鸣器进行设计。

2.Arduino窃贼警报-是一个使用PIR传感器和Arduino的入侵警报系统。

3.Arduino数字温度计-使用Arduino制作带有液晶显示的温度计

4.Arduino温度记录仪- 使用Arduino和Log温度水平构建温度监视器

作者

104评论

  1. Dushyant

    这个项目需要一直连接到电脑上吗?

  2. Shakib

    嗨,这个项目和我的很相似。但是怎么可能加上警报器呢。
    请为警报器提供代码以及它如何兼容。
    谢谢你!

  3. 富尔

    我不能用我的GSM 900A模块在手机中获得任何Messga ..帮助

  4. 希恩

    您好,先生,您好!如果房主更改了电话号码怎么办?如何更改或编辑号码?用UI(应用程序)来改变数字怎么样?先生,我非常需要您对我们的项目的意见。

  5. 克里西亚

    嗨,先生

    我只是想知道这个设备是否也可以使用多种传感器。这样你就能确定起火的房间了。

  6. 以挪士

    你好,
    我使用LM35、GSM和Arduino共同设计了基于短信的温度监测系统。温度应该是30摄氏度。当高于或低于此值时,短信发送到我的手机。然后,我可以通过手机发送短信,将温度设置为30摄氏度。你能分享一下代码来应对这种情况吗?好心的。

  7. 内人

    我可以使用模糊逻辑设置警报温度范围...

  8. murima froduard

    嗨,我为在你的项目上工作感到自豪,但我是初学者,你能告诉我什么时候实施这个项目

  9. 威廉姆斯

    如何在这些程序中输入这些程序?

  10. 莫妮卡

    这个代码适用于孟加拉国吗?我们的国家代码是880。我已经买了SIMCOM SIM900的GSM模块,如果不使用GSM模块,我怎么显示“Fire scan - ON”的信息?如果我使用这个GSM模块,我需要更改代码内的任何东西吗?

  11. Zul

    你好…我想问一下,当传感器检测到热量后,液晶显示出“火灾警报,短信发送”,但当我把热量降低到<25,“火灾关闭!”现在安全”,没来。一种ny solution for that problem ? Thanks alot CIRCUIT TODAY

    • 乔乔

      您可以仔细检查该程序。如果对程序进行了任何更改,请确保程序流(控件)进入子程序以检查关闭。

  12. teja surendar reddy

    先生
    我的项目类似于你的项目,因为我正在做基于短信的车辆火灾报警,但我可以添加直流潜水泵到它来喷水吗

  13. 弗朗西斯·拉莫斯

    我使用的GSM和你的不一样,因为资金紧张
    所以我使用了没有屏蔽的SIM900A,我遇到了一个麻烦,因为GSM不发送任何信息,但两个组件工作良好,请尽快在截止日期前答复。

  14. 晚上好先生
    先生,我正在开发一个项目,是“使用Arduino和GSM模块的服务器室监控系统”,如果有以下因素的变化,可以向运营商发送短信:-
    1.温度变化
    2.湿度
    3.功率脉冲变化
    4.烟雾传感器

  15. JAGAN KANIPAKAM

    并提供减少方法请先生,即将像机器人一样停止火,使用这个GSM模块,通过另一个手机与短信

  16. JAGAN KANIPAKAM

    先生,请提供一个关于这个项目的视频描述,我对程序很困惑,我们用了不同的东西,比如温度检测器,GSM模块,LCD显示,每个都有不同的代码,我们需要把所有的程序代码合并到一起???????

    • 乔乔

      @jagan - 这是一个使用子程序开发的完整程序。子程序用于轻松开发和对程序的理解。您可以将其复制并粘贴到Arduino IDE中。然后烧掉它!

  17. 阿卡什

    我有gsm模块900A,代码与此模块不兼容。请告诉我们此项目必须使用哪个模块…..您在此项目中使用了哪个模块。。

  18. 阴暗的

    你能。请把密码发给我。接口pir传感器代替lm35

  19. 科瑞娜

    你在用arduino uno R3吗?

    • 乔乔

      是的

  20. 语bhoi

    我可以把LM35换成限位开关吗?我想连接多个限位开关,然后将在代码中有什么变化?>请帮

  21. 约翰保罗VIloria

    我们可以把lm35换成dht11, gsm sim900换成sim 800吗?

  22. Roldan称卡尔Beterbo

    我如何使用10k电位器?请指导. .
    电位器在预期输出中的什么位置?

    • 乔乔

      10K电位器用于调节LCD模块的对比度。

  23. 约翰•帕特里克•盖拉多

    jojo先生,我是一个十年级的学生,正在做一个激光报警项目,我可以用这个代码来做我们的激光报警项目吗?或者你知道激光报警器发送短信的代码吗?先生,我真的需要你帮助我们的项目。希望得到你的回复。

  24. Alsadig

    嗨,乔乔
    问候
    请帮助我想使用多个烟雾传感器在不同的位置使用一个程序来控制系统。

    谢谢

  25. Bharath

    当我把电路连接到Arduino上时,温度传感器就会被加热。

    • 乔乔

      @Bharath -你可能把传感器连接错了。检查LM35数据表,连接正确。

  26. manisha

    在火灾发生地点的同时,向消防车发送警报(.....)。这样他们就可以立即进行救援……实施起来怎么样?

    • 乔乔

      使用GPS模块定位。好主意

  27. 凯文RUTTO

    您好,请问可以在arduino上连接一个电磁阀来自动灭掉吗?,如果是,电磁阀将由arduino的5V供电吗?

    • 乔乔

      你可以连接一个泵或电磁阀或任何你想要的执行器。真正的问题是你不能直接将这些连接到arduino上。您只能从arduino发送一个命令来打开/关闭这些设备。为了给这些设备供电,你应该使用一个单独的电源(独立于arduino),在大多数情况下,你应该使用一个驱动电路来通过arduino正确地驱动这些设备。

  28. Tegegn拉

    感谢您的描述,希望您能通过gsm的C语言编程实现基于arduino的远程监控系统

    • 乔乔

      Arduino不需要C代码!!你可以很容易地用Arduino编程语言编写。这和用C写很相似。

  29. Uttam Dutta

    非常详细的文章,描述得很好,谢谢,
    关于这两点你能帮我一下吗
    除了短信提醒如果我想让我的手机连续响还需要做些什么改变,
    我如何接口数字输入信号给连续铃声

    • 乔乔

      @Uttam - 在命令中使用命令拨打电话,问题已解决。替换AT命令以将SMS发送到拨打电话。

  30. 默罕默德Hamzah

    这个电路对一个英国电话号码有效吗?

    • 乔乔

      电路和程序是独立于国家的。用你的国家代码更改程序中的手机号码。

  31. Salil

    我们可以为此系统添加两个传感器。烟雾和温度传感器?

    • 是的,您可以同时添加两个传感器,但为此,您还必须更改编程和电源。

  32. 斯利维迪亚

    我正在使用Arduino Uno进行垃圾监控,我正在使用GSM SIM900模块如何使用此GSM模块发送短信

  33. salil.

    您好,您可以告诉我们如何将MQ2传感器的代码添加到此现有程序?
    谢谢你!

  34. 阳光峨眉

    这是一个非常好的项目…请我需要一个全面的清单,所有的组件需要这个项目。谢谢你!

    • 乔乔

      @sunny emejuru - 请仔细查看电路图。它是一个LM35,Arduino,GSM模块和带有一些电阻的LCD模块!

  35. 巴桑特

    我已经按照你的电路图连接了所有的组件,并上传了你上面给出的程序,但在串行监视器中,它显示的是随机的温度值,如60,70和短信发送在室温内。这种情况只会发生在我打开GSM模块,如果我关闭GSM模块,串行监视器显示完美的温度如28,29…请帮助

    • 乔乔

      @BASANT -这可能是一个“地面”问题。你必须让所有的“地面”连接在某一点上是共同的。意思是Arduino, LM35, GSM Module, LCD的接地脚都应该连接到一个共同的接地轨上。明白了吗?

  36. rohit shukla.

    我有一个GSM模块900a和一个arduino,只是传感器是mq6
    铃声没响,帮我一下

    • 乔乔

      @Rohit–我们已经多次测试了此代码。我们也使用相同的代码构建火灾报警套件。因此,我们对其工作原理毫无疑问。您可能会遇到其他问题。

      • Akash.

        亲爱的乔乔

        你准备的这个项目很好,

        我的应用是不同的,我们有高压电机和水冷系统,现在如果冷却系统故障,我们想通过GSM发送电机温度“高”和“低”按摩,
        我想用NTC温度传感器,Arduino Uno和GSM模块
        你能帮我准备这个应用和NTC传感器连接的程序吗?

        谢谢

        • 乔乔

          嗨,阿卡什,

          您需要进行以下更改。

          1.高压电机需要单独的电路来驱动电机(需要驱动晶体管或集成电路)
          2.我们的程序是为LM35线性传感器而设计的。热敏电阻是非线性的。你必须相应地校准。

          如果您需要我们设计一个自定义电路+程序,请写信给我们-info@circuitstoday.com

  37. 乔纳森

    请给我一个水位传感器的设计,连接arduino发送短信到服务器电脑或手机。

  38. venny ribz

    好日子先生......我将在与你密切相关的项目上工作,我很难决定如何通过我的计算机收到Arduino-GSM盾牌的信息或我必须使用的设备。我们所提出的系统是一个火警系统,信息将被发送到手机和计算机。我们将安装一个烟雾传感器,GSM Shiled,Arduino在建立服务器时,服务器将距离酒店有1公里。
    希望你尽快回复。
    谢谢你!

    • 乔乔

      @venny – complex stuffs You can put the sensor in monitoring area along with arduino and gsm module. The challenge is giving output to a computer/server at 1 KM away. I think you can use internet based communication to achieve this. Send your message over internet from arduino and receive it on PC.

  39. jr。

    我可以在该项目上使用烟雾探测器吗?

    • 乔乔

      是的,你可以

  40. 尼莉莎

    如你想更改房屋住户的手机号码(如租来的公寓,如住户变更,手机短信提醒号码不设为永久),应如何处理?

    • 乔乔

      @Nerissa–为此,您必须通过与arduino接口的小键盘或发送至GSM模块中插入的sim卡的手机号码的SMS来收集手机号码。在这两种情况下,您都需要更改此程序。编程时需要一种新方法。断电时,必须连接内存以保存手机号码。

  41. 约翰·史蒂文madulin

    它会工作100%成功吗????谢谢!!

  42. Ridhwan

    美好的一天!我上传程序时遇到了问题。它说“CheckFire”没有在这个范围内声明。这是为什么呢?

    • 乔乔

      @Ridhwan -这是代码中的一个小故障。扫描和返工!

  43. zoni

    先生,我们怎么能把我的串行软件的目录包括进去?

  44. Shailaja.

    先生,我能知道这个项目的估计费用吗

  45. 海鲂

    你好,我有件事要问。如果我想用DHT11作为传感器,我应该如何更改代码?它是否使用相同的代码行" temp_read=analogRead(sensor); " ?谢谢先生

    • 乔乔

      @dory -你需要重做代码以适应DHT11

  46. jawad.

    先生,我可以在????这个项目中增加MQ2烟雾传感器吗

    • 乔乔

      是–您需要重新编写代码以适应MQ2输出

  47. ritik

    请问在哪里可以买到最便宜的
    你能不能做一个关于组装的视频

  48. rohit mishra.

    因为我是一个初学者hw我将开始构建我的adruino基于短信警报火灾报警系统。
    请把那个项目的结构和工作原理发给我

    • 乔乔

      @Rohit -这篇文章给出了一切…

  49. Hemant Kalra.

    上述电路在实际实施前能否在任何模拟器中进行模拟?

    • 乔乔

      @HEMANT - 如果您有Arduino和GSM模块,则可以比模拟更快地实现此项目

      • Prashant Chougule.

        我如何能阅读短信和使用它到程序作为命令在arduino uno。把程序样本发给我。

        • 乔乔

          @Prashant -参考AT命令从GSM模块读取短信。

  50. 杰西卡

    大家好,
    我正在使用和I2C液晶屏,并在代码中做了必要的替换,温度和警报信息显示在液晶屏上非常好,这意味着循环和大部分代码都工作得很好,只是短信不能发送到我的手机。还确保更改Tx和Rx的引脚,为我的Arduino是0和1,不知道什么可以出错。非常感谢您的帮助,谢谢!

    • 杰西卡

      此外,GSM/GPRS模块im使用的是从SIMCOM和UNOR3兼容

    • 乔乔

      @Jessica - 只需检查延迟是正确的。也有一些麻烦拍摄。确保命令是正确的!

  51. 达拉尼

    hiee !我有个疑问,我能不能把arduino uno换成arduino nano??如果我把它换成纳米,那么写uno的d prog会改变吗??

    • 乔乔

      @达拉尼

      检查纳米的硬件连接和引脚。相应地更改软件中的引脚。还要检查指令兼容性....

  52. 杰拉德

    先生,如果这个装置被放在居民区,比如寮屋区,它将如何确定它是否真的是一场大火,而不仅仅是一根香烟的烟雾,或者是没有那么危险的东西?谢谢你的帮助。

  53. bernadettedeles

    日安…先生,我只是想问…你用的是什么烟雾传感器?
    希望尽快得到你的回复。
    谢谢

    • 乔乔

      @bernadettedeles - LM35 -温度传感器

      • bernadettedeles

        好日子先生......我将在与你密切相关的项目上工作,我很难决定如何通过我的计算机收到Arduino-GSM盾牌的信息或我必须使用的设备。我们所提出的系统是一个火警系统,信息将被发送到手机和计算机。我们将安装一个烟雾传感器,GSM Shiled,Arduino在建立服务器时,服务器将距离酒店有1公里。
        希望你尽快回复。
        谢谢你!

  54. 卡米尔

    你好,先生,我想问一下,是否可以用PC代替你用的液晶显示屏?谢谢先生

    • 乔乔

      @Camille -您可以使用Arduino IDE的Serial Monitor在PC屏幕上显示消息/输出状态消息

      • 卡米尔

        美好的一天!只想问你用过什么烟雾传感器吗?
        谢谢

        • 乔乔

          @camille - 它不是吸烟传感器。我们使用了“温度传感器” - LM35

  55. 你好先生..我在这里问几个问题..我想知道为什么我的lcd屏幕没有显示任何输出,我的电路和你的一样..T_T
    谢谢先生

    • 乔乔

      @jee–如果您没有看到LCD背光灯打开(即LCD未通电)-您可以检查电源连接(Vcc至+5v、Vss至GND、LED至+5v和LED至GND)。如果背光灯打开且字符未显示,您可以调整电位计连接的Vee。

      • 约翰·史蒂文madulin

        我如何保证它能正常工作??

Baidu