在本文中,我们将使用Arduino和DHT11传感器构建一个GSM火灾报警电路系统,该系统将在安装的前提下通过短信(SMS)向用户发出火灾警报。
使用DHT11传感器
我们使用的是DHT11传感器用于探测周围地区的异常温度上升。我们可以在程序中精确地设置阈值温度,当温度超过设定的阈值时,GSM调制解调器开始发送警报短信到收件人。
怎么运行的
GSM Fire Alert电路设置由3个零件,传感器,Arduino组成,即项目的大脑和发送短信警报的GSM调制解调器。
设置的接线与其他相同基于GSM的项目这是在本网站讨论的。唯一的区别是将DHT11传感器添加到Arduino。
GSM的Tx连接到Arduino的Pin#9,GSM的RX连接到Arduino的Pin#8,接地连接也连接。传感器的电源和数据连接被优化,用于在原型设计时减少接线拥塞。
请仔细注意连接,并按照如下图所示的正确方向将传感器从A0插入A2。
反转传感器的方向会在串行监视器上给出“NO DATA”。如果长时间反向放置,可能会损坏传感器。因此,要注意传感器连接。
这是一个完成的作者的原型:
GSM modem必须使用外接电源供电。一个9V 500mA电源适配器将足够GSM调制解调器。串行监视器对这个项目不是强制性的,因为它将是一个独立的项目。我们在测试原型时只需要串行监视器。
做一个DC UPS系统此网站上提供的原理图,并尝试在项目的机箱外轻松访问电源按钮,使GSM调制解调器可以在短暂停电后开启。
外部电源按钮可以通过从GSM调制解调器上的电源按钮的引线焊接导线来制造。在每个电源故障后,DC UPS将减少在GSM调制解调器上电源的必要性。它给出了插头和忘记了一种特征。现在让我们看看整个设置如何运用。
如果发生火灾,在短时间内室内温度迅速上升,传感器具有从0到50摄氏度的测量能力。
当温度升高到程序中的预设阈值(0到50以内)时,它会发送短信警报“火警:45.00度Celsius”。45度摄氏度是送SMS期间房间的温度;在火灾事故发生后的几分钟内,温度将在几分钟内达到100摄氏度。如果其中一个已发送的消息失败,则两个SMS警报已发送冗余。
如果传感器失败或传感器与Arduino断开连接,则通过SMS发送给用户两次地发送给用户“没有传感器/传感器断开的数据”
在发送SMS警报的火灾或传感器断开后,该计划将停止30分钟。它在30分钟后再次检查室温和传感器线连接的异常,如果有的话,它再次发送短信警报并等待30分钟。
当整个设置完成并打开电源后,GSM modem会发送测试短信:“这是来自GSM modem的测试短信”,如果你收到该短信到接收号码,说明你的项目运行正常。
计划:
// -------------由r.girish开发的程序-------------- //
#include
#include
SoftwareSerial gsm (9 8);
#define dhtxxpin a1
dht dht;
int p = a0;
int n = a2;
int应答;
int msgsend = 0;
int th = 45;/ /设置的阈值温度
unsigned long a = 1000l;
unsigned long b = a * 60;
unsigned long C = B * 30;
void setup()
{
Serial.begin (9600);
GSM.BEGIN(9600);
PinMode(P,输出);
PinMode(n,输出);
digitalWrite (p, 1);
DigitalWrite(n,0);
gsm.println(“+ CMGF = 1”);
延迟(1000);
gsm.println(“+发生= \”+ 91 xxxxxxxxxx \ " \ r ");//将x替换为移动电话号码
延迟(1000);
gsm。println("This is a test SMS from GSM modem");//要发送的短信内容
延迟(100);
gsm.println((字符)26);// CTRL+Z的ASCII码
延迟(1000);
}
无效循环()
{
最佳:
msgsend = 0;
ACK = 0;
int chk = DHT.read11(DHTxxPIN);
开关(分)
{
案例DHTLIB_ERROR_CONNECT:
ack = 1;
打破;
}
如果(ack = = 0)
{
并同时“温度(°C) = ");
serial.println(dht.temperature);
Serial.print(“湿度(%)=”);
以DHT.humidity);
serial.println(“\ n”);
延迟(2000);
}
如果(ack = = 1)
{
再去一次:
msgsend = msgsend + 1;
serial.print(“无数据”);
并同时(“\ n \ n”);
serial.println(“发送短信...... \ n”);
延迟(500);
gsm.println(“+ CMGF = 1”);
延迟(1000);
gsm.println(“+发生= \”+ 91 xxxxxxxxxx \ " \ r ");//将x替换为移动电话号码
延迟(1000);
gsm.println(“来自传感器/传感器断开的数据没有数据”); //您要发送的SMS文本
延迟(100);
gsm.println((字符)26);// CTRL+Z的ASCII码
延迟(1000);
系列。println(“消息发送\ n”);
如果(msgsend = = 2)
{
延迟(C);
转到顶部;
}
别的
{
延迟(10000);
goto goagain;
}
}
如果(dht.temperature> = th)
{
doagain:
msgsend = msgsend + 1;
serial.println(“发送短信...... \ n”);
gsm.println(“+ CMGF = 1”);
延迟(1000);
gsm.println(“at + cmgs = \”+ 91xxxxxxxxx \“\ r”);//将x替换为移动电话号码
延迟(1000);
gsm.println(“Fire Alert:”); //您要发送的SMS文本
gsm.print(dht.temperature);
gsm.print(“程度Celsius”);
延迟(100);
gsm.println((字符)26);// CTRL+Z的ASCII码
延迟(1000);
系列。println(“消息发送\ n”);
如果(msgsend = = 2)
{
延迟(C);
转到顶部;
}
别的
{
延迟(10000);
goto doagain;
}
}
}
// -------------由r.girish开发的程序-------------- //
注意:您必须将收件人号码放在程序中的3个地方,在程序中描述为
(“AT + CMGS =”+ 91xxxxxxxxx \“\ r”);//将x替换为移动电话号码
•设置阈值温度
int th = 45;/ /设置的阈值温度
阈值温度必须设置为高,大于惯常房间的温度波动例如:DHT11具有50摄氏度的最大测量容量,因此阈值温度可以设置为45到47.设置高阈值,使其不会发送误报的短信警报以进行室温的小变化。
如果您对所讨论的GSM火灾短信警报电路系统有进一步的疑问或疑问,请不要犹豫,通过您的宝贵意见提出他们。
先生,今天我观察了一个非常有趣的事情......我用电视电缆和( - )连接到地球的LED灯泡()点...... LED在那里但不是那么明亮......()的更改还有( - ),( - )这里无所谓......我想你可以帮助我使用一个简单的电路来放大电压......这将是我的自由能源...... *这里的电视电缆意味着来自广播的电缆不是连接到电视的部分......我的意思是无需在电视上......谢谢先生。
Soumen,这不是自由能量,你用的是视频信号电压用于LED照明…它不能放大。
先生,请使用Arduino将您的DHT库发送GSM Fire SMS警报电路。我发现很难完成这个项目。请发送给double.jg.adz@gmail.com.谢谢
你可以从这个链接找到这个库:https://arduino-info.wikispaces.com/file/detail/dht-lib.zip.
我知道它不是免费能源.....我的意思是免费....谢谢先生……
请你把这个也做一模一样。电路里没有火警警报器,只有门警报器。谢谢你!
主席先生,在汇编程序期间,我收到错误
先生,我们在DHT库中发现一个错误,它是#include
嗨,拉胡尔,你需要添加库在你的Arduino IDE。只有这样,你的程序才会被编译。
您可以从这里下载:https://arduino-info.wikispaces.com/file/detail/dht-lib.zip.
主席先生,需要你的帮助..我该如何联系你?
好工作,先生,你能帮我设计一个8继电器电路,由一个(sim800l)控制,在我的安卓手机的帮助下。打开每个继电器关闭和在am SMS消息的意愿。
谢谢Lexcop,如果可能我们会尽力为您更新!
优秀的项目。他给我发了一个错误。这是标记我的错误。
退出状态1.
预期')'在字符串常量之前
谢谢,请现在检查,我已经更正了以下一行
\“+ 91”xxxxxxxxxx \ \ r”
“r”附近的斜线奇怪地消失了,我现在把它写了出来。
请在这个项目上开始,我需要电路图,因为它没有显示在这里。我的邮件寻求帮助。mustaphataiye@gmail.com.
可能是您的Internet服务提供商的问题,尝试使用代理服务器访问网站,并查看是否有帮助......