Arduino でデータを送信する

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

対象読者

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

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

用意するもの

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

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

会員IDの取得

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

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

ログイン

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

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

ログイン画面に会員IDとパスワードを入力してログインする。

約款の同意

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

各約款、規約を確認して、同意できるなら同意するをクリックします。

プロジェクト作成

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

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

プロジェクト追加ボタンをクリックすることで、プロジェクト作成画面に遷移します

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

名称を入力して、追加ボタンをクリックします。

通信モジュール登録

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

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

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

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

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

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

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

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

連携サービス作成

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

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

サービス追加をクリックして、連携サービスを追加します

WebSocket をクリックします。

連携サービスの中からWebSocket をクリックします。

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

作成するWebSocketの名前を入力します。

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

作成したWebSocket へ接続するためのURL, Tokenが確認できます。

デバイスの組み立て

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

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

注意事項

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

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

ジャンパーを取り付ける

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

通信モジュールのコネクタをArduino シールドの対向コネクタにはめ込みます。

注意事項

両面粘着テープを使用すると固定されるため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 を入力し、最新バージョンを指定して インストール をクリックします。

ライブラリマネージャーで SakuraIO を検索し、インストールします

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

INSTALLED になったら、ライブラリマネージャーを閉じます

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

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

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

作成したWebSocketの連携サービスページを開いておきます。

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

注意事項

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

Shellスケッチをマイコンボードに書き込みます。

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

シリアルモニタを開きます。

シリアルモニタ画面で改行を CRのみ に変更したうえで以下コマンドを入力します。 (チャンネル 0int32_t 型の値 123 を入れたデータを送信しています。)

enqueue 0 i 123
send
上記コマンドを入力して、送信ボタンをクリックします。

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

正常に実行されている場合、コマンド以外にシリアルモニタに表示はされません。

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

受信データ欄で送信したデータが表示されていることを確認します。

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

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

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

作成したWebSocketの連携サービスページを開いておきます。

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

standardスケッチをマイコンボードに書き込みます。

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

シリアルモニタを開きます。

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
...
..
.

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

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

最後に

以上でチュートリアルは完了です! これでArduinoからsakura.io へデータを送信し、送信されたデータを確認することができました。

例えば、センサーからのデータをsakura.ioへ送信したい場合には、センサーをArduinoに接続し、センサーからのデータをArduinoで取得できれば、上記のスケッチと同様にして簡単にセンサーデータをsakura.io へ送信することができます。

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