はじめに
この記事は、春のIoTリレーハンズオン@関西の一環として開催される<SORACOM接続 + MQTT編>のハンズオン用資料です。
本ハンズオンでは、RaspbianをインストールしたRaspberry Pi(以降、ラズパイ)でSORACOMのサービスの基本部分をひととおり使えるようになるまでの手順をまとめています。
GPIOにはA/DコンバータMCP3002を用い、フォトダイオードのアナログ入力を行います。
[Step 1.] SORACOMユーザーコンソールにアクセス
SORACOMユーザーコンソールは、SORACOM Airの管理を行うサイトです。自身の所有しているSORACOM AirのSIMの休止/再開や速度変更、グループ設定などをブラウザ上で行うことができます。
ここでは、SORACOMコンソールにログインして、自身のSIMを特定し、簡単な管理操作を行います。
【ToDo 1.1】SORACOMユーザーコンソールにログイン
自身のPCのブラウザでSORACOMコンソールを表示させ、SORACOMアカウントでログインします。
メールアドレス・パスワードは、ご自身のSORACOMアカウントやハンズオン指定のSORACOMアカウントを入力して「ログイン」ボタンをクリックします。
【ToDo 1.2】自分のSORACOM AirのSIMのIMSI(イムジー)を特定しておく
SIM管理画面が表示されるのでSIMの名前などを入力し検索して、自分のIMSIをパソコン(のエディタなど)にコピーしておいてください。
[Step 2.] SORACOM APIリファレンスでAPIを試す
SORACOM API リファレンスは、Swaggerを用いたインタラクティブなWeb APIドキュメントサイトで、ユーザの認証データを用いてAPIの動作確認が可能となっています。
ここでは、速度変更のAPIを用いて実際に自身のSIMの速度を変更してみます。
【ToDo 2.1】SORACOM APIでスピード変更してみる
SORACOM APIリファレンスサイトにアクセスし「SORACOM ユーザーコンソールのアカウントによる認証:」欄のメールアドレス・パスワードを入力し「認証」ボタンをクリックします。
メールアドレス・パスワードはご自身のSORACOMアカウントやハンズオン指定のSORACOMアカウントを使います。
認証がうまくいくと「認証」ボタンの下に「認証OK」と表示がされ、APIが利用できるようになります。
【ToDo 2.2】update_speed_classを実行してスピード変更
・API Key, Token, Operator IDが表示されているのを確認。SORACOMサービスを用いたソースコードに使うことができます。
・下方にスクロールしてSubscriberサブツリー下のupdate_speed_classをみつけてクリックします。
・Parametersエリアの「imsi」欄に自分のSORACOM AirのIMSIを入力します。
・(右側のbodyをクリックして)「speed_class」欄に速度クラスを示すJSONパラメータをいれます。
・「Try It out!」ボタンをクリックしAPIを実行。
・SORACOMユーザーコンソールのSIM管理画面で更新ボタンをクリックした後、自分のIMSI番号を持つSIMの速度クラスを確認する。API実行で指定したspeed_classになっていれば正常に実行されています。
ここまではPC上のブラウザの操作でした。次からはラズパイを使います。
[Step 3.] ラズパイの電源をいれてPCからターミナル接続する
ラズパイにWifiドングルまたはLANケーブルをつなぎ、電源を入れます。ターミナルで操作を行う上で必要なVimエディタのインストールを行います。ラズパイはデフォルトでviしか入っていません。Vim(Vi improved)を入れ設定ファイルをカスタマイズしておくことで、作業効率があがるでしょう。
※nanoなど、その他のエディタを用いる場合は割愛してください。
【ToDo 3.1】ラズパイを起動しVimエディタの準備
・PC上のターミナルやTeraTermなどでログインし、piユーザー(パスワード: raspberry)でログインしておきます。
・WiFiもしくは有線LANであらかじめインターネットに接続しておき、以下のコマンドでvimの最新版を入手しておきます。
$ sudo apt-get update
$ sudo apt-get install vim
好みに応じてvimの設定ファイル~/.vimrc
を以下のようにしておくと後々操作しやすいかも。
$ vi ~/.vimrc
"#####表示設定#####
set number "行番号を表示する
set title "編集中のファイル名を表示
set showmatch "括弧入力時の対応する括弧を表示
syntax on "コードの色分け
set tabstop=4 "インデントをスペース4つ分に設定
""
[Step 4.] ラズパイからCLIとSDKをいじる
ラズパイ上にSORACOM SDKをインストールし、CLI操作を行います。SORACOM SDKはRubyがインストールされていればどの環境でも利用可能ですが、後ほどSORACOM SDKを用いたソースを使うことと、使用PC(のRubyやシェルの振る舞い)にかかわらず、同一の操作ができることからラズパイにインストールしたSORACOM SDK for Rubyで操作を行います。
※時間があれば、ご自身のPC(Mac, Win, Linuxなど)でRuby環境を構築してSORACOM SDK for Rubyをインストールしてみてください。
【ToDo 4.1】SORACOM SDKのインストール
SORACOM SDK for Rubyを参照してgem
コマンドを使いSORACOM SDKをインストールする。ラズパイはsudo
が必要である。
【ToDo 4.2】コマンドライン補完
SORACOM SDK for Rubyを参照してコマンドライン補完の指定を行う。ラズパイはデフォルトでbashが使われているため、 ~/.bashrc
の最下行に指定を行うとよい(sourceコマンドによる反映を忘れないようにする)。
確認:以下の操作を行って、サブコマンドが補完されるか確認する。
$ soracom sub[tab] #subとキー入力後タブキーを押下
$ soracom subscriber #subscriberサブコマンドが補完されればOK
【ToDo 4.3】.bashrcに認証情報の追加と速度変更による確認
コマンドおよびスクリプトで必要となる認証情報を~/.bashrc
の最下行に追加する。
your mail
およびyour password
はSORACOMコンソールでログインするときに使ったものを入力にします。sourceコマンドによる反映を忘れないようにして下さい。
export SORACOM_EMAIL='your mail'
export SORACOM_PASSWORD='your password'
確認:以下の操作を行って、サブコマンドが補完されるか確認します。
your IMSI
は自分のSIMの10桁のIMSI番号を入力します。
$ soracom subscriber update_speed_class --imsi 'your IMSI' --speed-class 's1.fast'
SORACOMコンソールで自分のSIMの速度がs1.fastになっているか確認します。
【ToDo 4.4】すべてのSIMの速度をs1.fastにするスクリプトの実行
SORACOM SDK使用例サンプルコードをコピーペーストしてホームディレクトリなどにsora01.rb
などとして保存し、実行してみます。
SORACOMコンソールですべてのSIMの速度がs1.fastになっているか確認します。
$ vi sora01.rb
$ ruby sora01.rb
found 40 SIMs.
change plan to s1.fast
done
【ToDo 4.5】課題:自分のIMSI番号のSIMだけ速度を変更するスクリプトの作成
sora01.rb
をコピーして自分のIMSI番号のSIMだけs1.standardにするスクリプトを作成し、実行・確認する。
また、自分のIMSI番号のSIMだけ使用可能にしてください(ヒント: /subscribers/{imsi}/activate)
$ cp sora01.rb sora02.rb
$ vi sora02.rb #ソースを書き換える
$ ruby sora02.rb
ブラウザでSORACOMコンソールを確認してください。
状態が「使用中」に、速度クラスが「s1.standard」になればOKです。
次からUSBモデムで実際に接続します。
【ToDo 4.5】の答え
[Step 5.] ラズパイからSORACOM Airを接続できるようにする
SORACOM Airを装着したUSBモデム「FS01BU」をUSBコネクタに接続し、SORACOM Airの接続スクリプトの作成と自動起動の指定をします。
USBモデム「FS01BU」はラズパイが起動している状態でUSBコネクタに差し込むとうまく認識しない場合があるため、差し込む前にあらかじめラズパイをシャットダウンしておきます。
$ sudo halt
【ToDo 5.1】SORACOM Air接続スクリプトを自動起動させる
SORACOM AirとUSBモデムFS01BUを接続するスクリプトがgistで公開されています。このスクリプトをRaspberry Piで自動起動させる手順を行ってください。以下のQiita記事リンクを開いて手順に従い自動起動させるようにします。
- 簡単にRaspberry PiでSORACOM Airを使う(FS01BU USBモデムを用いて自動接続) …うまくいけば10分程度で作業完了します。
もし自動起動できないようでしたら、insserv -r
で起動スクリプトを削除し、/etc/rc.local
にスクリプトの起動コマンドを入れてやります。
$ sudo insserv -r /etc/init.d/soracomair
$ sudo vi /etc/rc.local
最下行のexit 0
の上に以下のように記述してください。
# 10秒実行を待つ
sleep 10
# 接続スクリプトの実行
sudo sh /opt/sora/connect_air.sh &
# このexit 0が最下行
exit 0
おつかれさまでした!
次は以下のステップを行ってください。