|
沒錯!利用強大的GSM網絡,就可以實現單片機和手機之間互發短信。
我們知道,單片機以其強大的低成本優勢和強大的采集、控製、存(cun)儲(chu)功(gong)能(neng)在(zai)工(gong)業(ye)領(ling)域(yu)已(yi)經(jing)被(bei)廣(guang)泛(fan)使(shi)用(yong),而(er)今(jin)天(tian)我(wo)們(men)所(suo)要(yao)說(shuo)的(de),並(bing)不(bu)是(shi)要(yao)介(jie)紹(shao)是(shi)如(ru)何(he)的(de)強(qiang)大(da),也(ye)不(bu)標(biao)榜(bang)其(qi)在(zai)哪(na)個(ge)領(ling)域(yu)的(de)傑(jie)出(chu)貢(gong)獻(xian),我(wo)們(men)今(jin)天(tian)所(suo)要(yao)說(shuo)的(de),就(jiu)是(shi)給(gei)單(dan)片(pian)機(ji)插(cha)上(shang)無(wu)線(xian)的(de)翅(chi)膀(pang),給(gei)它(ta)配(pei)上(shang)“手機”,讓其利用成熟的GSM網絡和遠在海外的您收發短信。
試shi想xiang一yi下xia,如ru果guo單dan片pian機ji自zi身shen具ju備bei了le收shou發fa短duan信xin功gong能neng,那na將jiang是shi多duo麼me令ling人ren欣xin喜xi若ruo狂kuang的de一yi件jian事shi,我wo們men可ke以yi利li用yong手shou機ji向xiang單dan片pian機ji發fa送song一yi條tiao短duan信xin,單dan片pian機ji可ke以yi根gen據ju不bu同tong的de短duan信xin內nei容rong,進jin行xing不bu同tong的de動dong作zuo,比bi如ru控kong製zhi某mou些xie管guan腳jiao的de電dian平ping,如ru果guo外wai部bu加jia個ge繼ji電dian器qi之zhi類lei的de,就jiu可ke以yi用yong它ta來lai控kong製zhi電dian源yuan的de開kai關guan等deng,單dan片pian機ji也ye可ke以yi將jiang自zi身shen采cai集ji到dao的de電dian壓ya、電流、壓力等模擬量值發送到指定的手機上。
下麵我們具體來說一下如何使用單片機和手機進行短信收發。“巧婦難為無米之炊”,我們也需要幾個“零件”:
1、 單片機:無所謂什麼型號,隻要能提供串口就行,具體選型主要看其穩定性和自身要實現的功能,最後就是性價比了。
2、 GSM短信模塊:這個市麵上很多,價格也是參差不齊,我這裏選擇西安達泰電子的T09C短信模塊,個人覺得相對比較穩定,主要是它提供標準的AT指令,這樣對於以後的產品升級或更換都有所保障;提供標準的RS232接口可以方便地與電腦的串口連接,通過提供的PC機測試軟件方便進行電腦調試,幫助我們盡快上手。好多公司的同類產品將AT指令封裝成自己的指令,這可能影響以後的產品改造和升級。
3、 相關配件:5V電源、GSM天線、SIM卡、一些電子元器件。其中的5V電源和GSM天線在購買時作為贈品已經提供給我們了,SIM卡就到當地移動服務廳辦一張就行了,注意不能使用CDMA和3G卡,電子元器件主要部分是RS232轉TTL的電平轉換,我推薦常用的MAX232。
我想對於單片機和MAX232以及RS232接口之間的連接,搞過單片機的朋友都是輕車熟路了,為了節省互聯網資源,我就不再重複。而SIM卡和GSM以及電源的連接,T09C都提供相關的接口,即所謂的零插撥式的,絕不會插錯。
下xia麵mian我wo主zhu要yao來lai說shuo一yi下xia如ru何he使shi用yong單dan片pian機ji程cheng序xu實shi現xian短duan信xin收shou發fa,今jin天tian我wo們men隻zhi談tan談tan英ying文wen短duan信xin的de收shou發fa,中zhong文wen短duan信xin收shou發fa相xiang對dui比bi較jiao麻ma煩fan一yi點dian兒er,主zhu要yao是shi中zhong文wen的de編bian碼ma部bu分fen,但dan其qi流liu程cheng和he英ying文wen短duan信xin是shi一yi致zhi的de(如需收發中文短信,請參見相關PDU短消息格式說明等相關文檔),這裏隻說一下短信收發的流程。
1、 短信發送(通過單片機串口收發指令,/**/內為注釋,表示回車,ASC碼為0x0D+0x0A)
發送:AT /*檢測模塊是否工作正常*/
接收:OK /*串口返回OK表示模塊工作正常*/
發送:AT+CMGF=1 /*配置模塊工作於TEXT模式,用於發送英文短信*/
接收:OK /*配置成功*/
發送:AT+CMGS=”131XXXX4321”/*配置要接收的手機號碼*/
接收:> /*返回“>”符,表示可以發送短信*/
發送:Message Content /*要發送的短信內容“Message Content ”,
隻能在接收到“>”符號後發送短信內容*/
其中“”符號為短信結束符,ASC碼值為(0x1A),不作為短信內容發送*/
接收:+CMGS:
OK /*短信發送成功,為消息參考值,由模塊
自動分配*/
2、 讀取短信
接收:+CMTI: "SM",n /*收到新短信息提示*/
發送:AT+CMGR=n /*讀取第n條短信*/
接收:+CMGR: "REC UNREAD", "86XXXX4321","98/10/01,18 :22 :11+00", 80.22
OK /*短信讀取成功,“86XXXX4321”為
目標電話號碼,“80.22”為短信內容*/
如何判斷當前接收到的短信為第幾條短信,從而使用AT+CMGR=n來讀取該短信呢?當然,我們可以使用串口中斷來接收串口數據,當有新的短信到達時,串口會接收到諸如“+CMTI: "SM",n”的字符串,其中n就是新收到的短信存儲位置,通過字符串截取可以獲取n的值,這樣就可以利用AT+CMGR=n來讀取新收到的短信內容了,然後通過字符串分隔,分別獲取短信接收時間、目標電話號碼、短信內容等。
jirankeyishoufaduanxinle,tongsudianerjiang,jiushishidanpianjiyushoujizhijianjianlileyitiaoshujutongdao,keyiliyongzhetiaoshujutongdaolaijinxingshujuchuanshu,ruguotongguoshoujixiangdanpianjifasongbutongdeduanxinneirong,danpianjigenjuduanxinneirongjinxingxiangguandongzuo,birukongzhiwaibujidianqideng,nayangshoujikongzhiyuanchengshebeijiangbuzaishimengxiang;同理,單片機也可以通過短信的形式,將采集到的相關信息發送到指定的手機上。 如果在PC機上通過RS232串口連接一台T09C短信模塊, PC機ji上shang開kai發fa一yi套tao管guan理li軟ruan件jian,該gai軟ruan件jian負fu責ze短duan信xin的de收shou發fa及ji處chu理li,這zhe樣yang以yi來lai,不bu需xu要yao額e外wai申shen請qing什shen麼me短duan信xin網wang關guan之zhi類lei的de,就jiu可ke以yi建jian立li強qiang大da的de遠yuan程cheng監jian控kong係xi統tong平ping台tai
|