โครงการ GSM Fire SMS Alert

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





ในบทความนี้เราจะสร้างระบบวงจรแจ้งเตือนไฟไหม้ GSM โดยใช้เซ็นเซอร์ Arduino และ DHT11 ซึ่งจะแจ้งเตือนผู้ใช้ทางข้อความ (SMS) เกี่ยวกับอันตรายจากไฟไหม้ภายในสถานที่ที่ติดตั้ง

ใช้เซ็นเซอร์ DHT11

เรากำลังใช้ เซ็นเซอร์ DHT11 สำหรับการตรวจจับอุณหภูมิที่เพิ่มขึ้นผิดปกติในพื้นที่ เราสามารถตั้งค่าอุณหภูมิเกณฑ์ในโปรแกรมได้อย่างแม่นยำหากอุณหภูมิสูงกว่าเกณฑ์ที่กำหนดไว้โมเด็ม GSM เริ่มส่ง SMS แจ้งเตือน ถึงผู้รับ



มันทำงานอย่างไร

การตั้งค่าวงจรแจ้งเตือนไฟไหม้ระบบ GSM ประกอบด้วย 3 ส่วนคือเซ็นเซอร์ Arduino ซึ่งเป็นสมองของโครงการและโมเด็ม GSM ที่ส่ง SMS แจ้งเตือน

การเดินสายของการตั้งค่าเหมือนกับแบบอื่น ๆ โครงการที่ใช้ระบบ GSM ซึ่งกล่าวถึงในเว็บไซต์นี้ ข้อแตกต่างเพียงอย่างเดียวคือการเพิ่มเซ็นเซอร์ DHT11 ให้กับ Arduino



TX ของ GSM เชื่อมต่อกับพิน # 9 ของ Arduino และ RX ของ GSM เชื่อมต่อกับพิน # 8 ของ Arduino และการเชื่อมต่อกราวด์กับกราวด์ก็เชื่อมต่อด้วย การเชื่อมต่อพลังงานและข้อมูลของเซ็นเซอร์ได้รับการปรับให้เหมาะสมเพื่อลดความแออัดของสายไฟขณะสร้างต้นแบบ

โปรดสังเกตการเชื่อมต่ออย่างระมัดระวังและใส่เซ็นเซอร์จาก A0 ถึง A2 ในทิศทางที่ถูกต้องตามภาพประกอบด้านล่าง

การกลับทิศทางของเซ็นเซอร์จะให้“ NO DATA” บนจอภาพอนุกรม หากการวางแนวย้อนกลับเป็นเวลานานอาจทำให้เซ็นเซอร์เสียหายได้ ดังนั้นโปรดระมัดระวังเกี่ยวกับการเชื่อมต่อเซ็นเซอร์

นี่คือต้นแบบของผู้เขียนที่สมบูรณ์:

จ่ายไฟโมเด็ม GSM ด้วยแหล่งจ่ายไฟภายนอกเสมอ ก อะแดปเตอร์ไฟ 9V 500mA จะเพียงพอสำหรับโมเด็ม GSM ไม่จำเป็นต้องใช้จอภาพอนุกรมสำหรับโครงการนี้เนื่องจากเป็นโครงการแบบสแตนด์อโลน เราต้องการมอนิเตอร์แบบอนุกรมในขณะทดสอบต้นแบบเท่านั้น

ทำ ระบบ DC UPS แผนผังมีอยู่ในเว็บไซต์นี้และพยายามทำให้ปุ่มเปิดปิดสามารถเข้าถึงได้ง่ายนอกแชสซีของโครงการของคุณเพื่อให้โมเด็ม GSM สามารถเปิดได้หลังจากไฟดับชั่วครู่

ปุ่มเปิดปิดภายนอกสามารถทำได้โดยการบัดกรีสายไฟจากหมุดของปุ่มเปิด / ปิดบนโมเด็ม GSM DC UPS จะลดความจำเป็นในการเปิดโมเด็ม GSM หลังจากไฟดับทุกครั้ง มันให้คุณสมบัติแบบเสียบแล้วลืม ตอนนี้เรามาดูกันว่าฟังก์ชันการตั้งค่าทั้งหมดเป็นอย่างไร

ในกรณีที่ไฟไหม้อุณหภูมิห้องจะเพิ่มขึ้นอย่างรวดเร็วในช่วงสั้น ๆ เซ็นเซอร์มีความสามารถในการวัดแบบ 0 ถึง 50 องศาเซลเซียส

เมื่ออุณหภูมิสูงกว่าค่าเกณฑ์ที่ตั้งไว้ในโปรแกรม (ภายใน 0 ถึง 50) จะส่ง SMS แจ้งเตือนว่า“ Fire alert: 45.00 องศาเซลเซียส” 45 องศาเซลเซียสคืออุณหภูมิของห้องในระหว่างการส่ง SMS อุณหภูมิจะสูงเกิน 100 องศาเซลเซียสภายในไม่กี่นาทีหลังจากเกิดอุบัติเหตุไฟไหม้ การแจ้งเตือนทาง SMS สองรายการจะถูกส่งไปซ้ำซ้อนในกรณีที่ข้อความที่ส่งล้มเหลว

หากเซ็นเซอร์ล้มเหลวหรือเซ็นเซอร์ถูกตัดการเชื่อมต่อจาก Arduino ข้อมูลจะถูกส่งไปยังผู้ใช้ทาง SMS สองครั้งโดยระบุว่า“ ไม่มีข้อมูลจากเซ็นเซอร์ / เซ็นเซอร์ถูกตัดการเชื่อมต่อ”

โปรแกรมหยุดทำงานเป็นเวลา 30 นาทีหลังจากส่ง SMS แจ้งเตือนไฟไหม้หรือเซ็นเซอร์ขาดการเชื่อมต่อ ตรวจสอบความผิดปกติอีกครั้งในอุณหภูมิห้องและการเชื่อมต่อสายเซ็นเซอร์หลังจากผ่านไป 30 นาทีหากมีอยู่ระบบจะส่ง SMS แจ้งเตือนอีกครั้งและรออีก 30 นาที

เมื่อการตั้งค่าทั้งหมดเสร็จสิ้นและเปิดเครื่องโมเด็ม GSM จะส่ง SMS ทดสอบว่า 'นี่คือ SMS ทดสอบจากโมเด็ม GSM' หากคุณได้รับข้อความนี้ไปยังหมายเลขผู้รับแสดงว่าโครงการของคุณทำงานได้ดี

โปรแกรม:

//--------------Program developed by R.Girish---------------//
#include
#include
SoftwareSerial gsm(9,8)
#define DHTxxPIN A1
dht DHT
int p = A0
int n = A2
int ack
int msgsend=0
int th=45 //set threshold temperature
unsigned long A = 1000L
unsigned long B = A * 60
unsigned long C = B * 30
void setup()
{
Serial.begin(9600)
gsm.begin(9600)
pinMode(p,OUTPUT)
pinMode(n,OUTPUT)
digitalWrite(p,1)
digitalWrite(n,0)
gsm.println('AT+CMGF=1')
delay(1000)
gsm.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
gsm.println('This is a test SMS from GSM modem')// The SMS text you want to send
delay(100)
gsm.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
void loop()
{
top:
msgsend=0
ack=0
int chk = DHT.read11(DHTxxPIN)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1
break
}
if(ack==0)
{
Serial.print('Temperature(°C) = ')
Serial.println(DHT.temperature)
Serial.print('Humidity(%) = ')
Serial.println(DHT.humidity)
Serial.println(' ')
delay(2000)
}
if(ack==1)
{
goagain:
msgsend=msgsend+1
Serial.print('NO DATA')
Serial.print(' ')
Serial.println('Sending SMS...... ')
delay(500)
gsm.println('AT+CMGF=1')
delay(1000)
gsm.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
gsm.println('No data from sensor/Sensor disconnected')// The SMS text you want to send
delay(100)
gsm.println((char)26) // ASCII code of CTRL+Z
delay(1000)
Serial.println('Message is sent ')
if(msgsend==2)
{
delay(C)
goto top
}
else
{
delay(10000)
goto goagain
}
}
if(DHT.temperature>=th)
{
doagain:
msgsend=msgsend+1
Serial.println('Sending SMS...... ')
gsm.println('AT+CMGF=1')
delay(1000)
gsm.println('AT+CMGS='+91xxxxxxxxx' ') // Replace x with mobile number
delay(1000)
gsm.println('Fire Alert:')// The SMS text you want to send
gsm.print(DHT.temperature)
gsm.print(' degree celsius')
delay(100)
gsm.println((char)26) // ASCII code of CTRL+Z
delay(1000)
Serial.println('Message is sent ')
if(msgsend==2)
{
delay(C)
goto top
}
else
{
delay(10000)
goto doagain
}
}
}
//--------------Program developed by R.Girish---------------//

หมายเหตุ: คุณต้องวางหมายเลขผู้รับ 3 ตำแหน่งในโปรแกรมซึ่งอธิบายไว้ในโปรแกรมว่า

('AT + CMGS = ' + 91xxxxxxxxx ' r') // แทนที่ x ด้วยหมายเลขโทรศัพท์มือถือ

•ตั้งอุณหภูมิเกณฑ์

int th = 45 // กำหนดอุณหภูมิเกณฑ์

ต้องตั้งอุณหภูมิเกณฑ์ให้สูงมากกว่าปกติ ความผันผวนของอุณหภูมิห้อง ตัวอย่างเช่น DHT11 มีความสามารถในการวัดสูงสุดที่ 50 องศาเซลเซียสดังนั้นจึงสามารถตั้งค่าอุณหภูมิเกณฑ์ได้ตั้งแต่ 45 ถึง 47 ค่าเกณฑ์สูงถูกตั้งค่าเพื่อไม่ให้ส่งการแจ้งเตือนทาง SMS ที่ผิดพลาดสำหรับการเปลี่ยนแปลงเล็กน้อยในอุณหภูมิห้อง

หากคุณมีข้อสงสัยหรือข้อสงสัยเพิ่มเติมเกี่ยวกับระบบวงจรแจ้งเตือนไฟ SMS GSM ที่กล่าวถึงโปรดอย่าลังเลที่จะแสดงความคิดเห็นที่มีค่าของคุณ




คู่ของ: วิธีการออกแบบวงจรฮีตเตอร์เหนี่ยวนำ ถัดไป: สำรวจวงจรอินเวอร์เตอร์ IC 555 ที่ดีที่สุด 6 รายการ