6
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

やさしさあふれるATコマンド入門

SORACOM Advent Calendar 201919日目の記事です。
今日は、ソラコムのSIMをUSBモデムに挿して通信する時に使うAT(エーティー)コマンドがどのようなものかについて、お話ししたいと思います。

きっかけ

ソラコム認定デバイスのUSBモデムを使って通信する時、各種デバイスで SORACOM Air を使用するにあるsetup_air.shというスクリプトを実行すると、それだけで簡単にインターネットに繋がるのですが、その中身がずっと気になっていました。どうやらATコマンドというものを叩いているようなのですが、私には謎の文字列の羅列にしか見えず、なかなか興味を持てないまま月日が経ちました。
そんな中、技術書典というイベントでATコマンドカルタというものが販売されていたので、これを買って眺めているとATコマンドに興味が湧いてきて、その勢いで書いたのがこのブログになります。

これを見て、「ふむふむ、コマンドごとに何か意味があるのね。これってWindowsやLinuxのコマンドみたい。こうして見ると分かりやすいかも。」と思いました。

ATコマンドって何?

コマンドとは機械に何かを実行させる命令のことで、やって欲しいことを伝えると機械がそれを実行し、必要に応じて結果を返すものです。例えば身近な例ですと、「OKグーグル 明日の天気教えて」とか「アレクサ 何か音楽かけて」と伝えることがコマンドに相当します。
同じように、USBモデムに対して「ショートメッセージ(SMS)送って」とか「USBモデムのメーカーを教えて」などの命令を伝えるためのコマンドがATコマンドなのです。下の図で言うと、Raspberry PiからUSBモデムに対してATコマンドで命令するイメージです。SIMを挿したUSBモデムをRaspberry Piに挿しただけでは通信ができず、通信するためにはATコマンドが必要なのです。

USBモデムの利用イメージ

具体的なATコマンドの例として、ATIというコマンドを見てみましょう。

ATコマンドは全てATから始まるのですが、このATはATtention、つまり「注目!」のような意味なので、これはまさに先ほどの「OKグーグル」や「アレクサ」に相当します。そしてATの後のIが命令に相当し、今回のケースだと「モデムの製造情報を教えて」という要求になります。

どんなコマンドがあるの?

USBモデムに挿さっているSIMのIMSIを教えて!

AT+CIMI
295050910xxxxxx

コマンドの結果で返されるIMSIは、SORACOMのユーザコンソールで見れるコレです。

ユーザコンソール

USBモデムのメーカーやモデル名を教えて!

ATI
Manufacturer: huawei
Model: MS2372h-607
Revision: 21.328.02.01.00
IMEI: 8670230301xxxxx
+GCAP: +CGSM,+DS,+ES

実際に使っていたモデムはこれです。

電波状況を教えて

AT+CSQ
+CSQ: 25,99

数字が電波状況を表しているそうです。

他にもモデムとやり取りするためのコマンドはたくさんあります(カルタが出来るくらいなので)。また、標準規格で定義されているATコマンドの他に、モデムの種類ごとに独自のATコマンドが用意されているようなケースもあります。

で、結局どうやって繋げてるの?

setup_air.shスクリプトにあるATコマンドだけ取り出すと、こんな感じです。

AT+CFUN=1
ATZ
AT+CGDCONT=1,"IP","$1"
ATD *99***1#

カルタで見るとこんな感じ。

これをざっくり一言で言うと、「無線通信が可能な状態にして、設定を初期化した後、接続のための設定をしてから指定した番号にダイヤル接続する」という感じの命令をUSBモデムにしていることになります。この命令をすることで、SORACOMに接続できているのですね!

次のステップ

今回は、ATコマンドに興味を持って頂くことにフォーカスして、詳細や手順は一切省きました。このブログを見て頂き、実際に自分でもコマンドを叩いてみたい!数字が電波状況を表しているそうって、、もっと正確に!と思われた方は、ぜひこちらのブログをご覧ください!

それでは、「ATコマンドのこと知りたいなら、まずはやさしさあふれるこのブログを見るといいよ」と言われる日が来ることを願って投稿!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
6
Help us understand the problem. What are the problem?