今回試したのは以下の構成です。最初から公式ドキュメントを読んでおけば良かったのですが、α版の情報に振り回されて時間がかかってしまいました…。
- さくらの通信モジュール(β)
- Arduinoシールド(β)
- Arduino Leonardo
ハードウェアの設定
Arduinoの上にシールドを乗せて、さらにその上に通信モジュールが乗っかるような感じです。多分、間違えようがないので詳細は割愛。マニュアル読まない人(自分)がハマるのが、ジャンパの設定です。I2Cを使う場合は以下のように接続(ショート)します。
Arduinoの設定
サンプルスケッチをコンパイルして導入します。以下は公式(?)リポジトリのREADMEに紹介されているサンプルにシリアル出力を追加したものです。getConnectionStatusの戻り値が0の時は正常に通信が出来ています。
# include <SakuraIO.h>
//SakuraIO_SPI sakuraio(10);
SakuraIO_I2C sakuraio;
uint32_t cnt;
void setup(){
cnt = 0;
while((sakuraio.getConnectionStatus() & 0x80) != 0x80){
delay(1000);
}
}
void loop() {
cnt++;
sakuraio.enqueueTx(0,cnt);
sakuraio.enqueueTx(1,cnt);
sakuraio.enqueueTx(2,cnt);
sakuraio.send();
delay(1000);
Serial.print(sakuraio.getConnectionStatus());
Serial.print(" ");
Serial.println(cnt);
}
コントロールパネル
(必要に応じて)プロジェクト、モジュール、サービスを登録します。
モジュールのIDとPASSは通信モジュールの表面に書いてあります(上記写真で塗りつぶしている箇所)ので、これをそのまま入力します。サービスはとりあえず疎通確認したいだけの時は「WebSocket」が便利そうです(通信状況を表示してくれる場所があります)。
モジュール一覧画面のステータスが「オンライン」に変わって、WebSocketの詳細画面で以下のように受信データが確認できれば接続完了です。
次回は…
温度センサの接続と、受信データを手元のデータベースに蓄積するところを構築します。
こんなIoTプロジェクトを進めています。
https://mukoyama.lmlab.net/