2013年9月21日 星期六

居家監控-GSMmodel+C# (一)

  說到GSMmodel就不能不提ATcommand,這命令集是由許多短的字串組成長的命令,用於代表撥號、掛號以及改變通訊參數的動作。大部分的model都跟隨ATcommand所制定的規則,連大陸都不例外。我這次買的GSM採用北京天祥電子公司之TC35I-V2版。

  當拿到一個新的GSMmodel幾乎想都不用想就先用ATcommand測試測試完如果無異狀就能開始撰寫程式透過COMport傳送指令控制GSM我這次只運用最簡單的傳送txt簡訊功能此版的GSMmodel優良還有附微處理器下次有時間再好好研究並補充
首先要用電腦輸入ATcommand測試GSMmodel要先有終端機,我的筆電是Window7沒有附終端機,所以必須自行安裝。

  終端機的主要工作是將使用者鍵入鍵盤的資料傳入電腦中,以及將電腦送出的訊息顯示在螢幕上。如此,使用者就可以透過終端機與電腦溝通。而大家所常看到的個人電腦其實是一部電腦再加上一組終端機(螢幕加鍵盤),所以在同一時間只能有一個人使用個人電腦。(摘自國立台灣大學電子計算機中心)

  故我們的做法就是用:終端機-->電腦COMport-->GSMmodel的路徑傳送ATcommand
  我使用的是這款簡易的終端機,小歸小但五臟俱全,安裝說明也在裡面了!

  完成安裝後GSMmodel接上輸入COMport設定後就能打AT指令了COMport可以到控制台\系統及安全性\系統à系統內容à硬體à裝置管理員 中察看不知道哪個就拔出USB再插入看看

英文txt短信

發:AT
收:OK //如果沒回應代表model完全不能用…(不限GSM)
發:AT+CMGF=1 //設定txt發送模式
收:OK
發:AT+CMGS=8869********
 //台灣是886(=0)有的終端機是輸入AT+CMGS=+09********AT+CMGS=”+09********”…如果不行就排列組合一下吧XD
收:>
發:data        //test 為發送内容,→为發送符(ctrl+z,十六进制0x1A
收:+CMGS: 54  OK //+CMGS: 54才算發送成功

  完成測試後就開始寫程式摟以下用C#2010做例子其實最常見的是用微處理器晶片控制(C撰寫),但概念是相同的,就不多說了。

  因為GSM發送簡訊只是此專案的一個小功能所以我把她單獨用class獨立出來讓另外的主程式main去叫用並回傳string得知發送訊息的狀態

程式也會用到委派EventAutoResetEvent~會在下篇一起說明。

沒有留言:

張貼留言