IoT スターターキット for Arduino をセットアップする
はじめに
このドキュメントでは、IoT スターターキット for Arduino のセットアップ方法を紹介します。
なお、キットではなく LTE-M Shield for Arduino と Arduino UNO 及び互換機を組み合わせたてご利用いただく場合でも本ドキュメントのステップ 1 〜 3 の手順どおりに実施いただけます。
- 基礎知識: IoT スターターキット for Arduino の準備
- ステップ 1: IoT スターターキット for Arduino の開発環境を準備する
- ステップ 2: IoT スターターキット for Arduino で開発する (LED点滅)
- ステップ 3: IoT スターターキット for Arduino で開発する (デバイス稼働時間を SORACOM Harvest Data へ送信)
- 以降のステップ
- 想定どおりに動作しない場合の確認事項
当ガイドの前提は以下のとおりです。
- SORACOM のアカウントを作成済みであること。
- IoT スターターキット for Arduino がお手元にあること。
基礎知識: IoT スターターキット for Arduino の準備
IoT スターターキット for Arduino の同梱物は以下のとおりです。
- Grove Beginner Kit for Arduino:Arduino UNO 互換機 (Seeeduino Lotus) とセンサー10種がセットになったキットです。
- LTE-M Shield for Arduino:Arduino UNO 及び互換機で LTE-M 通信が可能となる拡張ボードです。
- Quectel BG96 モジュール付き基盤:LTE-M に対応した通信モジュール (Quectel BG96) が実装されている基盤です。
- SORACOM 特定地域向け IoT SIM / plan-D nanoSIM サイズ:NTT ドコモ回線が利用できる IoT SIM です。
- microUSB ケーブル:PC と Grove Beginner Kit for Arduino を接続するケーブルです。
- アンテナ: LTE-M 通信の電波を受信するアンテナです。
IoT スターターキット for Arduino を使うためには、以下の準備を行います。
- SIM を Quectel BG96 モジュール付き基盤に挿入する。
- アンテナ 1 本を Quectel BG96 モジュール付き基盤に取り付ける。
- Quectel BG96 モジュール付き基盤を LTE-M Shield for Arduino に取り付ける。
- LTE-M Shield for Arduino を Grove Beginner Kit for Arduino に取り付ける。
- 当ガイドでは、microUSB ケーブルで PC と接続して電源供給しますが、AC 電源から取得する場合は電流が 2A 以上供給できる USB 電源を使用してください。また、USB ケーブルの抵抗が大きい場合、LTE モジュール電源を ON したときに再起動してしまう可能性がありますので、製品に付属のケーブルや高品質なUSBケーブルを使用してください。
ステップ 1: IoT スターターキット for Arduino の開発環境を準備する
IoT スターターキット for Arduino を用いた開発を行う時には、下記ソフトウェアを利用します。
- Arduino IDE (バージョン 1.8.10 以上)
- 依存するソフトウェア
- CP2102 USB Driver
USB ドライバのインストール
Arduino IDE で開発したスケッチを書き込む際に必要なドライバです。CP2102 USB Driver の DOWNLOADS タブからご利用の OS に応じた USB ドライバをダウンロードしてインストールしてください。
- macOS Big Sur をご利用の場合は USB ドライバのインストールは不要です。この手順はスキップしてください。
ドライバのインストールが完了したら、Grove Beginner Kit for Arduino を PC の USB ポートに接続し、以下を確認してください。
- Windows の場合:マイコンピュータ > プロパティ > ハードウェア > デバイスマネージャー に
Silicon Labs CP210x USB to UART Bridge (COM3)
が表示されること。(お使いの環境によってはCOM6
など別のシリアルポートにアサインされている可能性があります。こちらは適宜読み替えて下さい。) - macOS の場合:この Mac について > システムレポート… > USB に
CP2102N USB to UART Bridge Controller
が表示されること。
Arduino IDE のインストール
IoT スターターキット for Arduino の開発(スケッチ作成、コンパイル、バイナリファイル転送)には、Arduino IDE を利用します。 Arduino のサイトから Arduino IDE をダウンロードし、インストールしてください。
ボードの選択
IoT スターターキット for Arduino を Arduino IDE で扱えるようにするための設定をします。
- Arduino IDE を起動します
- Arduino IDE の [ツール] > [ボード] から
Arduino Uno
を選択します。 - ご利用の OS に応じて以下のとおりポートを設定します。(以下は macOS の場合)
- Windows の場合:Arduino IDE の [ツール] > [ポート] から USB ドライバインストール後に確認したシリアルポート(
COM3
など)を選択します。 - macOS の場合:Arduino IDE の [ツール] > [シリアルポート] から
/dev/cu.SLAB_USBtoUART
を選択します。(macOS Big Sur をご利用の場合は/dev/cu.usbserial-0001
を選択してください。)
- Windows では Arduino IDE を初めて起動するときにファイアウォールのウィンドウが開くことがあります。この時は「プライベートネットワーク」「パブリックネットワーク」双方にチェックを付けてください。
ステップ 2: IoT スターターキット for Arduino で開発する (LED 点滅)
ステップ 1 が正しく実行されたことを確認するために、まずは IoT スターターキット for Arduino ライブラリに付属しているスケッチ例から、LED を点滅させるサンプルスケッチを実行してみます。
- Arduino IDE を起動。
- Arduino IDE の [ファイル] > [スケッチ例] > [01.Basics] > [Blink] を選択。
- 新しく開いたウィンドウの 丸印に→ アイコン(マイコンボードに書き込む) をクリック。
- Arduino IDE のウィンドウ下部に「ボードへの書き込みが完了しました。」と表示されたら書き込み完了。
以上で IoT スターターキット for Arduino 上の LED が下図のように点滅します。もし LED が点滅しない場合は再度ステップ 1 の手順を見直してみてください。
LED 点滅の様子
Grove Beginner Kit for Arduino ではなく、Arduino UNO R3 を利用した場合の LED 点滅の様子
ステップ 3: IoT スターターキット for Arduino で開発する (デバイス稼働時間を SORACOM Harvest Data へ送信)
SORACOM Harvest Data の設定をする
- SORACOM ユーザーコンソール の[Menu]>[SIM 管理]とクリックして SIM 管理画面を開く。
- LTE-M Shield に取り付けた SIM にチェックを付け、[操作]>[所属グループ変更]とクリックする。
- 「新しい所属グループ」のプルダウンボックスをクリックした後、[新しいグループを作成…]をクリックする。
- 「グループ作成」のグループ名を入力して[グループ作成]をクリックする。
- 作成したグループが選択されていることを確認して[グループ変更]をクリックする。
- SIM 管理画面で割り当てたグループ名をクリックする。
- [SORACOM Harvest Data 設定]をクリックする。
- SORACOM Harvest Data の設定を ON にして [保存] をクリックする。
- SORACOM ユーザーコンソール の[Menu]>[SIM 管理]とクリックして SIM 管理画面を開く。
Arduino IDE のスケッチを作成する
- Arduino IDE を起動。
- Github 上の vshymanskyy/TinyGSMから TinyGSM のライブラリを ZIP ファイルでダウンロード。
- ダウンロードした ZIP ファイルの名前を
TinyGSM-master.zip
からTinyGSM.zip
に変更する。 - Arduino IDE の [スケッチ] > [ライブラリをインクルード] > [.ZIP形式のライブラリをインストール…] から手順 3 でファイル名を変更した ZIP ファイル(TinyGSM.zip)を選択。
- Arduino IDE の [スケッチ] > [ライブラリをインクルード] に TinyGSM が表示されていることを確認。
- サンプルスケッチ send_uptime_with_soracom.ino をウィンドウに貼り付けて保存。
- ウィンドウの 丸印に→ アイコン(マイコンボードに書き込む) をクリック。
- Arduino IDE のウィンドウ下部に「ボードへの書き込みが完了しました。」と表示されたら書き込み完了。
- TinyGSM のライブラリは上記手順(ZIP 形式)でインストールしてください。Arduino IDE の [スケッチ] > [ライブラリをインクルード] > [ライブラリを管理…] から TinyGSM をインストールするとスケッチが正常に動作しない可能性があります。(2020/12/09 時点)
- TinyGSM のライブラリが既にインストールされている場合は、Arduino IDE の libraries フォルダ内の TinyGSM フォルダを削除した後、 上記手順で再度インストールしてください。
- このサンプルスケッチは Grove Beginner Kit for Arduino の代わりに Arduino UNO R3 をご利用いただいた場合でも動作します。
以上で SORACOM Harvest 上で下図のように稼働時間が表示されるようになります。
また Arduino IDE のシリアルモニタでシリアルポートを開くと、下図のように IoT スターターキット for Arduino からの出力を見ることができます。
- シリアルモニタに表示される出力が文字化けする場合は、シリアルモニタとスケッチのボーレートが一致していない可能性があります。下図の赤枠がスケッチ側のボーレート (
CONSOLE.begin(115200);
の数値) と同じことを確認してください。
カスタマイズ例
スケッチ例は 60 秒に 1 回の送信となっています。送信間隔を変更する場合はスケッチ内の #define INTERVAL_MS (60000)
にミリ秒で指定してください。
以降のステップ
センサーを動作させる
IoT スターターキット for Arduino 用のサンプルスケッチ に各センサーを動作させるサンプルスケッチを記載しています。これらを参考に SORACOM Harvest Data や SORACOM Lagoon などと組み合わせて独自の IoT システムの構築をお試しください。
想定どおりに動作しない場合の確認事項
サンプルスケッチ send_uptime_with_soracom.ino 実行時に想定どおり動作しない場合は、以下をご確認ください。
ケース A. スケッチ実行時にモデム名が表示されない
send_uptime_with_soracom.ino 実行時には以下のようにモデム名 (Quectel BG96 Revision: BG96MAR03A04M1G) が表示されます。
モデム名が表示されない場合は以下を確認してください。
- LTE-M Shield for Arduino のジャンパーが以下の写真のようになっていることを確認する。
- もし上の写真のようになっておらずに以下の写真のようにジャンパーが外れている場合は嵌め直してください。
- もし上の写真のようになっておらずに以下の写真のようにジャンパーが外れている場合は嵌め直してください。
- LTE-M Shield for Arduino のスイッチが以下の写真のように ON になっていることを確認する。
- もし上の写真のようになっておらずに以下の写真のように OFF になっている場合はスイッチを押下して ON にしてください。
- もし上の写真のようになっておらずに以下の写真のように OFF になっている場合はスイッチを押下して ON にしてください。
ケース B. スケッチ実行時に waitForNetwork() から先に進まない
このような場合には、以下を実行してください。
- モデムに対して AT コマンドを実行できるサンプルスケッチ serialbridge_lte-m_shield_for_arduino.ino を Arduino IDE のウィンドウに貼り付けて保存。
- ウィンドウの 丸印に→ アイコン(マイコンボードに書き込む) をクリック。
- Arduino IDE のウィンドウ下部に「ボードへの書き込みが完了しました。」と表示されたら書き込み完了。
- Arduino IDE の[ツール] > [シリアルモニタ] を開き、ボーレートを 9600 bps に設定。
>> Waiting for your AT command
と表示されたら、シリアルモニタのウィンドウに以下の 4 つの AT コマンドを貼り付けて「送信」ボタンをクリック。(或いは Enter キーを実行。)
AT+CGDCONT=1,"IP","soracom.io","0.0.0.0",0,0,0,0
AT+QCFG="nwscanmode",0,0
AT+QCFG="iotopmode",0,0
AT+QCFG="nwscanseq",00,1
AT コマンド実行前
AT コマンド実行後
AT コマンド実行後に改めて、ステップ 3 の 2-6. サンプルスケッチ send_uptime_with_soracom.ino の書き込みから再開ください。