胡 芳
江蘇聯(lián)合職業(yè)技術(shù)學(xué)院無(wú)錫機(jī)電分院 江蘇無(wú)錫 214000
在手機(jī)、電話與計(jì)算機(jī)這些簡(jiǎn)單快捷的通信工具遍布全球的今天,大多數(shù)家庭依舊設(shè)置信報(bào)箱。對(duì)信報(bào)箱的使用,存在兩種截然不同的態(tài)度。一種是以老年人居多,可能正好在等信或者等報(bào)紙,盼望心切,一天可能會(huì)開(kāi)幾次信報(bào)箱;與此相反,另一種是以年輕人居多,不訂報(bào)紙,也不寫(xiě)信,覺(jué)得不會(huì)有信,就從來(lái)不開(kāi)信報(bào)箱,然而可能哪天恰恰來(lái)一封通知,就會(huì)錯(cuò)過(guò)。因此,如果在信報(bào)箱內(nèi)裝一個(gè)系統(tǒng),在書(shū)信或者報(bào)紙投入信報(bào)箱后,自動(dòng)向信報(bào)箱主人的手機(jī)發(fā)送短信,提醒主人來(lái)取信報(bào),這樣可以減少無(wú)效開(kāi)箱的次數(shù),并提醒主人及時(shí)開(kāi)箱取信。
隨著科技的發(fā)展,能給特定的手機(jī)打電話、發(fā)短信或者遠(yuǎn)程監(jiān)控的智能家居已經(jīng)越來(lái)越多,將智能化應(yīng)用到生活中是發(fā)展趨勢(shì)[1]。
信報(bào)箱提示系統(tǒng)主要應(yīng)用在獨(dú)立用戶的一對(duì)一通信情況下,目前全球移動(dòng)通信系統(tǒng)(GSM)是應(yīng)用最廣泛、覆蓋面最廣、穩(wěn)定性最高的通信系統(tǒng),因此選擇GSM作為通信媒介,來(lái)發(fā)送報(bào)信的短消息[2]。
根據(jù)用途要求,信報(bào)箱提示系統(tǒng)的工作流程如圖1所示。
信報(bào)箱提示系統(tǒng)的硬件設(shè)計(jì)框圖如圖2所示,系統(tǒng)由傳感器、控制芯片、通信模塊、電源模塊和顯示模塊等組成。
在信報(bào)箱底部最里側(cè)放置一個(gè)傳感器,此傳感器一直處于開(kāi)啟狀態(tài),當(dāng)感應(yīng)到信報(bào)箱中有信件或報(bào)紙時(shí),發(fā)出信號(hào)至控制芯片。傳感器的感應(yīng)范圍應(yīng)該是比較小的,最大感應(yīng)值應(yīng)能夠調(diào)節(jié)為傳感器位置至信箱門(mén)這段距離,否則傳感器會(huì)因感應(yīng)到信箱門(mén)外的無(wú)關(guān)動(dòng)作而發(fā)出錯(cuò)誤信號(hào)。
根據(jù)以上要求,筆者選擇了感應(yīng)范圍為2~50 c m的漫反射光電開(kāi)關(guān)傳感器。
圖1 信報(bào)箱提示系統(tǒng)工作流程
圖2 信報(bào)箱提示系統(tǒng)硬件設(shè)計(jì)框圖
這一傳感器型號(hào)為E18-D80 NK[3],是一種集發(fā)射與接收于一體的光電傳感器,檢測(cè)距離在3~80 c m之間可調(diào),為PNP常開(kāi)型,響應(yīng)時(shí)間短于2 ms,電源為5 V,輸出端外加一個(gè)1 kΩ阻值的上拉電阻就可以連接到單片機(jī)的輸入輸出口上。當(dāng)控制芯片判斷端口有低電平時(shí),延時(shí)10 ms,再次判斷以避免有干擾信號(hào)。當(dāng)判斷結(jié)果還是低電平時(shí),系統(tǒng)開(kāi)始響應(yīng)。
信報(bào)箱提示系統(tǒng)對(duì)控制芯片的性能要求不高,只要求能接收傳感器信號(hào),并輸出信號(hào)使通信模塊發(fā)送短消息,并且能接收信報(bào)箱主人所回發(fā)的關(guān)閉系統(tǒng)信號(hào)。很多信號(hào)控制芯片都能夠?qū)崿F(xiàn)這些功能,在滿足系統(tǒng)要求的前提下,出于成本及節(jié)能考慮,采用基礎(chǔ)入門(mén)級(jí)且應(yīng)用最廣的51單片機(jī)作為系統(tǒng)控制芯片,型號(hào)確定為AT89C51。
AT89C51單片機(jī)是一款低電壓、高性能互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)8位單片機(jī),內(nèi)含4 KB可擦除只讀存儲(chǔ)器[4],器件采用AT MEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,具備標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及引腳結(jié)構(gòu)。
信報(bào)箱提示系統(tǒng)要實(shí)現(xiàn)向信報(bào)箱主人發(fā)送提示短信的功能,就離不開(kāi)通信模塊。筆者選擇GSM套件M590E和SI MCo m公司的SI M800C模塊,作為系統(tǒng)通信模塊。SI M800C模塊不僅價(jià)格便宜,而且支持GSM標(biāo)準(zhǔn)和AT指令控制,工作頻率有多種選擇,性能穩(wěn)定,尺寸為17.6 mm×15.7 mm×2.3 mm,體積小巧,滿足系統(tǒng)設(shè)計(jì)要求[5]。
控制芯片通過(guò)串口方式與SI M800C模塊進(jìn)行通信。晶振時(shí)鐘頻率為11.059 2 MHz,傳遞速率可配置成9 600 Baud,和通信模塊的通信誤差比較小,幾乎可以忽略。串口配置為9 600 Baud,無(wú)校驗(yàn)位,有8位數(shù)據(jù)位、1位停止位。相關(guān)寄存器配置如下[6]:
ACC=P_SW1;
ACC&= ~(S1_S0|S1_S1); ∥S1_S0=1 S1_S1=0
ACC|=S1_S0; ∥(P3.6/Rx D_2,P3.7/Tx D_2)
P_SW1= ACC;
SCON=0x50; ∥8位可變傳輸速率
T2L=(65536-(FOSC/4/BAUD)); ∥設(shè)置傳輸速率重裝值
T2 H =(65536-(FOSC/4/BAUD))?8;
AUXR=0x14; ∥T2為1T模式,并啟動(dòng)定時(shí)器2
AUXR|=0x01; ∥選擇定時(shí)器2為串口1的傳輸速率發(fā)生器
利用SI M800C模塊和M590E套件,在加載用戶標(biāo)志模塊卡后,就可實(shí)現(xiàn)短消息提醒信報(bào)箱主人的功能。
AT89C51單片機(jī)的電源為3.8 V[7],通信模塊的電壓輸入端范圍為3.4~4.4 V[4],傳感器的電源為5 V,因此選擇5 V直流電源直接為傳感器供電??紤]到3.8 V也在通信模塊電壓可選范圍內(nèi),因此同時(shí)經(jīng)過(guò)貼片式熔體、穩(wěn)壓芯片及鉭電容濾波后為AT89C51芯片和通信模塊供電[8]。為了方便使用,同時(shí)考慮到體積因素,選擇可充電式大容量鋰電池,配備充電器,并且電源為可拆卸形式。用XH2.54 2P插頭連接系統(tǒng)與充電器,方便用戶在電源低電量時(shí)將電源帶回家充電。插頭有防反插設(shè)計(jì),可防止用戶因插反而造成系統(tǒng)短路[9]。
為了方便用戶判斷信報(bào)箱提示系統(tǒng)電量剩余情況,以及用于發(fā)送短信的用戶標(biāo)志模塊卡信號(hào)強(qiáng)弱,系統(tǒng)要求由顯示模塊來(lái)進(jìn)行提示。顯然,用顯示屏來(lái)顯示是不經(jīng)濟(jì)的方法,筆者采用發(fā)光二極管點(diǎn)亮的方法來(lái)告知用戶。由AT89C51單片機(jī)驅(qū)動(dòng)發(fā)光二極管,系統(tǒng)的電量顯示和用于發(fā)送短信的用戶標(biāo)志模塊卡的信號(hào)強(qiáng)弱分別采用三個(gè)發(fā)光二極管顯示。三個(gè)全亮表示電量高、信號(hào)強(qiáng),兩個(gè)亮表示中等,僅一個(gè)亮表示需要充電或者用戶標(biāo)志模塊卡信號(hào)弱,需調(diào)整。
基于查詢AT指令的命令格式,查詢電量的指令為AT+CBC\,查詢信號(hào)的指令為AT+CSQ\[10]。通過(guò)單片機(jī)串口分別向電源、通信模塊發(fā)送這兩個(gè)AT指令,電源、通信模塊會(huì)自動(dòng)下發(fā)給單片機(jī)相關(guān)電量和信號(hào)強(qiáng)弱的信息,單片機(jī)通過(guò)中斷接收后處理分析這兩組下發(fā)的數(shù)據(jù),就可以得到電量值和信號(hào)狀態(tài),然后再分別驅(qū)動(dòng)表示電量和信號(hào)的各組發(fā)光二極管進(jìn)行顯示。
AT89C51單片機(jī)通過(guò)串口輸出AT指令來(lái)對(duì)SI M800C模塊進(jìn)行相應(yīng)控制,可極大方便軟件的設(shè)計(jì)。軟件設(shè)計(jì)主要包括傳感器信號(hào)處理、通信及主控系統(tǒng)的程序設(shè)計(jì)。根據(jù)所選擇的AT89C51單片機(jī),采用C語(yǔ)言進(jìn)行程序編寫(xiě)。
主函數(shù)的功能是信號(hào)觸發(fā),接收到傳感器發(fā)送到的信號(hào)后響應(yīng),開(kāi)始向設(shè)定手機(jī)號(hào)發(fā)信息,信息內(nèi)容為“You have a new letter”,然后重新恢復(fù)到持續(xù)判斷有無(wú)觸發(fā)信號(hào)的狀態(tài)[11]。主函數(shù)程序代碼如下:
if((SBUF>=65&&SBUF<=90)||(SBUF>=48&&SBUF<=59)||(SBUF==44)||(SBUF==′*′)) ∥只存儲(chǔ)“,”、“A-Z”大寫(xiě)字母、“0-9”數(shù)字、“:”和“;”
經(jīng)測(cè)試,筆者設(shè)計(jì)的信報(bào)箱提示系統(tǒng)達(dá)到了預(yù)期的要求,依靠成熟的GSM技術(shù),方便及時(shí)地提醒信報(bào)箱主人去開(kāi)信箱,具有良好的實(shí)用性。系統(tǒng)未考慮到當(dāng)系統(tǒng)電量低時(shí)發(fā)短信提醒用戶,這是不足之處,有待后續(xù)彌補(bǔ)。