GCPUG in Osaka で sakura.io と GCPの連携について発表しました

6/13(水) に行われた GCPUG in Osaka #7 で、 sakura.io と GCP の連携について発表してきました。

公開用資料は、 Speaker Deck に上がっています。

当日のDataflowのコードなどは、GitHub に置いてあります。

発表内容について

今回の発表では、 sakura.io の機能を使って、 GCP Pub/Subにデータを送信し、 Pub/Sub → Dataflow → BigQuery とデータを保存、Data Studio で可視化する、ということを行いました。
IoTをテーマに2つ発表があるということもあり、前半にサービス紹介を入れざるを得なかったことと、すでにDataflowなどを触っている方が多いという想定で資料を準備していたので、あまり細かなGCPのチュートリアルは入れていません。
今回、鯖江市と協力して行っている水位計測データを利用しました。デバイス側も開発・改善しつつのデータということもあり、プロダクション環境で扱うデータよりもはるかに除外値が多いのですが、実データ使ってDataflowが便利に使えることはお見せでき、連携した場合のイメージは何となく示すことができたと考えています。

最後に

今回、 Pub/Sub, Dataflow, BigQuery, Data Studio という4つを使ったのですが、他にもいくつか良く利用されるであろうソリューションがあります。
その1つがデータ分析のためのCloud MLです。
IoTでデータを収集する目的として、やはりデータを分析したい、というモチベーションがある場合が多く、今回Dataflowを中心に話すつもりではなく、Cloud MLを使ったデータ分析の話を中心に話すべく準備していました。
ただ、データの収集・保存の準備をしている中で、私自身が初めて実証実験のデータを見て、想定以上の異常データがあることに気づき前処理に時間を取られたということがあり、だったらこの知見をお話しておいた方が、参加者が(sakura.io に限らず、)IoTプロダクトを作るときに参考になるのでは、と思い、Dataflow を使った前処理のお話をさせていただきました。

また機会があれば、 sakura.io から Cloud MLまでの連携をする場合の紹介ができればと思います。

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

さくらインターネットのIoT事業について

■IoT関連2つのソリューションについて

こんにちは、さくらインターネットでIoT関連の事業を担当させて頂いている山口です。2018年2月からセキュアモバイルコネクトというサービスの提供を開始させていただいたのですが、一昨年からやらせていただいていたsakura.ioというサービスとの違いがわかりにくい、今後はどちらに力を入れていくのか?といったお声を頂くことがあったので、どのような事をさくらインターネットとしてやらせて頂いているのかについて、書かせていただきたいと思います。

さくらインターネットのIoT事業

■風が吹けば桶屋がもうかる?ってのをちゃんと知りたい

さくらインターネットがもともと何をしたかったのか?というと、データの関連性/相関性を世界でシェアできるそのためのプラットフォームを作りたいということになります。

風が吹けば桶屋が儲かる」ということわざを聞いたことがあるかと思います。これは、可能性の低い因果関係を表すものですが、これから様々なモノコトのデータが情報になり、ネットワークで共有されAIやロボティクスによって活用される、情報中心の世の中になっていくと言われています。このような世界になってくると、どのようになるでしょうか?

さくらでは、IoTそのものでなにかができるということではなくて手段として位置づけています。まずは人々の生活の中からなんらか変化や活動量、変化量などのデータがIoTの領域の技術を活用され、ネットワークに上がってきます。そのデータがAIの領域の技術を使って何らかの情報になり、その情報をきっかけにしてロボティクスの領域の技術を使って生活に何らかのリアクション/アクションを起こし、またその変化を検出して・・・

という情報をキーにした世の中になっていくと考えています。

情報中心の世界
情報中心の世界

 

いままでは、風が吹いたことと、桶屋がもうかったことの情報がないまたは共有されていなかった状態だったのが、情報が取得され共有され関係性/相関性がわかってくるとどうでしょう?直接的に計算がしたりするものばかりでは無いと思いますが、なかなかにおもしろい世の中になってくるのではないでしょうか?

■モノ/コトをネットワークに繋げるためのプラットフォーム

さて、では情報中心の生活が来るとして、いまの状況で情報中心の生活の妨げになるものって何でしょうか?ちょっと皆さんの今のまわりのモノを見て頂きたのですが、電気が通っているものってどれだけありますか?

次に、それがデータを受け取り、ネットワークに送れるようになっているものはどれだけありますか?

今は情報化社会と言われていますが、そんな世の中の現在でさえつながっているものは、スマホ/PC/タブレット/TV位が大部分では無いでしょうか?

それ以外にもたくさんあるという方もいますが、やっぱり殆どはどこにもデータを残さず、モノコトのデータは消えていっているのがほとんどだと思います。なぜか?

僕らのまわりにある物は、必ず誰かの手によって作られていて、作られているということは、誰かの技術が使われています、実のところ電気製品の中身をつくる技術と、データを送ったり受け取ったりする技術、それを受け取って活用したりする技術というのは、まるで違う技術分野を必要とします。

IoTというものは、提供していく側からすると、今までは他の技術領域のもの、他の誰かがやっていたものをつなげていく事が必要で、これまではその壁は技術的にも、コスト的にも想像以上に高かったのです。電気製品を作る技術者にインターネットの向こう側むけにデータを投げる物を作れと言って、できる人は少数ですし、それを外部に作ってもらうとなると大変と、こういった事を踏まえて、当初さくらインターネットがはじめたのが、 sakura.io です。

これは、電気製品を作る技術者が普段使っている電気信号を、インターネットでやり取りをするシステムを作っている技術者がつかう、JSONというものと双方向に変換し、「つなぐ、ためる、れんけいする」という機能を、通信モジュールを含めて提供している極めてセキュアなプラットフォームです。

sakura.ioの仕組み

これによって、双方の技術者がいままの技術領域を大幅に拡張することなく、モノコトをネットワークにあげる事が可能になりました。

■セキュアモバイルコネクトが提供する通信

じゃぁそれで良いじゃんって感じになりそうですが、お客様から「これから作る製品は良いのだけれども、いままで作ってしまった製品に組み込めない」というお声や、「sakura.io のセキュアな通信の部分だけを使いたい」というお声を頂くことがありました。

実際何社かに伺った事をまとめると

  • 普段は殆ど通信をしていないがものすごく数が多い
  • 通信する時は高速に通信したい
  • セキュリティはさくらインターネットで守っておいて
  • あ、あとお金はあんまり払いたくない

という、なんとも提供側にはハードルの高いご要望があることがわかりました。これらの背景には、利用者側で電気信号とネットワークの壁をなんとか乗り越えたら、今度はセキュリティと通信コストの壁があったということかと思います。

現状SIMを使った製品というのが世の中に出てきていますが、通信部分についてはインターネットを経由するもので、そのセキュリティは使っている側が担保する、またはモノの中にパソコンで使っているようなセキュリティソフト等を入れて担保してもらうというものが殆どかと思います。

先日提供を開始した、さくらのセキュアモバイルコネクトは、sakura.io で実現していた、インターネットを経由せず、さくらのクラウドの内部ネットワークに、閉域網でつなげることができる通信部分だけを、皆さんに使えるようにしたというものと思っていただけるとわかりやすいかと思います。

こういったサービスは、今までもキャリアが提供されていましたが、初期コストや運用コストが極めて高いため、利用できるサービスは限定されていました。

セキュアモバイルコネクト

 

セキュアモバイルコネクトの価格については、SIM1枚の月額基本料金12円、最大1万枚まで登録できる利用者専用のクラウド内部ネットワークの価格が6,400円と極めて安価であり、コストの面からもセキュリティの面からも利用の裾野を広げることが出来たかと思います。

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

fluent-plugin-sakuraio をリリースしました

sakuraio_to_fluentd

fluent-plugin-sakuraioをリリースしました。

fluent-plugin-sakuraiosakura.ioのWebSocket APIからデータを受け取るためのFluentdのInput Pluginです。

Fluentdfluent-plugin-sakuraioを使うことで、連携サービスで対応していない、S3などのデータストアや他サービスへのデータ送信、データ送信前のデータの前処理を簡単に行うことができるようになります。

この記事では、基本的な使い方とrecord_transformerプラグインを使ったデータの意味付けの手順をご紹介します。

Continue Reading
Close Menu