linux下利用GPRS模塊發短信、打電話


一、開發環境
    內核版本:linux-3.0
    開發板:FL2440(nandflash:K9F1G08 128M)
    GPRS模塊:SIM900
 

二、與發短信和撥號相關的 AT 指令

AT+CMGC   Send an SMS command(發出一條短消息命令)    

AT+CMGD   Delete SMS message(刪除 SIM 卡內存的短消息)    

AT+CMGF   Select SMS message formate (選擇短消息信息收發格式: 0-PDU;1-文本)

AT+CMGL   List SMS message from preferred store(列出 SIM 卡中的短消息

AT+CMGR   Read SMS message(讀短消息)    

AT+CMGS   Send SMS message(發送短消息)    

AT+CMGW   Write SMS message to memory(向 SIM 內存中寫入待發的短消息)

AT+CMSS   Send SMS message from storage(從 SIN |M 內存中發送短消息)

AT+CNMI   New SMS message indications(顯示新收到的短消息)    

AT+CPMS   Preferred SMS message storage(選擇短消息內存)    

AT+CSCA   SMS service center address(短消息中心地址)    

AT+CSCB   Select cell broadcast messages(選擇蜂窩廣播消息)   

AT+CSMP   Set SMS text mode parameters(設置短消息文本模式參數)

AT+CSMS   Select Message Service(選擇短消息服務)

AT+CNMI=2,1,0,0,0          //設置收到新短信存於SIM卡中並發CMTI通知

 

+CMTI:”SM”,1           //收到了短信,自動彈出,其中1表示存在SIM中的序號

AT+CMGR=1             //讀取短信,其中1要與上面序號對應

AT+CMGD=1             //刪除短信,其中1為短信序號

OK

ATD 撥號命令。這個命令用來設置通話、數據或傳真呼叫。

   例 ATD13844019770;
   ATH 掛機命令。
   ATA 接電話。

發送短消息有兩種方式:PDU和TEXT 模式,TEXT模式只支持傳送英文及數字信息,但它的編碼要比PDU模式簡單很多,所以建議采用TXET模式發送和接受短消息。(以下以TEXT 模式示范)

 

三、准備工作

GPRS模塊,是具有GPRS數據傳輸功能的GSM模塊。GPRS模塊就是一個精簡版的手機,集成GSM通信的主要功能於一塊電路板上,具有發送短消息、通話、數據傳輸等功能。GPRS模塊相當於手機的核心部分,如果增加鍵盤和屏幕就是一個完整的手機。普通電腦或者單片機可以通過RS232串口與GPRS模塊相連,通過AT指令控制GPRS模塊實現各種基於GSM的通信功能。 制作串口線將  GPRS模塊的串口和開發板的串口連接起來(我連接的是開發的第二個串口,因為第一個串口連接PC了),然后將可以使用的手機SIM卡插入 GPRS模塊的卡槽;然后啟動開發板,接通GPRS模塊的電源,然后按下GPRS模塊的SW1,讓SIM開始工作,搜索網絡這時發光二極管D3會閃爍。

 

四、過程實例:

如果內核添加了串口驅動執行如下命令就會看到串口設備:

[root@root /]# ls dev/

td2                   null                   tty3                    ttyS0
mtd2ro             pcmC0D0c            tty30               ttyS1
mtd3                pcmC0D0p            tty31               ttyS2
[root@root /]# microcom -s 115200 /dev/ttyS1 (microcom命令制作跟文件系統時busybox會添加,這里的/dev/ttyS1需要根據你GPRS連                                                                       接的串口選擇)

at                    (返回OK則說明你的模塊可以正常工作,否則出現故障。)
OK                                                                           

AT+COPS?         (運營商,我用的是聯通)                              
+COPS: 0,0,"CHN-UNICOM"

AT+CSQ             (查看SIM信號質量)
+CSQ: 23,0

OK

AT+CPIN?       (查詢狀態,模塊准備好打印如下)
+CPIN: READY

OK

AT+CMGF=1       //首先將短信息格式設為 TEXT 模式,如果為0 則為PDU格式
OK

AT+CSCS="GSM"         //設置字符格式為GSM 模式
OK

//有的說在發短信之前要設置短信中心號碼示例:AT+CSCA=”+86138XXXXXXXX”,,但是我的沒有設置就可以發短信,示例如下   

at+cmgs="13007110996"         //輸入手機號                          

> zhouyou,hello!                          //出現>后輸入短信內容,之后不是enter鍵輸入,切記是按ctrl+z,如果錯了可按esc返回

+CMGS: 36

OK                                                //發送成功的標志

ATD13007110996;                   //打電話,注意后面的分號不能掉,撥號成功返回OK,插上帶話筒的耳機就可以通話了
OK

ATH                                            //掛電話命令,成功后返回OK
OK

 

RING                     //來電話時,會不斷打印RING

RING
ATA                       //接聽命令,成功后返回OK
OK
ATH
OK

ctrl+x         退出microcom

 

microcom的用法:

http://blog.csdn.net/macrohasdefined/article/details/28258553

大家想深入了解microcom,可以點開上面的網站。

 

(如果串口沒有輸出,檢查看串口線是否是好的,波特率是否正確,一般我們的波特率設為115200.)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM