Arduino でデータを送信する

ここでは、Arduino と sakura.io 通信モジュールを組み合わせて、データをプラットフォームに送信するためのチュートリアルを行います。

対象読者

本ドキュメントは、以下の方に向けて作成されています。

  • sakura.ioを利用し、最小限の機器で動作を確認したい方

用意するもの

コントロールパネルへのログイン

sakura.io コントロールパネルから、プロジェクトの作成、通信モジュールの登録、連携サービスの設定を行います。

会員IDの取得

さくらインターネットのサービスで使用する「会員ID」が必要です。 さくらインターネットの会員IDをお持ちでない場合は、 マニュアル>会員登録 を参考に、会員IDを取得してください。

sakura.io コントロールパネル

ログイン

取得した会員情報を使用し、sakura.io コントロールパネルにログインします。 初回のみ約款同意画面が表示されるので、各約款を確認のうえ、同意するボタンをクリックします。

会員ID、パスワードを入力のうえ、ログイン(認証)ボタンをクリックします。

コンパネログイン1

約款の同意

各約款および規約を確認のうえ、同意するボタンをクリックします。

約款同意

プロジェクト作成

ログイン後、プロジェクト追加ボタンをクリックします。 [新規プロジェクトの作成]画面では任意の名称を入力したうえで追加ボタンをクリックします。

プロジェクト追加ボタンをクリックします。

プロジェクト作成1

任意の名称を入力のうえ、追加ボタンをクリックします。

プロジェクト作成2

通信モジュール登録

プロジェクト作成後、プロジェクト枠内のモジュール登録ボタンをクリックします。 [モジュールの追加]画面では必要事項としてそれぞれ以下のように入力、選択します。

  • 登録用ID:モジュール基板上面シールのIDの文字列
  • 登録用パスワード:通信モジュール上面シールのPASSの文字列
  • 名称:任意の名称
  • プロジェクト:紐付けたい任意のプロジェクト

モジュール登録ボタンをクリックします。

通信モジュール登録1

登録用ID、登録用パスワード、任意の名称を入力し、プロジェクトを選択のうえ追加をクリックします。

通信モジュール登録2

目隠しシールを剥がすと、IDとPASSが確認できます。QRコードを読み取ることでも、IDとPASSを確認することができます。

通信モジュール登録3

連携サービス作成

通信モジュール登録後、プロジェクト枠内のサービス追加ボタンをクリックします。 [追加サービスの選択]画面からWebSocketをクリックします。 [サービス連携の作成 WebSocket]画面では任意の名称を入力したうえで作成するボタンをクリックします。 作成が成功すると、作成したばかりの[<設定した名称> WebSocet]画面に遷移します。 通信モジュールから受信したデータは当画面の[受信データ]欄で確認することができます。

サービス追加をクリックします。

サービス作成1

WebSocketをクリックします。

サービス作成2

任意の名前を入力し作成するをクリックします。

サービス作成3

作成された連携サービスのページが表示されます。

サービス作成3

デバイスの組み立て

通信モジュールとArduinoシールドの組み立て

空中線用のアンテナケーブルと通信モジュール側のアンテナコネクタを合わせ、垂直にはめ込みます。 基板には2つアンテナの端子があるため、2つとも取り付けます。 次に、アンテナケーブルのスクリュー溝部とアンテナを合わせて回すことで取り付けます。

注意事項

端子同士がズレている状態や斜めから強く押し込むとアンテナ端子が変形・破損する場合があります。

I2C通信ができるよう、Arduinoシールドの下記部分にジャンパーを取り付けます。

デバイス組み立て2

両者の準備ができたら、Arduinoシールドと通信モジュールのコネクタを合わせ、垂直にはめ込みます。 この時、必要に応じて両面粘着テープを使用します。

デバイス組み立て3

注意事項

両面粘着テープを使用すると固定されるためArduinoシールドから通信モジュールを取り外すことができなくなります。その他機器への取り付けを検討されている場合は両面粘着テープを使わないようにしてください。 なお、ホストインタフェースの挿抜保証回数は30回となります。 コネクタ部は壊れやすいため、挿抜は注意して行ってください。

注意事項

以下付属品はアンテナをArduinoシールドに固定する場合に使用します。本ドキュメントでは使用しません。

  • ワッシャー(通信モジュール)
  • アンテナプレート(Arduinoシールド)
  • 樹脂スペーサ(Arduinoシールド)
  • ネジ(Arduinoシールド)

Arduino Unoおよびセンサーとの接続

Arduinoシールド下部のピンはArduino Unoのピン配置に対応しています。 ピンがズレないよう、垂直にArduino Unoにはめ込みます。

開発環境の準備

Arduino IDEのインストール

下記リンクから以下のように進めると、Arduino IDEのインストーラを入手できます。

Arduino

  • 画面上部のSoftwareをクリックします。
  • [Download the Arduino IDE]欄からWindows Installerをクリックします。
  • [Support the Arduino Software]欄からJUST DOWNLOADをクリックします。

入手したexeファイルを起動し、内容を適宜確認・変更のうえ以下のように進めます。

  • [Arduino Setup: License Agreement]画面でI Agreeをクリックします。
  • [Arduino Setup: Installation Option]画面でNextをクリックします。
  • [Arduino Setup: Installation Folder]画面でInstallをクリックします。
  • [Arduino Setup: Installing]画面に遷移するのでインストール終了まで待ちます。
  • [Arduino Setup: Completed]画面が表示されたらCloseをクリックします。
注意事項

ログインしているPCのアカウント権限によってはexeファイル起動時にユーザアカウント制御のポップアップが表示される場合があります。

Arduino IDEを起動すると、初めにsketch_xxxxxxxという以下内容が記載された画面が表示されます。

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

Arduinoの接続

USBケーブル(A-B)でPCとArduinoを接続し、以下の2点を設定します。

  • [ツール]>[ボード:”XXXXX”]からArduino/Genuino Unoをクリックします。
  • [ツール]>[シリアルポート:”XXXXX”]からCOMx(Arduino/Genuino Uno)をクリックします。

通電して1分ほど経過するとUSBポート近くのLEDが1回点滅に遷移し、通信モジュールからプラットフォームへ接続されたことが確認できます。

注意事項

通電後しばらく経過しても2回点滅から1回点滅に遷移しない場合、以下の環境を変えてお試しください。

改善しない場合は、故障かなと思ったら をご確認ください。

SakuraIOライブラリの入手

さくらインターネットが提供するArduinoのライブラリを入手します。 [スケッチ]>[ライブラリをインクルード]>[ライブラリを管理…]をクリックします。 検索機能を使用し、SakuraIOライブラリをインストールします。

[検索をフィルタ…]欄でsakuraioを入力し、最新バージョンを指定してインストールをクリックします。

ArduinoIDE操作1

SakuraIOの名称の横にバージョンとINSTALLEDが表示されたら閉じるをクリックします。

ArduinoIDE操作2

手入力送信用プログラムの書き込み

手入力によるデータ送信確認のため、予め用意されているスケッチをArduinoに書き込みます。 [ファイル]>[スケッチ例]>[SakuraIO]からShellを呼び出し、マイコンに書き込みます。

この時、Webブラウザで作成した連携サービスページを開いておきます。

サービス作成3

Shellスケッチを呼び出したら、マイコンボードに書き込むボタンをクリックします。

注意事項

Arduino IDE が古い場合、コンパイルに失敗する場合があります。 コンパイルに失敗した場合は、Arduino IDEを最新版にアップデートして、再度お試しください。

Shellスケッチ1

書き込みが終わったら、シリアルモニタからデータ送信のコマンドを入力します。 ボードへの書き込みが完了したら、シリアルモニタボタンをクリックします。

Shellスケッチ2

シリアルモニタ画面で改行をCRのみに変更したうえで以下コマンドを入力します。

enqueue 0 i 123
send

Shellスケッチ3

正常に実行されている場合、コマンド以外に表示はされません。

Shellスケッチ4

エラー無くコマンドが実行されたら連携サービス画面の[受信データ]欄にデータが表示されていることを確認します。

Shellスケッチ5

自動送信用プログラムの書き込み

自動でのデータ送信確認のため、予め用意されているスケッチをArduinoに書き込みます。 [ファイル]>[スケッチ例]>[SakuraIO]からStandardを呼び出し、マイコンに書き込みます。

この時、Webブラウザで作成した連携サービスページを開いておきます。

サービス作成3

Standardスケッチを呼び出したら、マイコンボードに書き込むボタンをクリックします。

standardスケッチ1

ボードへの書き込みが完了したら、シリアルモニタボタンをクリックします。

standardスケッチ2

Standardスケッチでは通信モジュールから以下のような取得可能な様々な情報を出力するのと同時に、カウンタ値を送信キューに送り、キューが5個になった時点で送信しています。

Waiting to come online

1
1 -> 1
Unixtime 1490867057
ADC0 2508
ADC1 1226
PID 1
UID 16B0100684
Ver v1.1.2-170223-7e6ce64
Status 128
Quality 4
Enqueue 1
Tx Available=29 Queued=1
Rx Available=32 Queued=0

2
2 -> 2
...
..
.

連携サービス画面の[受信データ]欄にデータが表示されていることを確認します。

standardスケッチ3

最後に

以上でチュートリアルは完了です!

お好きなセンサーモジュールを接続したり、別途販売しているブレイクアウトボードを使用して他のマイコンボードを組合せたり、実際の案件にお役立てください!