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