风筝
发表于: 2020-4-15 11:07:41 | 显示全部楼层

在本篇文章中,我们将学习如何使用GSM模块和Arduino设计一款带有SMS报警功能的气体泄漏检测器。我们将把Sim800 GSM模块以及MQ135气体传感器与Arduino进行连接。气体浓度值将显示在1602 LCD显示屏上。每当检测到过量气体时,SMS就会发送到指定的电话号码。


烟雾和气体泄漏检测器在检测建筑物中的烟雾或火灾中非常有用,因此重要的安全参数也是预防灾难的关键。过去,气瓶爆炸和意外起火对经济造成了很多伤害。当检测到烟雾或气体泄漏时,此电路将触发警报系统。该电路主要使用MQ135烟雾/气体传感器和Arduino来检测烟雾和气体泄漏。这款MQ135气体传感器对液化石油气、酒精和甲烷等敏感,它可以检测到汽车或维修站、储罐环境中存在危险的液化石油气泄漏。该传感器具有出色的灵敏度和快速的响应时间。该传感器还可以感应异丁烷、丙烷、LNG和香烟烟雾。如果LPG传感器检测到任何气体从存储泄漏,则此传感器的输出将变低。低信号由微控制器监控,并将信号发送至GSM模块,以将气体泄漏短信发送至用代码编写的手机号码。


您也可以使用SIM900或任何其他GSM模块代替SIM800。同样,您可以使用MQ2/MQ3/MQ5或其他气体/烟雾传感器代替MQ135。


所需的组件

●    Arduino Uno开发板

●    MQ135气体/烟雾传感器

●    1602 LCD显示屏

●    SIM800 / SIM900 GSM模块

●    面包板

●    9V电源适配器

●    连接导线


SIM800 GSM模块

SIM800是专为全球市场设计的四频GSM / GPRS模块。它适用于GSM 850MHz、EGSM 900MHz、DCS 1800MHz和PCS 1900MHz的频率。 SIM800具有GPRS多时隙12类/ 10类(可选),并支持GPRS编码方案CS-1、CS-2、CS-3和CS-4。 SIM800的尺寸仅为24 * 24 * 3mm,可满足用户应用程序(例如M2M、智能电话、PDA和其他移动设备)中几乎所有的空间需求。

Sim800-GSM-Module.jpg


SIM800具有68个SMT焊盘,并提供模块与客户电路板之间的所有硬件接口。 SIM800采用省电技术设计,因此在睡眠模式下的电流消耗低至1.2mA。 SIM800集成了TCP / IP协议和扩展的TCP / IP AT命令,这些命令对于数据传输应用程序非常有用。


主要特征

•    最多支持5 * 5 * 2键盘。

•    一个全功能的UART端口,可以配置为两个独立的串行端口。

•    一个USB端口可用作调试和固件升级。

•    音频通道,包括麦克风输入和接收器输出。

•    可编程的通用输入和输出。

•    一个SIM卡接口。

•    支持蓝牙功能。

•    支持一个PWM。

•    PCM / SPI / SD卡接口,只能同步访问一项功能。

•    电源3.4V〜4.4V

•    睡眠模式下的典型功耗为1.2mA

•    频段GPRS多时隙12类

•    支持SIM卡:1.8V、3V

•    串行端口:可用于数据流的AT命令

•    USB端口:可用作调试和固件升级


MQ-135烟气传感器

MQ-135气体传感器可感应诸如氨氮、氧气、酒精、芳族化合物、硫化物和烟雾之类的气体。 MQ-135气体传感器具有较低的电导率,可以清洁作为气体传感材料的空​​气。在大气中我们可以找到污染气体,但是气体传感器的电导率随着污染气体浓度的增加而增加。 MQ-135气体传感器可以实现检测烟雾、苯、蒸汽和其他有害气体。它具有检测不同有害气体的潜力。它成本低廉,特别适合于空气质量监测应用。

MQ135-Gas-Smoke-Sensor.jpg


MQ-135传感器是信号输出指示器指令。它具有两个输出:模拟输出和TTL输出。 TTL输出是低电平信号,可以通过微控制器上的IO端口进行访问。模拟输出是浓度,即电压增加与浓度成正比。该传感器寿命长,稳定性也好。


主要特征

•    高灵敏度

•    对氨、硫化物和苯有高敏感性

•    检测范围:10 – 300 ppm NH3、10 – 1000 ppm苯,10 – 300酒精

•    加热器电压:5.0V

•    尺寸:直径18mm,高17mm,引脚6mm高

•    长寿命和低成本


电路连接图

以下是使用GSM模块和Arduino制作的带有SMS报警功能的气体泄漏检测器的电路。如下图所示组装电路。

Circuit-Diagram.jpg

使用5V电源向MQ135传感器供电,并将其模拟引脚A0连接到Arduino的模拟引脚A0。


同样,使用9V/12V外部电源向GSM模块供电,并将Sim800调制解调器的Tx、Rx和GND引脚连接到Arduino。 因此,分别将Tx和Rx连接到Arduino的9号和10号引脚。


将LCD连接到Arduino的引脚7、6、5、4、3、2。 使用10K电位器调整对比度。


源代码/程序

以下是使用GSM模块和Arduino制作的带有SMS报警的气体泄漏检测器的源代码或程序。 复制此代码,然后使用Arduino IDE将其上传到Arduino开发板。

  1. #include <LiquidCrystal.h>
  2. LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
  3. #include <SoftwareSerial.h>

  4. SoftwareSerial mySerial(9, 10);

  5. int gasValue = A0; // smoke / gas sensor connected with analog pin A1 of the arduino / mega.
  6. int data = 0;

  7. void setup()
  8. {
  9. randomSeed(analogRead(0));
  10. mySerial.begin(9600); // Setting the baud rate of GSM Module
  11. Serial.begin(9600); // Setting the baud rate of Serial Monitor (Arduino)
  12. lcd.begin(16,2);
  13. pinMode(gasValue, INPUT);
  14. lcd.print (" Gas Leakage ");
  15. lcd.setCursor(0,1);
  16. lcd.print (" Detector Alarm ");
  17. delay(3000);
  18. lcd.clear();
  19. }

  20. void loop()
  21. {

  22. data = analogRead(gasValue);

  23. Serial.print("Gas Level: ");
  24. Serial.println(data);
  25. lcd.print ("Gas Scan is ON");
  26. lcd.setCursor(0,1);
  27. lcd.print("Gas Level: ");
  28. lcd.print(data);
  29. delay(1000);

  30. if ( data > 500) //
  31. {
  32. SendMessage();
  33. Serial.print("Gas detect alarm");
  34. lcd.clear();
  35. lcd.setCursor(0,0);
  36. lcd.print("Gas Level Exceed");
  37. lcd.setCursor(0,1);
  38. lcd.print("SMS Sent");
  39. delay(1000);

  40. }
  41. else
  42. {
  43. Serial.print("Gas Level Low");
  44. lcd.clear();
  45. lcd.setCursor(0,0);
  46. lcd.print("Gas Level Normal");
  47. delay(1000);
  48. }

  49. lcd.clear();
  50. }

  51. void SendMessage()
  52. {
  53. Serial.println("I am in send");
  54. mySerial.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
  55. delay(1000); // Delay of 1000 milli seconds or 1 second
  56. mySerial.println("AT+CMGS="+91900xxxxxxx"\r"); // Replace x with mobile number
  57. delay(1000);
  58. mySerial.println("Excess Gas Detected. Open Windows");// The SMS text you want to send
  59. delay(100);
  60. mySerial.println((char)26);// ASCII code of CTRL+Z
  61. delay(1000);
  62. }
复制代码

项目的工作过程

上载代码后接通电路电源后,LCD会以模拟数字显示气体含量值。 它将显示气体含量是正常还是过量的状态。 当气体水平超过时,它将显示SMS已发送状态。

1-1280x841_c.jpg

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 714 | 回复: 1501



手机版|

GMT+8, 2024-12-22 02:26 , Processed in 0.052656 second(s), 8 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表