【セキュアモバイルコネクト】SIMルート機能をリリースしました

IoTチームの川畑です。セキュアモバイルコネクトにて新機能をリリースしましたので、その概要から使い方・利用例をご紹介します。

SIMルートで実現できること

SIMルート機能では、SIMカードのICCID(固有識別番号)をNext-Hopとした静的IPルーティングができるようになりました。利用感覚はルータに静的IPルートを設定する事と同じように、CIDR表記の宛先ネットワークアドレス(e.g. 192.168.0.0/24)と、そのNext-HopになるSIMカードをコントロールパネル上から投入するだけで簡単に利用可能です。

使い所

昨今のLTEデバイスでは、EthernetやWiFi(IEEE802.11)の機能も持つような製品がリリースされ、携帯電話のみならず様々な場面でLTEネットワークを活用できるようになっています。

所謂M2MルータやIoTゲートウェイと呼ばれるこれらの製品は、特徴としてEthernet/LTE間のL3ルーティング機能が挙げられ、Ethernetポートに設定されたネットワークと、その先のLTEネットワークをNAPTを噛まずに直接接続可能です。一般的なポケットWiFiや携帯電話のテザリング機能でも、LTEデバイス自身の配下の端末をモバイルネットワークに接続することができますが、その多くはNAPTで実現されています。ここで問題なのは、そのLTEデバイス配下の端末にLTE外の通常ネットワークから直接アクセスできないことが挙げられるでしょう。

通常のインターネット専用MVNOと違い、我々のサービスはクラウドとモバイル端末を完全に閉域で相互接続できることにあります。インターネット専用MVNOではセキュリティ上懸念されていた LTEデバイスがPort LISTENしてサーバとして動作する ような構成が安全に取れるようになるのはもちろんの事、今回のSIMルート機能では更にその配下の端末がサーバとして動作しても安全に接続できるようになりました。

モバイルネットワークの利用形態

MNOやMVNOとの契約によって、利用可能な構成が全く異なります。弊社のセキュアモバイルコネクトを使った場合も含め、SIMが入っているデバイスへのアクセスを大きく4パータンにまとめてみました。(クリックで拡大)

パターン1: 通常のMNO/MVNO

一般的に契約可能なMNOやMVNOのLTEネットワークの構成です。LTEデバイスにはプライベートIPアドレスが割り当てられ、端末からインターネットにアクセスしようとすると2段でNAPTがかかります。通常のブラウジングのような動作には全く問題無い構成ですが、LTEデバイスやその配下の端末に直接アクセスしたい場合には不向きな構成です。

パターン2: グローバルIPオプションのついたMNO/MVNO

オプション料金を支払えば、グローバルIPアドレスがLTEデバイスに割り当てられるサービスです。直接グローバルIPアドレスが付くので、LTEデバイスがPort ForwardingやDMZに対応しているものであれば、配下の端末へのアクセスはある程度可能そうです。ですが、インターネットに直接晒されているため、直接DoS攻撃に遭うなど安全性に欠ける面が多く見られます。(DoSに遭ったとき、そのまま下り通信として計算された時には大変なことに…)

パターン3: 閉域網接続可能なMNO/MVNO

コンシューマ向けではなく、法人契約をターゲットにしたプランを打ち出しているMNOやMNVOが存在します。モバイル端末をお客様のネットワーク(データセンタやオフィス)まで直接閉域網で安全にデータ通信ができる仕組みで、インターネットからのリーチや他のお客様からの攻撃を受けることはありません。この場合ですと、 NAPTだけではなくL3 Routingできるデバイスでも使えるのでは? と思いがちですが、LTE網にデバイスをアタッチしたときに割り当てられるプライベートIPアドレスは、基本的に動的です。加えて、通常はパケットの宛先がLTEデバイスに付与したIPアドレスのときのみに通信が成立するようになっており、それ以外(ここではデバイス配下のネットワーク)の宛先のパケットは捨てられてしまいます。

パターン4: セキュアモバイルコネクト


弊社のサービスですが、上記3パターンの問題を解消しています。モバイルゲートウェイ(お客様のLTEデバイスを収容するアプライアンス)をキャリアと同じ感覚でお客様に操作して頂けるように作っており、端末に割り当てるIPアドレスをSIMカード毎に好きな値に固定できますし、インターネット接続も任意(デフォルトはOFF)に可能です。 今回リリースしたSIMルート機能についても、IPアドレスではなくICCIDをNext-Hopとすることで、端末(SIM)に割り当てるIPアドレスが変更されても、必ずそのSIMカードの先にStatic Routeが設定された状態が担保されます。

まとめ

SIMへのアクセスを観点に、簡単に表にまとめてみました

パターン メリット デメリット
パターン1 安価でキャリア選択肢が豊富 キャリア側でNAPTされる
SSH Reverse TunnelもしくはIPsecが必要
パターン2 安価でキャリア選択肢が豊富
デバイスに直接アクセス可能
インターネットからの攻撃に巻き込まれやすい
IPアドレスが変動する可能性が高い
パターン3 インターネットからの攻撃に巻き込まれない
デバイスに直接アクセス可能
IPアドレスが変動する可能性が高い
パターン4 IMSIとIPアドレスの1:1対応が可能
デバイスに直接アクセス可能
デバイスを超えてのルーティング設定が可能
特になし

最後に

今回リリースしたSIMルート機能の概要と、その使い方やモバイルネットワークの特徴・利用例をお伝えしました。SIMルートについては、その独自性について特許出願中です!本機能の具体的な設定方法については公式ドキュメントに掲載しておりますので、SIMルートドキュメントを御覧ください。今後とも、sakura.ioならびにセキュアモバイルコネクトを宜しくおねがいします!

Continue Reading

sakura.ioモジュールファームウェア”Version1.4.2″公開のお知らせ

sakura.ioモジュールのファームウェア開発を担当しています奥原です。
本日、sakura.ioモジュールファームウェアのVersion 1.4.2を公開しましたのでお知らせします。

Version 1.4.0から1.4.1が動作しているモジュールでSPIの推奨クロックである350kHzを超える設定で使用した際にパリティエラー等が発生し通信が不安定になっていました。
本バージョンでは1MHz以上のクロックで動作させた際のSPI通信の安定性が改善しました。

Version 1.4系でSPIをご利用されている場合は更新をお勧めいたします。

あわせてArduinoライブラリの更新を行いVersion 1.1.4になっておりますので更新をお勧めいたします。

sakura.ioをより便利により快適にご利用いただけるよう努めてまいりますので、今後ともよろしくお願いいたします。

Continue Reading

通信量の可視化機能をリリースしました

こんにちは、 sakura.io のプラットフォーム開発を担当しています、上條です。

コントロールパネルのリニューアルによって、モジュールの通信量が分かりやすく表示されるようになりました。通信量を確認するページは、モジュールごと・アカウント全体の2種類用意されています。

アカウントの使用通信量

アカウント毎の通信量を確認するためには、ヘッダの アカウントの使用通信量 リンクをクリックします。 アカウントの使用通信量 のページでは、アカウントに登録されているモジュールの通信量を合算して確認することが出来ます。

モジュールの使用通信量

モジュールごとの通信量を確認するためには、モジュールが登録されているプロジェクトの詳細画面から、グラフボタンをクリックします。 モジュールの使用通信量 のページでは、月毎・日毎の通信量が確認できます。

最後に

今回のリリースによって、通信量・ポイントの消費がより直感的に分かるようになったのではないかと思います。
また、大量のモジュールをお使いのお客様は、APIをご利用いただくことで同様の情報が取得可能です。
今後とも、sakura.ioをよろしくおねがいします。

Continue Reading

sakura.io のコントロールパネルが新しくなりました

こんにちは、 sakura.io のプラットフォーム開発を担当しています、藤原です。
本投稿では、sakura.io コントロールパネルのリニューアルについてお知らせいたします。
以下が新しいコントロールパネルです。

何故リニューアルを行ったのか?

理由としては「表示が遅くなる場合があるから」 です。
旧コントロールパネルは、仮に特定のプロジェクトに 5万個モジュールなどの大量のデータが登録されていた場合に、全てのモジュールを取得するようになっておりました。

新コントロールパネルでは、同様の条件で 分割して モジュールの情報を返すように変更されました。
一般的に言われる「ページネーション」の適用になります。

ページネーションにより

  1. サーバサイド側の SQL の削減、オブジェクト生成
  2. クライアントサイドのオブジェクトの生成

が、削減され体感描画速度が向上しました。

ページネーションによる管理 API の利用方法

ページネーションの導入により、管理 API の v2 を今回開発しました。
もちろん、以前の 管理 API v1 は今後もご利用いただけます。
これから管理 API v2 の実際の利用方法について示します。
管理 API 呼び出しに際する API Token と API Secret の取得は、管理API 利用ガイド を参考にしてください。
今回はモジュールのリストを取得してみることにします。

管理 API v1

$ curl -XGET  --header 'Accept: application/json' --user '{api token}:{api secret}'   'https://api.sakura.io/v1/modules/'

このようなリクエストを送ると、下記のようなレスポンスデータが返却されます。

[
{
"id": "1",
"name": "",
"project": 1,
"is_online": false,
"serl_number": "*********",
"model": "test-model"
},
{
"id": "2",
"name": "",
"project": 1,
"is_online": false,
"serial_number": "*********",
"model": "test-model"
},
...
]

管理 API v2

次に、ページネーションを用いた場合のデータの取得方法について解説します。
変更点としては、下記になります。

  1. アクセスする URL
  2. cursor を用いてリクエストを送信

アクセスする URL

アクセスする URL は下記のように変更になります。

https://api.sakura.io/v1/modules/ => https://api.sakura.io/v2/modules/

cursor を用いてリクエストを送信

こちらは実例を交えながら後述します。
それでは実際にアクセスして情報を取得してみましょう。

$ curl -XGET  --header 'Accept: application/json' --user '{api token}:{api secret}'   'https://api.sakura.io/v2/modules/'

このとき、以下のような結果が表示されます。

{
"meta": {
"per_page": 100,
"links": {
"next": "https://api.sakura.io/v2/modules/?cursor=bbbbbbbbbb",
"previous": null
}
},
"results": [
{
"id": "1",
"name": "",
"project": 1,
"is_online": false,
"serial_number": "*********",
"model": "test-model"
},
...
]
}

このとき、 1 ~ 100件目が表示されました。
101 件目以降を表示したい場合には、 先程前述した 「cursor を用いてリクエストを送信」 を利用します。
レスポンスの next の URL にリクエストを投げます。

$ curl  -XGET --header 'Accept: application/json' --user '{token}:{secret}' "https://api .sakura.io/v2/modules/?cursor=bbbbbbbbbb"

実際に投げると、下記のようにレスポンスが帰ってきて、101 件目以降が表示されました。

{
"meta": {
"per_page": 100,
"links": {
"next": "https://api.sakura.io/v2/modules/?cursor=aaaaaaaaaaa",
"previous": "https://api.sakura.io/v2/modules/?evcursor=ccccccccc"
}
},
"results": [
{
"id": "101",
"name": "",
"project": 1,
"is_online": false,
"serial_number": "********",
"model": "test-model"
},
...
]
}

cursor を用いてリクエストを送信」を繰り返しますと、最終ページにたどり着きます。
最終的に next が null になると、最終ページとなります。
具体的には下記のようなレスポンスが帰ってきた場合です。

{
"meta": {
"per_page": 100,
"links": {
"next": null,
"previous": "https://api.sakura.io/v2/modules/?cursor=yyyyyyyyyyy"
}
},
"results": [
{
"id": "50000",
"name": "",
"project": 1,
"is_online": false,
"serial_number": "********",
"model": "test-model"
},
...
]
}

 

最後に

コントロールパネルのリニューアルとその背景について解説させていただきました。
今回のリニューアルにより、大量のモジュールやプロジェクトをご利用のお客様も安心してご利用いただけます。
今後とも sakura.io をよろしくお願いいたします。

Continue Reading

sakura.ioモジュール(LTE)の省電力機能

sakura.ioモジュールのファームウェア開発を担当しています奥原です。
5/7にリリースしましたファームウェアversion 1.4.0にて、実装予定機能となっていました『省電力管理機能』を追加いたしました。
既存の電力モードに『省電力管理機能』が加わり省電力機能の関係が少々複雑になりましたので、改めてsakura.ioモジュールの省電力機能についてご紹介いたします。
また、省電力機能を使用した際の実測値もご紹介いたします。

sakura.ioモジュールの電力モード

sakura.ioモジュールの電力モードは以下の図のようになります・
sakura.ioモジュール電源モード
sakura.ioモジュールには、ActiveモードとDeepSleepモードがあります。
ActiveモードとDeepSleepモードは外部のマイコンからWAKE_IN端子を制御することで切り替えます。

モード名 WAKE_IN端子 説明
Active Hi 動作状態です。
LTE経由でsakura.ioプラットフォームと接続します。
不意の切断があった場合を接続状態を維持するために自動的に再接続を行います。
データの送受信などモジュールの機能が使用できる状態です。
DeepSleep Lo 停止状態です。
消費電力は最小にするため、WAKE_IN端子の監視以外の機能を停止します。
sakura.ioプラットフォームとの接続が切断されていますので送受信は一切行えません。

さらにファームウェアのVersion 1.4.0ではSCM-LTE-01を対象にActiveモード時の待機消費電力を制御する省電力管理機能を追加しました。
省電力管理機能には

  • 省電力制御を行わない『省電力制御無効モード』
  • 無通信時にLTEモデムのスリープ機能を有効にする『自動スリープモード』

の2つのモードがあります。
モジュールの電源投入後は『省電力制御無効モード』になります。
追加された『省電力モード設定コマンド』でモードを選択します。

省電力モード名 設定値 説明
省電力機能無効 0x00 省電力制御を行いません。
従来のファームウェアと同等の振る舞いとなります。
オートスリープ 0x01 無通信時にLTEモデムをスリープさせます。

省電力機能の使い方

Arduino、python、mbedの各ライブラリに『省電力モード設定コマンド』と『省電力モード取得コマンド』を追加しました。

最新版のライブラリをご使用ください。
また、実例としてsakura.io評価基板で動作するmbedのサンプルプログラムを作成しました。
省電力機能をご使用の際のご参考になさってください。

消費電流の計測

SCM-LTE-01の電流計測
開発バージョンのsakura.io評価ボードを電流計測用に改造し、SCM-LTE-01に流れる電流を以下の機材で計測しました。

デジタルマルチメータ
KEYSIGHT 34465A
安定化電源
KIKUSUI PAK20-18A

計測の都合上、安定化電源のフィードバックを有効にしていません。
そのため、電源電圧の変化があり厳密な電流値とはなっていません。
参考値として見ていただければと思います。

DeepSleepモード

待機状態

平均電流は約10μAです。

Activeモード復帰から送信

実際の利用を想定して、DeepSleepモード→Activeモード→接続→データ送信→DeepSleepモードと遷移させたときの消費電流のグラフを以下に示します。
DeepSleepモードの電流グラフ
Activeモードに復帰してから128Byteのデータ送信を終えDeepSleepに入るまで約57秒かかっています。
この間の平均電流は約117.1mAです。
57秒のうち接続待ちが約55秒データ送信に約2秒かかっています。
Activeモードとは違い接続を維持していませんので、電源投入時と同様にLTE接続とsakura.ioプラットフォームへの接続の時間がかかります。

Activeモード(省電力制御無効)

電源投入から待機状態

モジュールの電源投入から待機状態で30分経過するまでの電流値のグラフです。
省電力制御無効モード30分待受
平均電流は71.5mA、最大電流は408.6mAです。
グラフの10分および20分周辺の消費電流の増加は、10分間隔でsakura.ioプラットフォームに送信している死活監視パケットの送信によるものです。
省電力制御無効 定常
死活監視パケット送信間の定常状態の平均電流は68.2mA、最大電流は119.0mAです。

送信

データ送信開始から定常状態に戻るまでのグラフです。
省電力管理無効 送信
約10.3秒かかっており、平均電流は131.8mA、最大電流は285.0mAです。

受信

受信開始から定常状態に戻るまでのグラフです。
省電力制御無効 受信
約10.4秒かかっており、平均電流は129.6mA、最大電流は366.2mAです。

Activeモード(オートスリープ)

電源投入から待機状態

モジュールの電源投入から待受状態で30分経過するまでの電流値のグラフです。
自動スリープモード30分待受
平均電流は14.1mA、最大電流は399.2mAでした。
オートスリープ 定常
死活監視パケット送信間の定常状態の平均電流は9.6mA、最大電流は95.0mA消費しています。

送信

送信開始から定常状態へ戻るまでのグラフです。
オートスリープ 送信
約11.2秒かかっており、平均電流は100.0mA、最大電流は375.3mAです。

受信

受信開始から定常状態へ戻るまでのグラフです。
自動スリープ 受信
約11.4秒かかっており、平均電流は106.1mA、最大電流は407.0mAです。

さいごに

sakura.ioのリリース時より、将来実装機能としていた『省電力管理機能』をお届けすることができました。
今後もより便利で使いやすいプラットフォームになるように機能追加、機能改善を続けて参りますのでよろしくお願いいたします。

Continue Reading

sakura.io 評価ボードではじめるIoT開発

本記事は、sakura.ioの利用者で、電鍵とsakura.ioを組み合わせを試みて頂いたりしている、伊勢羽様からご寄稿頂いたものになります!
こういった記事は本当にありがたいので、「何か書いてみたい!」という方がおられましたら、ぜひご連絡ください〜
※本記事内で触って頂いている検証用ボードは、これからみなさまにご提供できるかなぁ〜どうかなと言う段階のものをテストして頂いたもので、開発中のものになります。ご提供に向けて進めておりますので少々お待ちください!

導入

とあるC++プログラマのつぶやき

“最近「IoT」という言葉が流行っていて、興味はあるけど調べてみたら見たことない基板や、やったことのない電子工作の話ばかりが出てくる。いったいどこから始めればいいのだろう・・・”

はい、そんなあなたにはsakura.io Evaluation Boardがおススメです!

はじめに

mbedベースの、C++言語でIoT開発が可能なsakura.io Evaluation Board(以下、評価ボード)のリリースに先駆けまして、mbed開発未経験ながらも評価ボードを初めて手にして開発環境構築からサンプルプログラム作成まで試用させていただきましたIseba’s Laboの伊勢羽です。趣味で電子工作とC++プログラミングをしている一般的なユーザーですが、今回評価ボードでの開発過程や考えた事、作ったものについてお話をしたいと思います。

Continue Reading

『「sakura.io」ではじめるIoT電子工作』のご紹介

2月よりIoTチームに参加しました奥原です。  
今までは組み込みソフトウェアエンジニアとして、マイコンのファームウェアから組み込みLinuxのカーネル周り、アプリケーションなどなどデバイス周りのソフトウェアに携わってきました。  
IoTチームでは主に『さくらの通信モジュール』などのファームウェアを担当します。  
よろしくお願いします。

今回は先日、工学社より発売されました書籍「sakura.io」ではじめるIoT電子工作を紹介させていただきます。

どんな本?

本書は今までの電子工作にsakura.ioを追加して『お手軽にIoTに対応した電子工作をやってみよう!』という本です。

sakura.ioとは何なのかという解説からはじまり、sakura.ioの登録、Arduinoでのsakura.ioの使い方、Raspberry Piでのsakura.ioの使い方、sakura.ioとサービスの連携の仕方と必要なことがていねいに説明されています。
「ネットワークのことなんでわからないよ!」という方でも手順を追っていけば、収集したデータをインターネットから読んだり、インターネット経由で操作できる電子工作ができます。

また、電子工作も易しくイラストや写真に従ってスイッチやLED、センサーをブレッドボードに挿しジャンパワイヤを配線していけば完成します。
回路図を見ながら、はんだごてを握ってはんだ付け…は必要ないので、「電子工作はやったこと無いけどIoT対応のWEBサービスを作ってみたい」という方でも実際に動作するモノができます。

本書は全体的に解説や手順の説明がていねいで、さくらの通信モジュールと必要なモノを渡されて「この本読んでやってみてね」と言われても困らないと思います。

内容

簡単に本書の内容を紹介します。
(以下の〇〇編は私が勝手に分類したもので公式なものではありませんのでご注意ください)

導入編

1章と2章が該当します。

1章では、単体で販売されているLTEモジュールと違い、sakura.ioは、LTEモジュール、LTEの通信網、ソフトウェアライブラリ(Arduino、Pythonなど)、コントロールパネル、外部連携機能をオールインワンにしたサービスであること、少量のデータを間欠で送ることに特化していることがちゃんと解説されています。  

2章では、さくらインターネットへの会員登録とsakura.ioの初期登録の手順を解説しています。

Arduino*1

3章から5章が該当します。
Arduino編を読むと以下のことができます。

  • Arduinoライブラリを使ったsakura.ioへのデータ送信
  • Arduinoライブラリを使ったsakura.ioからのデータ受信
  • WebSocketを使ったsakura.ioからインターネット(ブラウザ)へのデータ送信
  • WebSocketを使ったインターネット(ブラウザ)からsakura.ioへのデータ送信

3章はプッシュスイッチのON/OFFをsakura.ioの管理画面で確認します。
Arduino編の導入にあたり、Arduinoの開発環境のセットアップ、Arduinoとさくらの通信モジュールの接続、プッシュスイッチまわりの回路の配線、sakura.ioの管理画面での確認まで一通りを順を追って解説しています。

4章はArduinoに接続した温度センサーで計測したデータをsakura.ioのWebSocketインターフェースを通じてブラウザ(HTML5+JavaScriptのプログラム)で確認します。

5章はブラウザからArduinoに接続したフルカラーLEDの色をコントロールします。
sakura.ioからデータを受け取る、受信の要素が追加されます。

最初はミニマムで始めて徐々に要素を増やしていく構成です。
実際に手を動かしながら理解を深めていくスタイルです。

Raspberry Pi*2

6章と7章が該当します。
Raspberry Pi編を読むと以下のことができます。

  • Pythonライブラリを使ったsakura.ioへのデータ送信
    • BluetoothLEを使ったセンサーデータの収集
  • Pythonライブラリを使ったsakura.ioからのデータ受信

(sakura.ioからインターネット側への連携は、Arduino編の3章、5章を参照ください)

6章では3章と5章と同じことはRaspberry Piで再現します。
Arduinoと同じことをRaspberry Piではどのようにやるのかという比較ができます。

7章では、BluetoothLEセンサモジュールから取得した温度、湿度、気圧のデータをsakura.ioの管理画面で確認します。
最小構成ですが、無線接続のセンサーからデータを集めネットワークに送る『センサーネットワークのゲートウェイ』に相当する内容です。
同様のアプリケーションを実現したい方には参考になると思います。

Raspberry PiはArduinoとは違いマイコンではなく『小さなパソコン』なので、性能的にソフトウェアでできることが多くなります。
反面、マイコンに比べてI/Oが少ない上にLinuxがハードウェアを管理するので、アプリケーションからハードウェアを直に制御することは苦手です。

Arduino編との対比でRaspberry Piが得意とするBLEなど高レイヤの通信機能を使い苦手とする低レイヤのシリアル(i2c)通信は使わないという、ArduinoとRaspberry Piの向き不向きがしっかりと押さえられた構成になっていると感じます。

サービス連携編

8章が該当します。
サービス連携編を読むと以下のことができます。

  • sakura.ioからWebSocketで取得したデータをJavaScriptでグラフ描画する
  • sakura.ioからMQTTを使ってデータを読み書きする
  • sakura.ioのデータストアにデータを蓄積し、蓄積したデータをAPIで取得する
  • Webhookでデータを送受信する
  • ファイル送信機能をつかってモジュール側(ArduionoやRaspberry Piなど)へファイルを送る

本書のタイトルからは電子工作に寄った印象を受けますが、この第8章は意外と充実しています。
どのインターフェースでどのようなことができるのか比較できるのは良いと感じます。

さいごに

本書は順を追って丁寧に説明する構成になっていて、実際に手を動かしていくときに役立つと思います。
自習はもちろん、ワークショップの教材としても良いなと感じました。

こんな方におすすめ

  • sakura.ioで何ができるか知りたい方
  • sakura.io(さくらの通信モジュール)を買ったあとに何ができるのか悩んでいる方
  • すでに作った電子工作をインターネットと連携させたい方
  • sakura.ioと連携するアプリを作りたい方

リンク集


  1. ArduinoはArduino HoldingおよびArduino財団が設計・製造・販売しているワンボードマイコンボード。容易に電子回路やプログラミングができるため世界的にユーザーが多い。
  2. Raspberry PiはRaspberry Pi財団が設計しているシングルボードコンピュータ。電子回路がつなぎやすい安価なLinux PCとして世界的にユーザーが多い。
Continue Reading

Google Cloud Pub/Sub連携をリリースしました

こんにちは。プラットフォームチームの中西です。

これまで、sakura.io の連携サービスとして、Amazon Web Services とは AWS IoT、Microsoft Azure とは Azure IoT Hub と接続することができました。
本日、Google Cloud Platform(TM) の一機能である Google Cloud Pub/Sub との連携サービスをリリースしました。
これにより、sakura.io モジュールから送信された情報を Google Cloud Platform 上に気軽に展開することが可能となります。

Continue Reading

python-sakuraio v0.1.5 をリリースしました

こんにちは、こたまごです。

sakura.ioをPythonから利用するライブラリであるpython-sakuraioのv0.1.5を先ほどPyPiにリリースしました。

今回の一番大きな追加点は、送信データをキューに入れる際の簡略化です。
これまでは送りたい値を8バイトのバイト列にユーザー側で変換し、 enqueue_tx_raw(channel, type, data, offset=0) メソッドを利用してキューに追加していました。

今回のバージョンでは型の指定が不要な enqueue_tx(channel, value, offset=0) メソッドを追加しています。

valueが整数の場合には 'l' (int64) or 'L' (uint64) 、小数の場合には 'd' (double) 、文字列やバイト列の場合には 'b' (bytes) として自動的に変換しキューに追加されます。

ライブラリの詳細についてはRead the Docs に掲載しているドキュメントをご覧ください。

利用例

counter = 12
temperature = 27.5
humidity = 45.6


sakuraio.enqueue_tx(1, counter)
sakuraio.enqueue_tx(2, temperature)
sakuraio.enqueue_tx(3, humidity)
sakuraio.send()
Continue Reading

IchigoJam BASIC RPiでsakura.ioを使う

さくらインターネット Advent Calendar 2017の8日目の記事です。

こんにちは、こたまごです。

今日は、IchigoJam BASIC RPiの紹介と、sakura.ioと組み合わせてみて動いた報告をします。

IchigoJam

みなさま、IchigoJamはご存知でしょうか。
ご存知の通り、LPC1114で構成された、BASICでプログラミングができる教育用こどもパソコンです。

IcigoJam と sakura.io

IchigoJamでsakura.ioを接続するという利用方法は既に生みの親の福野さんから公開されています。

福野泰介の一日一創 – IchigoJamではじめるIoT sakura.io ハンズオン(データ発信編)

また、実環境でも利用されており、鯖江市のバスの運行状況もIchigoJamとsakura.ioで収集され、オープンデータとして公開されていたりします。

sakura.io x IchigoJam BASIC = かんたんIoT 〜鯖江市のバスで稼働する公共交通IoT〜

 

IchigoJam BASIC RPi

そのIchigoJamがそのままRaspberry Piでも動作する、という「IchigoJam BASIC RPi」が10月に公開されています。

モニタとキーボードを繋ぐだけでプログラミングができるという利便性をそのままにRaspberry Piでプログラミングができます。実環境ではワンチップマイコンのIchigoJamがおすすめですが、HDMIも使えて、USBキーボードも使えるので、試したい時にはおすすめです。

IchigoJam BASIC RPi と sakura.io

先日、さくらインターネットはsakura.ioとRaspberry Piを簡単に接続できるsakura.io HAT for Raspberry Piを発売しました。

sakura.io HAT for Raspberry Pi

 

Raspberry Pi HAT と IchigoJam BASIC RPiがあるということは試すしかないですよね!

ということで、やってみました。

シールドにsakura.ioモジュールを載せて、Raspberry Piに載っけるだけです。

sakura.io HAT

IchigoJam BASIC RPiのインストールはSDカードにダウンロードしたファイルをコピーするだけです。

起動したら先ほどの福野さんの記事を参考に、以下のように入力しました。

1 'sakura.io Test
20 POKE#800,#21,10,1,76,N,N>>8,0,0,0,0,0,0,N>>8^N^102
30 ?I2CR(79,#800,13,#820,3)

このプログラムでは、変数Nに入っている整数をチャンネル1としてsakura.ioに送信するというプログラムです。

その上で、以下のように入力すると送信されます。

N=10
RUN

sakura.ioのWebSocket画面でみてみると、ちゃんと届いていることがわかります。

全く同じコードでワンチップマイコンとRaspberry Piと動くのは便利ですね!

Linuxで使う場合には

Raspberry PiだからLinuxで使いたい、という方のために、Pythonのライブラリ(python-sakuraio)も公開しています。

sudo apt-get install python3-smbus
sudo pip3 install sakuraio

でインストールできるので、こちらもぜひご利用ください。

Continue Reading
  • 1
  • 2
Close Menu