黃思博 潘良辰 儲(chǔ)健
摘要: 隨著全球經(jīng)濟(jì)的一體化和科技的高速發(fā)展,人們正享受著高科技給他們帶來的極大方便,如家居對門禁系統(tǒng)的需求正發(fā)生著重大的變化。智能家居“門警”系統(tǒng)利用openwrt系統(tǒng)、arduino主控板、攝像頭、gprs模塊等手段實(shí)現(xiàn)主人對家庭門鈴、門體的啟動(dòng)、敲打的及時(shí)了解,能夠使主人不在家時(shí),也能較好的解決來訪者的溝通,并且對于不法分子以此方法試探家中有無人員,以便實(shí)現(xiàn)偷盜等情況也有較好的解決功能。此設(shè)計(jì)具有成本低廉、可操作性強(qiáng)、及時(shí)高效、有效防盜等特點(diǎn),具有較高的研發(fā)和推廣價(jià)值。
關(guān)鍵詞:arduio主控板;openwrt系統(tǒng);gprs;智能監(jiān)控
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)13-3067-03
1 緒論
當(dāng)今社會(huì)是科學(xué)技術(shù)日新月異、飛速發(fā)展的信息時(shí)代。人們正感受著高科技給他們帶來的極大方便,同時(shí),人們對于高科技服務(wù)于生活的要求也越來越高。但隨著科技的發(fā)展,也帶來了許多不安全的方面[1],例如,運(yùn)用高科技手段進(jìn)行盜竊等犯罪行為與日增多,家居對門禁系統(tǒng)的需求正發(fā)生著重大的變化[2]。
對于現(xiàn)有的門警系統(tǒng)來說,并沒有專門為家居設(shè)計(jì)的系統(tǒng),而且存在安全性能低、成本高、功能單一等缺點(diǎn)[3],不能滿足家居對門警系統(tǒng)的需求。因此本團(tuán)隊(duì)在安徽理工大學(xué)大學(xué)生科研項(xiàng)目資助下,設(shè)計(jì)了一套新穎的智能家居"門警"系統(tǒng)。
2 系統(tǒng)主要功能
智能家居"門警"系統(tǒng),具有對門戶出入控制、實(shí)時(shí)監(jiān)控、保安防盜報(bào)警等多種功能,它主要方便用戶隨時(shí)了解家庭安全情況,智能處理特殊情況(如:小偷偷竊及時(shí)報(bào)警或提示用戶),用戶遠(yuǎn)程自動(dòng)控制招待客人從而為用戶提供一個(gè)高效先進(jìn)的家庭環(huán)境。
本系統(tǒng)采用了裝有openwrt系統(tǒng)的路由器和Arduino MEGA2560共同來完成的,這將更加簡化了編寫程序的繁瑣,也降低了開發(fā)成本。
1) 智能門警系統(tǒng)由攝像頭、路由器、讀卡器、GPRS模塊、主控板和電子門鎖組成。當(dāng)有來訪者按動(dòng)門鈴按鈕或者敲門,便會(huì)通過主控板控制GPRS給戶主發(fā)送信息,戶主可通過訪問網(wǎng)頁的形勢查看通過openwrt上傳的實(shí)時(shí)照片,并選擇與來訪者通過GPRS通話抑或通過電子門鎖給人開門。
2) 遠(yuǎn)程開門功能 ,戶主可過手機(jī)發(fā)動(dòng)指令給GPRS遠(yuǎn)程控制家門的開關(guān)。
3) 實(shí)時(shí)監(jiān)控,通過攝像頭用motion做監(jiān)控,畫面上只要有變化,就會(huì)保存照片到制定位置,主人可登錄網(wǎng)頁進(jìn)行查看。
本系統(tǒng)可以與來訪者通話,以識(shí)別來訪者的身份與來訪目的。
3 系統(tǒng)組成
本系統(tǒng)采用的是Arduino MEGA 2560 的微控制器板,相較于其他型號(hào)的Arduino控制器,它提供了更多I/O口與更大運(yùn)算儲(chǔ)存空間.它包含了54個(gè)數(shù)字輸入輸出口(其中14個(gè)可以作為PWM輸出),16個(gè)模擬輸入口,4個(gè)串口(硬件串口),同時(shí)含有一個(gè)USB連接頭,一個(gè)電源插孔,一個(gè)ICSP接口,一個(gè)復(fù)位按鍵等支持主控器運(yùn)行的最小系統(tǒng).用一根USB數(shù)據(jù)線連接到電腦,或者一個(gè)交流轉(zhuǎn)直流的電源適配器,亦或是一個(gè)電池即可讓它運(yùn)行起來.大多數(shù)為Aruino Duemilanove 或 Diecimila設(shè)計(jì)的擴(kuò)展板都兼容于Mega。本系統(tǒng)主要采用的Arduino MEGA 2560的主要性能指標(biāo)如下:主控芯片 :ATmega2560;工作電壓:5V;輸入電壓:12V;數(shù)字輸入輸出口 :54;模擬輸出口 :16。
信息的傳輸主要利用GPRS。本系統(tǒng)的GPRS采用了SIM300模塊。 SIM300 內(nèi)部集成了TCP/IP 協(xié)議棧,并且擴(kuò)展了TCP/IP AT 指令,使用戶利用該模塊開發(fā)數(shù)據(jù)傳輸設(shè)備變得特別簡單、方便。 SIM300 是一款三頻段GSM/GPRS 模塊,可在全球范圍內(nèi)的EGSM 900MHz、DCS 1800MHz、PCS 1900MHz 三種頻率下工作,能夠提供GPRS 多信道類型多達(dá)10 個(gè),并且支持CS-1、CS-2、CS-3 和CS-4 四種GPRS 編碼方案。在GPRS模塊上插入一張已開通SIM 卡并接通電源后,由微控制器單片機(jī)向其發(fā)送AT指令,將單片機(jī)處理好的GPS數(shù)據(jù)發(fā)送給GPRS,從而實(shí)現(xiàn)了GPRS通過GPRS網(wǎng)絡(luò)、GPRS-Internet網(wǎng)關(guān)、Internet與Android終端建立連接,進(jìn)而實(shí)現(xiàn)了GPRS與監(jiān)控中心的Android終端通信,并以此來傳輸數(shù)據(jù)。
4 系統(tǒng)實(shí)現(xiàn)
4.1系統(tǒng)原理圖
本系統(tǒng)主要采用Arduino主控板、GPRS模塊、震動(dòng)傳感器、usb攝像頭、TP—Link路由器等。通過arduino主控板控制GPRS模塊、接收震動(dòng)傳感器信號(hào)、以及控制舵機(jī)實(shí)現(xiàn)通話、開門等功能。USB攝像頭定時(shí)采集門外情況并且通過TP-LINk路由器上傳到指定網(wǎng)站。
如當(dāng)客人訪問主人時(shí),此刻SW-420常閉型震動(dòng)傳感器檢測動(dòng)態(tài),會(huì)向arduino主控板發(fā)出信號(hào),此時(shí)攝像頭能夠?qū)⑴臄z照片通過TP-link WR703N向網(wǎng)絡(luò)中發(fā)送照片,用戶通過手機(jī)軟件或者網(wǎng)頁登陸方式訪問,用戶根據(jù)是不是熟悉的客人,采用兩種解決方案。方案一是熟人時(shí),會(huì)通過SIM300與該客人進(jìn)行通話交流,如果有需要可以招待客人進(jìn)屋。方案二是陌生人時(shí),會(huì)通過SIM300詢問客人情況,若是小偷及時(shí)報(bào)警并且通知用戶。系統(tǒng)原理如圖1所示。
圖1 系統(tǒng)原理圖
4.2 TP—LINK加載系統(tǒng)
1)從OpenWrt的官方站點(diǎn)https://openwrt.org/下載固件,固件分為squashfs和jiffs2兩種文件系統(tǒng)。具體的區(qū)別是jiffs2將固件本身和后續(xù)安裝的包會(huì)放置在一個(gè)分區(qū)內(nèi),因此可以充分利用空間。squashfs則將固件單獨(dú)掛在在/rom分區(qū),系統(tǒng)出現(xiàn)問題時(shí),系統(tǒng)的恢復(fù)非常便利。
2)通過原有的路由器管理頁面,進(jìn)行固件升級(jí)。
3)初始設(shè)置
默認(rèn)的網(wǎng)段為192.168.1.*。將703N用網(wǎng)線和PC相連,且將PC的IP設(shè)置為不為192.168.1.1的任意IP。這里假設(shè)為192.168.1.100,掩碼為255.255.255.0。通過PC,telnet 192.168.1.1后,若可連接。則大功成半。然后將root的密碼進(jìn)行重置。因?yàn)橐胻elnet和SSH的緣故,windows上要安裝putty和配置自帶的telnet,便利起見,推薦直接使用安裝linux的PC。
SSH到703N(ssh root@192.168.1.1)更改網(wǎng)絡(luò)配置。修改/etc/config/network文件,將靜態(tài)IP設(shè)置修改為DHCP。 重啟之后,就可以搜索到名為OpenWrt的無線網(wǎng)絡(luò)了。
4.3 Arduino和GPRS連接
Arduino11、12口與GPRS的RX、TX分別連接,正常的撥打電話,接聽電話,讀取短信(產(chǎn)生控制開關(guān)門命令),發(fā)送某內(nèi)容短信給某電話。讀取短信時(shí)是首先Arduino自己讀一遍,是某個(gè)命令(這里收到“b”就讓電子門鎖工作)就執(zhí)行指定的操作,不是不執(zhí)行,這是遠(yuǎn)程控制操作。
部分代碼如下:
#define SEND_MESSA_TO_YOUR "at+cmgs=\"***********\"\r\n"
//填入你手上的手機(jī)號(hào)碼
#define SEND_MESSA_CONTENT "Your are under attack!"
#define CALL_YOU_TELNUMBER "ATD***********;\r\n"
//填入你手上的手機(jī)號(hào)碼
下面代碼是通過hand()函數(shù)檢測gprs與Arduino是否連接成功,以方便進(jìn)一步實(shí)現(xiàn)Arduino控制gprs打電話,發(fā)短信等操作。
int Hand(char *s)
{
delay(200);
clearBuff();
delay(300);
readSerial(aa);
if(strstr(aa,s)!=NULL) //檢測Arduino和模塊的連接
{g_timeout=0;
clearBuff();
return 1;
}......
}
void AT(void)
{......
while(strstr(aa,"OK")==NULL)
{
clearBuff();
led(1);
Serial.println(ATE0);
delay(500);
readSerial(aa);
led(0);
}while(1)
{......
if((strstr(aa,"0,1")!=NULL)||(strstr(aa,"0,5")!=NULL))
{clearBuff();
break;
}
else
{delay(500);
}}}
通過gprs打電話,實(shí)現(xiàn)來訪客人與主人之間的通話。
void send_call(void)
{clearBuff();
Serial.println(CALL_YOU_TELNUMBER); //進(jìn)行撥打電話操作
delay(2000);
while(Hand("OK")==0);}
4.4 Arduino和其他部件的連接
Arduino通過i/o接口和其他部件連接,控制其運(yùn)行。如對于門鎖的控制Arduino通過i/o接口和繼電器鏈接,進(jìn)而控制舵機(jī)的運(yùn)行。當(dāng)GPRS接到開門的短信時(shí),Arduino通過控制相應(yīng)的I/o接口控制繼電器的處于連通狀態(tài),繼而舵機(jī)可以旋轉(zhuǎn),帶動(dòng)門鎖,即打開門讓客人進(jìn)入。
5 結(jié)束語
通過幾個(gè)月的努力,在這次的科研立項(xiàng)中不僅檢驗(yàn)了我們所學(xué)習(xí)的知識(shí),也培養(yǎng)了如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在設(shè)計(jì)過程中,與同學(xué)分工設(shè)計(jì),和同學(xué)們相互探討,相互學(xué)習(xí),相互監(jiān)督。學(xué)會(huì)了合作,學(xué)會(huì)了運(yùn)籌帷幄,學(xué)會(huì)了寬容,學(xué)會(huì)了理解,也學(xué)會(huì)了做人與處世??蒲辛㈨?xiàng)是我們知識(shí)綜合應(yīng)用的實(shí)踐訓(xùn)練,這是我們邁向社會(huì),從事職業(yè)工作前一個(gè)必不少的過程.“千里之行始于足下”,通過這次科研立項(xiàng),我深深體會(huì)到這句千古名言的真正含義.我們今天認(rèn)真的學(xué)習(xí),學(xué)會(huì)腳踏實(shí)地邁開這一步,就是為明天能穩(wěn)健地在社會(huì)大潮中奔跑打下堅(jiān)實(shí)的基礎(chǔ)。
參考文獻(xiàn):
[1] Dale Wheat.Arduino技術(shù)內(nèi)幕[M].北京:人民郵電出版社,2013.
[2] 羅雷.嵌入式實(shí)時(shí)操作系統(tǒng)[M].北京:北京航空航天大學(xué)出版社,2011.
[3] 陳呂洲.Arduino[M].北京:北京航空航天大學(xué)出版社,2014.endprint
2)通過原有的路由器管理頁面,進(jìn)行固件升級(jí)。
3)初始設(shè)置
默認(rèn)的網(wǎng)段為192.168.1.*。將703N用網(wǎng)線和PC相連,且將PC的IP設(shè)置為不為192.168.1.1的任意IP。這里假設(shè)為192.168.1.100,掩碼為255.255.255.0。通過PC,telnet 192.168.1.1后,若可連接。則大功成半。然后將root的密碼進(jìn)行重置。因?yàn)橐胻elnet和SSH的緣故,windows上要安裝putty和配置自帶的telnet,便利起見,推薦直接使用安裝linux的PC。
SSH到703N(ssh root@192.168.1.1)更改網(wǎng)絡(luò)配置。修改/etc/config/network文件,將靜態(tài)IP設(shè)置修改為DHCP。 重啟之后,就可以搜索到名為OpenWrt的無線網(wǎng)絡(luò)了。
4.3 Arduino和GPRS連接
Arduino11、12口與GPRS的RX、TX分別連接,正常的撥打電話,接聽電話,讀取短信(產(chǎn)生控制開關(guān)門命令),發(fā)送某內(nèi)容短信給某電話。讀取短信時(shí)是首先Arduino自己讀一遍,是某個(gè)命令(這里收到“b”就讓電子門鎖工作)就執(zhí)行指定的操作,不是不執(zhí)行,這是遠(yuǎn)程控制操作。
部分代碼如下:
#define SEND_MESSA_TO_YOUR "at+cmgs=\"***********\"\r\n"
//填入你手上的手機(jī)號(hào)碼
#define SEND_MESSA_CONTENT "Your are under attack!"
#define CALL_YOU_TELNUMBER "ATD***********;\r\n"
//填入你手上的手機(jī)號(hào)碼
下面代碼是通過hand()函數(shù)檢測gprs與Arduino是否連接成功,以方便進(jìn)一步實(shí)現(xiàn)Arduino控制gprs打電話,發(fā)短信等操作。
int Hand(char *s)
{
delay(200);
clearBuff();
delay(300);
readSerial(aa);
if(strstr(aa,s)!=NULL) //檢測Arduino和模塊的連接
{g_timeout=0;
clearBuff();
return 1;
}......
}
void AT(void)
{......
while(strstr(aa,"OK")==NULL)
{
clearBuff();
led(1);
Serial.println(ATE0);
delay(500);
readSerial(aa);
led(0);
}while(1)
{......
if((strstr(aa,"0,1")!=NULL)||(strstr(aa,"0,5")!=NULL))
{clearBuff();
break;
}
else
{delay(500);
}}}
通過gprs打電話,實(shí)現(xiàn)來訪客人與主人之間的通話。
void send_call(void)
{clearBuff();
Serial.println(CALL_YOU_TELNUMBER); //進(jìn)行撥打電話操作
delay(2000);
while(Hand("OK")==0);}
4.4 Arduino和其他部件的連接
Arduino通過i/o接口和其他部件連接,控制其運(yùn)行。如對于門鎖的控制Arduino通過i/o接口和繼電器鏈接,進(jìn)而控制舵機(jī)的運(yùn)行。當(dāng)GPRS接到開門的短信時(shí),Arduino通過控制相應(yīng)的I/o接口控制繼電器的處于連通狀態(tài),繼而舵機(jī)可以旋轉(zhuǎn),帶動(dòng)門鎖,即打開門讓客人進(jìn)入。
5 結(jié)束語
通過幾個(gè)月的努力,在這次的科研立項(xiàng)中不僅檢驗(yàn)了我們所學(xué)習(xí)的知識(shí),也培養(yǎng)了如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在設(shè)計(jì)過程中,與同學(xué)分工設(shè)計(jì),和同學(xué)們相互探討,相互學(xué)習(xí),相互監(jiān)督。學(xué)會(huì)了合作,學(xué)會(huì)了運(yùn)籌帷幄,學(xué)會(huì)了寬容,學(xué)會(huì)了理解,也學(xué)會(huì)了做人與處世??蒲辛㈨?xiàng)是我們知識(shí)綜合應(yīng)用的實(shí)踐訓(xùn)練,這是我們邁向社會(huì),從事職業(yè)工作前一個(gè)必不少的過程.“千里之行始于足下”,通過這次科研立項(xiàng),我深深體會(huì)到這句千古名言的真正含義.我們今天認(rèn)真的學(xué)習(xí),學(xué)會(huì)腳踏實(shí)地邁開這一步,就是為明天能穩(wěn)健地在社會(huì)大潮中奔跑打下堅(jiān)實(shí)的基礎(chǔ)。
參考文獻(xiàn):
[1] Dale Wheat.Arduino技術(shù)內(nèi)幕[M].北京:人民郵電出版社,2013.
[2] 羅雷.嵌入式實(shí)時(shí)操作系統(tǒng)[M].北京:北京航空航天大學(xué)出版社,2011.
[3] 陳呂洲.Arduino[M].北京:北京航空航天大學(xué)出版社,2014.endprint
2)通過原有的路由器管理頁面,進(jìn)行固件升級(jí)。
3)初始設(shè)置
默認(rèn)的網(wǎng)段為192.168.1.*。將703N用網(wǎng)線和PC相連,且將PC的IP設(shè)置為不為192.168.1.1的任意IP。這里假設(shè)為192.168.1.100,掩碼為255.255.255.0。通過PC,telnet 192.168.1.1后,若可連接。則大功成半。然后將root的密碼進(jìn)行重置。因?yàn)橐胻elnet和SSH的緣故,windows上要安裝putty和配置自帶的telnet,便利起見,推薦直接使用安裝linux的PC。
SSH到703N(ssh root@192.168.1.1)更改網(wǎng)絡(luò)配置。修改/etc/config/network文件,將靜態(tài)IP設(shè)置修改為DHCP。 重啟之后,就可以搜索到名為OpenWrt的無線網(wǎng)絡(luò)了。
4.3 Arduino和GPRS連接
Arduino11、12口與GPRS的RX、TX分別連接,正常的撥打電話,接聽電話,讀取短信(產(chǎn)生控制開關(guān)門命令),發(fā)送某內(nèi)容短信給某電話。讀取短信時(shí)是首先Arduino自己讀一遍,是某個(gè)命令(這里收到“b”就讓電子門鎖工作)就執(zhí)行指定的操作,不是不執(zhí)行,這是遠(yuǎn)程控制操作。
部分代碼如下:
#define SEND_MESSA_TO_YOUR "at+cmgs=\"***********\"\r\n"
//填入你手上的手機(jī)號(hào)碼
#define SEND_MESSA_CONTENT "Your are under attack!"
#define CALL_YOU_TELNUMBER "ATD***********;\r\n"
//填入你手上的手機(jī)號(hào)碼
下面代碼是通過hand()函數(shù)檢測gprs與Arduino是否連接成功,以方便進(jìn)一步實(shí)現(xiàn)Arduino控制gprs打電話,發(fā)短信等操作。
int Hand(char *s)
{
delay(200);
clearBuff();
delay(300);
readSerial(aa);
if(strstr(aa,s)!=NULL) //檢測Arduino和模塊的連接
{g_timeout=0;
clearBuff();
return 1;
}......
}
void AT(void)
{......
while(strstr(aa,"OK")==NULL)
{
clearBuff();
led(1);
Serial.println(ATE0);
delay(500);
readSerial(aa);
led(0);
}while(1)
{......
if((strstr(aa,"0,1")!=NULL)||(strstr(aa,"0,5")!=NULL))
{clearBuff();
break;
}
else
{delay(500);
}}}
通過gprs打電話,實(shí)現(xiàn)來訪客人與主人之間的通話。
void send_call(void)
{clearBuff();
Serial.println(CALL_YOU_TELNUMBER); //進(jìn)行撥打電話操作
delay(2000);
while(Hand("OK")==0);}
4.4 Arduino和其他部件的連接
Arduino通過i/o接口和其他部件連接,控制其運(yùn)行。如對于門鎖的控制Arduino通過i/o接口和繼電器鏈接,進(jìn)而控制舵機(jī)的運(yùn)行。當(dāng)GPRS接到開門的短信時(shí),Arduino通過控制相應(yīng)的I/o接口控制繼電器的處于連通狀態(tài),繼而舵機(jī)可以旋轉(zhuǎn),帶動(dòng)門鎖,即打開門讓客人進(jìn)入。
5 結(jié)束語
通過幾個(gè)月的努力,在這次的科研立項(xiàng)中不僅檢驗(yàn)了我們所學(xué)習(xí)的知識(shí),也培養(yǎng)了如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在設(shè)計(jì)過程中,與同學(xué)分工設(shè)計(jì),和同學(xué)們相互探討,相互學(xué)習(xí),相互監(jiān)督。學(xué)會(huì)了合作,學(xué)會(huì)了運(yùn)籌帷幄,學(xué)會(huì)了寬容,學(xué)會(huì)了理解,也學(xué)會(huì)了做人與處世??蒲辛㈨?xiàng)是我們知識(shí)綜合應(yīng)用的實(shí)踐訓(xùn)練,這是我們邁向社會(huì),從事職業(yè)工作前一個(gè)必不少的過程.“千里之行始于足下”,通過這次科研立項(xiàng),我深深體會(huì)到這句千古名言的真正含義.我們今天認(rèn)真的學(xué)習(xí),學(xué)會(huì)腳踏實(shí)地邁開這一步,就是為明天能穩(wěn)健地在社會(huì)大潮中奔跑打下堅(jiān)實(shí)的基礎(chǔ)。
參考文獻(xiàn):
[1] Dale Wheat.Arduino技術(shù)內(nèi)幕[M].北京:人民郵電出版社,2013.
[2] 羅雷.嵌入式實(shí)時(shí)操作系統(tǒng)[M].北京:北京航空航天大學(xué)出版社,2011.
[3] 陳呂洲.Arduino[M].北京:北京航空航天大學(xué)出版社,2014.endprint