DIYの携帯電話。 パート2

最初の部分では、プロジェクトの「鉄」部分を調べました。この部分では、デバイスの実験を開始します。





電話のバックボーンであるM10-TE-Aモジュール。





仕事を始める


そのため、デバイスをコンピューターのCOMポートに接続します(これにはCOM-USBアダプターを使用しました)。 ターミナルを起動し(標準のWindowsターミナルを使用できますが、Puttyプログラムを使用します)、デバイスに電源を供給します。 モジュールの電源ボタンを押すと、ネットワークステータスLEDが急速に点滅し始めます。



LEDの点滅期間により、デバイスのステータスを区別できます。

LEDが消灯-モジュールが機能していません

64msオン/ 800msオフ-ネットワークが見つかりません

64msオン/ 2000msオフ-ネットワークが見つかりました

64msオン/ 600msオフ-GPRS交換



応答が返されるまで、ターミナルに文字「AT」を入力します。 これは、モジュールが為替レートを自動的に決定するために必要です。 Enterキーを押すと、答えが得られます。

+ CMEエラー:3

これで、モジュールはコマンドを受信する準備ができました。

ネットワークが見つからないにもかかわらず、いくつかのATコマンドの動作を確認することは既に可能です。 最も興味深いチームの一部のみの作業を検討します。その完全なリストはモジュールのドキュメントに記載されています。

コマンドの中には疑問符で終わるものとそうでないものがあることに注意してください。 ここにリストされているとおりに正確に入力する必要があります。

また、テキストをよりコンパクトにするために、モジュールの応答から空の行が削除されました。



だから



最初のステップ


モジュールメーカーに関する情報:

AT+GMI //: Quectel_Ltd Quectel_M10 Revision: MTK 0828 OK
      
      





モジュールの識別:

 AT+GMM //: Quectel_M10 OK
      
      





モジュールリビジョンとソフトウェアバージョン:

 AT+GMR //: Revision: M10BR06A06N32 OK
      
      





グローバルID:

 AT+GOI //: M10 OK
      
      





IMEIを入手:

 AT+GSN //: xxxxxxxxxxxxxxx //15-   OK
      
      





ネットワークステータスの確認:

 AT+CREG? //: +CREG: 0,2 OK
      
      





ここで「2」は、デバイスがネットワークを見つけられなかったが、検索状態にあることを意味します。

SIMカードの入手可能性についても確認できます。

 AT+QSIMDET? //: +QSIMDET: 0,0 OK
      
      





最初のゼロは、カード検出モードがオフであることを意味します。 SIMカードが存在する場合に検出モードを有効にしてみましょう:

 AT+QSIMDET=1 //: (SIM-  ) +CME ERROR:10 OK //: (SIM- ) +CME ERROR:11 OK
      
      





エラー11は、PINコードが入力されていないことを意味します。



モジュールシャットダウンコマンド:

 AT+QPOWD=1 //: NORMAL POWER DOWN
      
      





ボタンでモジュールを再度オンにして、先に進みます。 これで、PINコードを入力できます(SIMカードで必要な場合はもちろん)。

PINの入力:

 AT+CPIN=XXXX (PIN-) //: +CPIN: READY OK Call Ready +CMTI: "SM",3
      
      





最後の行は、SMSを受信したことを意味します!

これで、接続しているオペレーターを確認できます。

 AT+QSPN? //: +QSPN: "MegaFon",0 OK
      
      





信号品質を確認します。

 AT+CSQ //: +CSQ:18,0 OK
      
      





最初の数字は信号レベルを示します。0は-113dBm以下に対応し、31は-51dBm以上のレベルに対応します。 2番目の数値は、チャネル内のエラービットの強度(0〜7)を示します。0は最適値に対応します。



さらに興味深い部分に移ります。



SMS送信


テキスト「Hello world」を含むSMSをデバイスに送信します。 端末ウィンドウに次の行が表示されます。

 +CMTI: "SM",6
      
      





これは、最大6つのSMSがあることを意味します。

SMSの読み取りはコマンドによって行われます

 AT+CMGR=6
      
      





6はメモリ内のSMSメッセージのインデックスです。 応答として、数字の長い文字列を取得します。 任意のオンラインデコーダーSMS PDU(プロトコルデータユニット)で復号化できます。 テキスト形式でSMSを送受信するには、SMSテキストモードを設定します。

 AT+CMGF=1 //: OK
      
      





コマンドAT + CMGR = 6を繰り返します(6はメモリ内のメッセージ番号です。必要な値を入力する必要があります)。メッセージは読み取り可能な形式で表示されます。

 +CMGR: "REC READ","xxxxxxxxxxxx","","2013/03/29 21:15:14+24" Hello world OK
      
      







次に、デバイスからSMSを送信してみます。

 AT+CMGS="+7xxxxxxxxxx" //   
      
      





コマンドを入力すると、モジュールはテキスト入力モードに切り替わります。 「Hello world」と入力し、Ctrl-Zを押してテキスト入力モードを終了します。 送信したメッセージ:

 +CMGS:11 //11 -  SMS
      
      







呼び出し


デバイスを呼び出しましょう。 着信音を聞くと、RINGラインが端末に表示されます。

オフフック:

 ATA
      
      





電話を切る:

 ATH
      
      





デバイスからの呼び出し:

 ATDxxxxxxxxxxxx //     
      
      





ヘッドセットを介して話すために、デバイスをオーディオ入力/出力の2番目のセットに切り替えます。

 AT+QAUDCH=1
      
      





私たちは確認します...はい、話すことはかなり可能です!



モデム


もちろん、Plug'n'Playは機能しないため、Windowsシステムのモデムを手動でインストールする必要があります。 次に例を示します(Windows7 Home Advanced)。 デバイスマネージャに移動/アクション/古いデバイスをインストール/次/リストから選択した機器を手動でインストール/次/モデム/モデムのタイプを決定しない(リストから選択)/次/標準モデム56000 bps /次

COMポートを選択し、[次へ] / [完了]をクリックします。

これで、デバイスマネージャでモデムが見つかりました。[プロパティ] / [診断] / [モデムの調査]を開きます。

次のようなものが表示されるはずです。







また、オペレーターがgprsを構成するために必要ないくつかのコマンドを手動で入力する必要がある場合があります。 これは、[モデムの詳細設定]タブの同じモデムプロパティウィンドウで行います。 フロー制御を設定できる「デフォルトの変更」ボタンもあります(オプション「なし」を選択する必要があります)。



これで、理論的には、オペレーターの設定に従って接続を構成し、番号(* 99#)を入力して、インターネットで作業できます。

ただし、残念ながら、接続は行われません。 「モデム」プロパティの「診断」タブで交換ログを見ると、次のことがわかります。 モデムはコマンドでハングします:

 ATS7=60L0M1&KN1X4
      
      





残念ながら、接続を確立するための多数の試みは失敗しました。 ただし、たとえば、Quectel M95モジュールは外部モデムとして完全に機能します。



データ転送


透過(透過)と非透過(非透過)の2つのデータ転送モードが可能です。 不透明モードでは、サーバーからのデータの送受信はそれぞれ個別のコマンドで実行されます。 このモードは考慮しません。 最も興味深いのは、透過モードです。 このモードでは、TCPまたはUDPソケットを使用して直接チャネルが確立され、モジュールのUARTポートを介してデータを送受信できます。 接続はコマンドによって確立されます

 AT+QIOPEN="TCP","xxx.xxx.xxx.xxx",23
      
      





「TCP」はプロトコル、xxx.xxx.xxx.xxxはIPアドレス(引用符内)、23はポートです。

接続を確立すると、モデムは「OK」と応答し、データの受信/送信モードに切り替わります。 交換が完了すると、モデムは「CLOSED」と書き込みます。



座標と時間


はい、GPSなしで座標と正確な時間を決定できます。 AT + QGSMLOCコマンドはこのためのものです。 次のことを行います。

 AT+QIFGCNT=0 // GPRS OK //  AT+QICSGP=1,"CMNET" // APN OK //  AT+QGSMLOC=1 // ,    +QGSMLOC:0,60.xxxxxx,56.xxxxxx,2013/03/31,12:06:24 //  OK //  AT+QGSMLOC=2 //   +QGSMLOC:0,2013/03/31,12:07:03 // 
      
      





座標はどのように決定されますか? それらは、最も近い基地局の既知の座標と信号強度によって、オペレーター側で計算されます。 もちろん、座標を決定する精度はGPSの精度よりも劣ります。 Yandexの受け取った座標と地図を信じているなら、私は次の通りです。 しかし、GPSとは異なり、屋内で機能します。 ここでも注意点が1つあります。この機能は3枚のうち1枚のSIMカードでしか機能しません。



おわりに


もちろん、この記事ではモジュールのすべての機能が検討されたわけではありませんが、gsm-modulesを使用するデバイスの開発者にとって最も興味深いと思われるトピックを取り上げようとしました。

もちろん、私が皆さんに注意を向けた「電話」は、マイクロコントローラーとディスプレイを取り付け、「実際の」電話で見られるさまざまな機能を実装することで改善できます。 しかし、私はこの欲求を十分に持っていません。 しかし、私が望むように、GSMモジュールに基づいたデバイスの開発はそれほど複雑な問題ではないことを理解するには、上記の情報で十分です。

さらに、開発者の実際の活動において、最も一般的なタスクは正確にデータの転送です。 この場合、安価なQuectel M95など、「電話」コンポーネントなしでモジュールを使用できます。







M10-TE-AおよびM95モジュール







カバーを取り外したM10モジュール



以前の投稿で、モジュールのPDFドキュメントを含むアーカイブへのリンクが提供されました。 ここで複製します。

アーカイブをダウンロードする



ご質問にお答えできることを嬉しく思います。建設的な批判や提案も歓迎します。



ご清聴ありがとうございました。



All Articles