文/李梅 蔡武德
該系統組成如圖1所示,以Arduino 單片機作為主控芯片,外圍包含短信模塊、顯示模塊、傳感器模塊、網絡拓展模塊。紅外檢測器負責人體紅外信號的收集并將之傳輸到Arduino 上分析判斷;煙霧檢測探頭負責煙霧信號的采集并將之傳輸到Arduino上分析判斷;煤氣檢測探頭負責煤氣濃度信號的采集并將之傳輸到Arduino 上分析判斷。Arduino 對熱釋電傳感器、煙霧檢測探頭和煤氣濃度檢測探頭采集的信號做分析處理,判斷其是否超過安全閾值,在判斷有危險時,Arduino 控制GSM短信模塊向用戶發(fā)出報警信息,實現遠程報警。Arduino 與GSM 模塊之間的通信是通過串口來實現的,只需要將TX、RX、GND 這三根線連接起來即可實現串口通信。
GSM 模塊采用SIM900A,通過單片機給SIM900A 芯片發(fā)送AT 指令便可實現遠距離無線通信。煙霧傳感器是MQ-2,其作用是將采集到的煙霧信號發(fā)送到Arduino 上讓其分析判斷,一旦超過閾值就通過GSM 向用戶發(fā)送短信報警。煤氣傳感器采用MQ-5,其作用是將采集到的煤氣信號發(fā)送到Arduino 上讓其分析判斷,一旦超過閾值就通過GSM 向用戶發(fā)送短信報警。紅外傳感器是BISS0001,其作用是將采集到的紅外信號發(fā)送到Arduino 上,讓其分析判斷,一旦超過閾值就通過GSM 向用戶發(fā)送短信報警。溫度傳感器是單總線數字式DS18B20。
程序流程分為統主程序流程如圖2所示;人體紅外模塊程序流程如圖3所示;煤氣檢測模塊程序流程如圖4所示;煙霧檢測模塊程序流程如圖5所示。各個模塊采集到的信號由Arduino 集中處理和分析,并將信息發(fā)給主人。

圖1:系統框圖

圖2:系統主程序流程圖

圖3:人體紅外模塊程序流程

圖4:煤氣檢測模塊程序流程

圖5:煙霧檢測模塊程序流程
本系統主要應用了GSM 模塊的短信功能進行報警,將報警信息通過GSM 傳輸至系統預設手機上。故在模塊初始化時需進行相關配置:
Serial.print ("AT ");//AT 指令:檢查模塊是否響應
Serial.print ("AT+CSQ ");//AT+CSQ 指令:查詢信號強度
Serial.print ("AT+CREG? ");//AT+CREG?指令:查詢GSM 網絡注冊
Serial.print ("AT+COPS? ");//AT+COPS?指令:查詢GSM 網絡運營商
短信發(fā)送之前,需明確短信的內容和短信接收者的號碼,在程序中就體現為在Arduino中創(chuàng)建緩存來存放短信內容和手機號碼。在SIM900A 芯片中,短信有TEXT 和PDU 兩種發(fā)送模式,因為發(fā)送的內容較為簡潔,所以選用TEXT 模式。程序的主要內容有設置短信發(fā)送號碼、設置短信發(fā)送模式、短信發(fā)送結束標志以及短信發(fā)送內容。
單片機通過AT 指令可以很方便地對GSM 模塊進行相關配置,如檢測GSM 模塊是否響應、查詢當前信號強度、查詢GSM 模塊是否已注冊、查詢GSM 網絡運營商。使用AT 指令可以非常方便地發(fā)送短消息,通過單片機給SIM900A 芯片發(fā)送AT 指令便可實現遠距離無線通信。
經過對傳感器模塊、Arduino、短信模塊、電源等系統部件的組裝調試,本系統可以達到煤氣泄漏報警、火災報警和防盜的設計要求。當人體紅外傳感器感應到人體信息時,當煙霧傳感器檢測到煙霧濃度超過安全標準時,當煤氣濃度超過設定閾值時,手機都能收到報警短信。