IchigoJamとの接続は4本のみ、赤の5VをCN5(5Pソケットをつける)の5Vへ、黒をGNDへ、その隣の黄色がI2CのSCLなのでEX1へ、次の黄色がI2CのSDAなのでIN3へ。
I2Cのプルアップ抵抗はモジュールに入っているとのことなので、これだけでOKです。(※プルアップ付きのEEPROMモジュールをつけても動作しました)
画面に表示されているように、たった2つのコマンドでモジュールからネットへの送信が完了しています!
POKE #700,48,1,73,#AA,0,0,0:?I2CW(79,#700,1,#701,6)
このように書けば、まさにたった1行。
先頭行 48(=#30) が送信コマンド、次にチャンネルの1、4byte正数を表す73(=ASC("I"))、今回は簡易的に先頭1byteのみ書き込む#AA。
I2CWコマンドで、アドレス79(=#4F)を指定し、仮想メモリ#700からの1byteと#701からのデータ6byteを送信します。
うまくいけば0が返ります。1と表示されたらI2Cの接続を確認してください。
箱から出して、初回のみファームウェアの更新が必要です。5Vをつないだら電波状態の良さそうなところで、しばらく放っておきましょう。
この時5Vが電池モバイルバッテリーなど、あまり電流が取れない電源だと失敗しました。
うまくいかない場合、ACアダプターから電源をとってみるといいでしょう。
LEDの3回点滅がモデムの起動待ち、その後、電波状況によらず2回点滅に遷移して、ファームウェア更新開始。
コネクターの電源5V(赤)の反対側の端、緑はUARTのTxDなので、これをIchigoJamのRxDにつなぐと、アップデートの様子をみることができます。
Sakura IoT Alpha (201505311830-89doeefo)
最後にこのように表示され、ファームウェア更新が完了!
一度、リセットして、LEDが3回点滅状態から、2回点滅になれば送信準備が整ったと思っていいみたいです。
下記のコマンドでネットワーク接続状態を見ることができますが、通信する前は 0 が返ってくるようです。
POKE #700,1:?I2CR(#4F,#700,1,#701,1):?PEEK(#701)
I2Cのアドレスは#4F、詳細気になる方は、Arduino用のサンプルプログラムを読むのがおすすめです。 (sakura-internet/SakuraAlphaArduino: SAKURA Internet IoT Alpha Communication Module Library for Arduino)
モジュールからネットに送ったデータの使い方は、さくらのIoT Platformαに用意されている開発者向け管理サービスから設定できます。
プロジェクトを作成し、連携サービスを追加
WebSocketサービスを追加したこの画面で、IchigoJamから送信すると送られてきたデータがリアルタイムに更新されます!楽しい!
Outgoingサービスを追加すると任意のWebサイトにデータをJSON形式で転送してくれます。
ひとまず受け取ったデータをWebアプリから連携できるテストサービスを作ってみました。
これで遠くで起きた何かを検出できちゃいます!
サービスを作らなくても設定だけでスマホに通知できたりすると、更にIoT化の敷居が下がって良さそうです!
今回使用したのは、SORACOMのSIMが入ったα版のモジュールです。製品化、楽しみですね!
設定不要、電源をつなぐだけでネットにつながってしまうIoTデバイスが、BASICで1行書くだけで簡単に作れてしまう。 どんなデバイスが、どんな業界から飛び出すか!?
関連リンク
- さくらのIoT通信モジュールのUARTの使い方 - Qiita(シリアル通信でも使える!)
- さくらのIoT Platformを試してみた | Developers.IO(Arduino用チュートリアル)
- Arduino用ライブラリとサンプル
- Arduinoでつくられたサンプルアプリ2つ
- さくらのIoT Platform|開発者向け(マニュアル)
- さくらの IoT Platform(公式サイト)
- 1行リターンですぐ動く!BASIC I/Oコンピュータ IchigoJam入門
- IchigoJam(公式サイト)