亲,“电路城”已合并升级到更全、更大、更强的「新与非网」。点击查看「新与非网」

本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于Arduino UNO的气体智能监控系统

发布时间:2021-04-20
分享到:

基于Arduino UNO的气体智能监控系统

发布时间:2021-04-20
分享到:

        该系统是基于Arduino UNO的气体智能监控系统。当气体发生泄漏时,蜂鸣器启动、红色LED发光、SMS发送给用户进行报警,并且气体值将始终显示在LCD上。

框图:

硬件部件:

  • Arduino UNO 
  • Seeed Grove-气体传感器(MQ2)      
  • Itead Gboard Pro 800 SIM800 GSM / GPRS模块3.3v ATmega2560 Arduino入门主板
  • LCD    
  • 蜂鸣器    
  • 5毫米LED:红色、绿色
  • 面包板    
  • 跳线   
  • 通孔电阻   
  • 电阻4.7、100欧姆

 原理图:

代码(Arduino的)

#include <LiquidCrystal.h>
LiquidCrystal lcd(2,3,4,5,6,7);
#include <SoftwareSerial.h>
 
SoftwareSerial mySerial(9, 10);
 
int gasValue = A0; //烟雾/气体传感器与arduino / mega的模拟引脚A1连接。
int data = 0;
int buzzer = 13;
int G_led = 8; //选择绿色LED的引脚
int R_led = 9; //选择红色LED的图钉


 
void setup()
{
  pinMode(buzzer,OUTPUT);
  pinMode(R_led,OUTPUT); //将红色LED声明为输出
  pinMode(G_led,OUTPUT); //将绿色LED声明为输出
randomSeed(analogRead(0));
mySerial.begin(9600); //设置GSM模块的波特率
Serial.begin(9600); //设置串行监视器(Arduino)的波特率
lcd.begin(16,2);
pinMode(gasValue, INPUT);
lcd.print (" Gas Leakage ");
lcd.setCursor(0,1);
lcd.print (" Detector Alarm ");
delay(3000);
lcd.clear();
}
 
void loop()
{
 
data = analogRead(gasValue);
Serial.print("Gas Level: ");
Serial.println(data);
lcd.print ("Gas Scan is ON");
lcd.setCursor(0,1);
lcd.print("Gas Level: ");
lcd.print(data);
delay(1000);
 
if ( data > 90) //
{
  digitalWrite(buzzer, HIGH);
  digitalWrite(R_led, HIGH); //打开LED。
  digitalWrite(G_led, LOW); //关闭LED。
SendMessage();
Serial.print("Gas detect alarm");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Gas Level Exceed");
lcd.setCursor(0,1);
lcd.print("SMS Sent");

delay(1000);
 
}
else
{
  digitalWrite(buzzer, LOW);
  digitalWrite(R_led, LOW);   //关闭LED。
  digitalWrite(G_led, HIGH); //打开LED。
Serial.print("Gas Level Low");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Gas Level Normal");

delay(1000);
}
 
lcd.clear();
}
 
void SendMessage()
{
Serial.println("I am in send");
mySerial.println("AT+CMGF=1");  //将GSM模块设置为文本模式
delay(1000); //延迟1000毫秒或1秒
mySerial.println("AT+CMGS=\"+91xxxxxxxxxx\"\r"); //将x替换为手机号码
delay(1000);
mySerial.println("Excess Gas Detected.");//您要发送的短信
delay(100);
mySerial.println((char)26); // CTRL + Z的ASCII码
delay(1000);
}

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论