さくらのIoT Platform α

さくらのIoT Platform α

さくらインターネットが提供する「さくらのIoT Platform α」を使うためのプログラムです。

(さくらのIoT Platform β についてはこちら)

Sakura IoT Platform on mbed NXP LPC1768

Arduino向けに公開されているライブラリを mbedへ移植しました。

Warning

このページは さくらインターネット とは関係ありません。
このページの内容について さくらインターネット へ問い合わせしないでください。

Sakura IoT Platform on FRDM-KL25Z
Arduinoフォームファクターのmbedなら、さくらのIoTモジュール用シールド(さくらのIoT Shield ?)が使えます。
(例:FRDM-KL25Z、I2Cジャンパーは上側に設定。 UART(Serial)のジャンパーは外しておきます)

ライブラリ

あなたのコンパイラからインポートしてお使いください。

Import librarySakuraAlpha

SAKURA Internet IoT Alpha Communication Module Library for mbed

getNetworkStatus()

モジュールがオンラインかどうかを返す。

writeChannel(ch, data)

チャンネルのデータをセットする。(送信)

データの形式は int32_t, uint32_t, int64_t, uint64_t, float, double, uint8_t[8]

readChannel(ch, *type, *data)

チャンネルのデータを得る。(受信)

transmit(mode)

送信モードを設定する。

mode 0:None, 1:Auto, 2:Once

getTxChannelStatus(ch)

チャンネルごとの送信ステータスを得る

getRxChannelStatus(ch)

チャンネルごとの受信ステータスを得る

getUpdatedChannels(*buf, len)

受信されたチャンネルの情報を得る

戻り値: 個数
buf: チャンネル番号が入った配列

getUntransmittedChannels(*buf, len)

まだ送信されていないチャンネルの情報を得る

戻り値: 個数
buf: チャンネル番号が入った配列

サンプル

mbed LPC1768 向け

I2C接続

Import programSakuraAlpha_I2C

example for SAKURA Internet IoT Alpha Communication Module

mbedさくらのIoT モジュール
VU or VIN(5V)--12: +5V input
GND--11: GND
I2C SDA--9: I2C_SDA
I2C SCL--10: I2C_SCL

プルアップ抵抗はモジュール基板上に載っている。

FRDM-KL25Zのとき

//SakuraAlphaI2C sakura(p9, p10); // sda, scl (NXP LPC1768)
SakuraAlphaI2C sakura(PTE0, PTE1); // sda, scl (FRDM-KL25Z)

SPI接続

Import programSakuraAlpha_SPI

example for SAKURA Internet IoT Alpha Communication Module

mbedさくらのIoT モジュール
VU or VIN(5V)--12: +5V input
GND--11: GND
SPI MOSI->4: SPI_MOSI
SPI MISO<-5: SPI_MISO
SPI SCK->6: SPI_SCK
DigitalOut->7: SPI_CS

シリアル接続(UART)

対話型インターフェース 115200bps

helpと打つとコマンドのリストが表示される。

ライブラリはまだありません。

mbed or PCさくらのIoT モジュール
VU or VIN(5V)--12: +5V input
GND--11: GND
Serial RX<-1: UART_Tx
Serial TX->2: UART_Rx

ネットワーク

モジュールからのデータは、専用ネットワーク(さくらのIoT閉域網)でPlatformのサーバへ送受信される。
インターネットからはサーバーを介してデータの受け渡しができる。

               +------------+           +------------+
      I2C/SPI  | Sakura IoT |  Network  | Sakura IoT | WebSocket/WebHook
mbed <-------> |     Module | <-------> |   Platform | <---------------> User
               +------------+           +------------+

JSON形式でデータが得られる。

{"type": "channels", "module": "xxxxx", "payload": {"channels": [{"value": 123, "channel": 0, "type": "I"}, 
{"value": 456, "channel": 1, "type": "I"}, {"value": 789, "channel": 2, "type": "I"}]}, 
"datetime": "2016-06-01T00:00:00.000000000Z"}

JSON形式でデータを送るとモジュールに届く。

{"type": "channels", "module": "xxxxx", "payload": {"channels": [{"value": 999, "channel": 0, "type": "I"}]},
"datetime": "2016-06-01T00:00:00.000000000Z"}

WebSocket

コントロールパネル にて表示されるURL (wss:/ /secure.sakura.ad.jp/~~) へ接続すると、逐次データが送られてくる。

動作確認用HTML+JavaScriptサンプル

Outgoing Webhook

登録しておいたURLへ、逐次POSTでデータが送られてくる。

Incoming Webhook

メモ

  • 汎用の通信モジュールとはちょっと違う
  • 通信路のセキュリティを保つため、インターネットではなく専用のネットワークへ接続している
  • データの送信と受信ができる
  • 決められた形式のデータのやりとりのみできる
  • しっかりした電源(5V)を用意すること (うまく接続できないときはACアダプターを使う)
  • 平均210mAくらい流れるので、将来のバージョンで省電力機能が搭載されるといいな

ROBOBA


Please log in to post comments.