さくらインターネットが開発・提供するIoT向けプラットフォームサービス「sakura.io」。すでに多くの方にご利用いただき、それを使った新しいサービスも世に出始めていますが、その一方でこれからIoTの分野で何かを作りたいと考えている方も多いと思います。そんな方々のために、当社では「sakura.io体験ハンズオン」と題し、sakura.ioを使って簡単なIoTサービスを構築するハンズオンセッションを開催しています。すでに数十回の開催を重ね、累計で500人以上の方がsakura.ioに触れる機会を得ています。

本記事ではこの「sakura.io体験ハンズオン」でどんなことをやっているのかを、現場での写真を交えてご紹介します。さっそく、ハンズオンの会場にご案内しましょう!

どんな人が参加しているの?

西新宿にあるさくらインターネット東京支社では、毎月1回ぐらいのペースでsakura.io体験ハンズオンを実施しています。参加者は毎回15人前後で、Webエンジニアやインフラエンジニアだけでなく、組み込みや電気/電子系などハードウェア寄りのエンジニアの方も参加されるのがIoT分野ならではの特徴です。

参加者の皆さんには、パンフレットやグッズなどの配布物に加えて、ハンズオンで使用する機材一式が収納されたキットが貸与されます。また、マイコンへのプログラム書き込みやさくらのクラウドの操作などでPCを使います。これは参加者にご持参いただいています。

ハンズオンのキット(左の箱)とその中身

sakura.ioってどんなサービスなの?

ハンズオンの講師を務める寺尾

ハンズオンセッションは、まずsakura.ioのサービス概要説明から始まります。この日の講師は当社エバンジェリストの寺尾英作でした。sakura.ioの開発コンセプトやアーキテクチャの説明、他のIoTプラットフォームサービスとの差異、sakura.ioが持つさまざまな機能の紹介、提供価格や料金体系などについて説明しました。詳しくはsakura.ioのサービス紹介資料をご覧ください。(本資料は随時更新されます。最新版はリンク先URLのコメント欄をご確認ください)

いよいよハンズオン開始!

続いて、いよいよハンズオンの本編に突入です。ハンズオンで行う作業の概略は下図の通りですが、工程を追って順に紹介します。

さくらのクラウドでのサーバ作成

はじめに、さくらのクラウドでサーバを作成します。クラウドのアカウントも当社から提供しています。サーバ作成時のポイントは、スタートアップスクリプト機能を利用し、Node-REDが起動するサーバを作ることです。Node-REDはGUIでデータの処理を記述するツールで、IoTデバイスとオンラインサービスの接続に適しています。

sakura.ioの設定

続いて、sakura.ioのコントロールパネルにログインし、sakura.ioモジュールの登録や、sakura.ioと外部Webサービスとの間の通信に関する設定を行います。sakura.ioはいくつかのデータ送受信プロトコルに対応していますが、このハンズオンではWebSocketを使用しています。

センサーの配線とArduinoのプログラミング

今度はハードウェア側の作業に移ります。まずPCにてArduinoの開発環境を起動し、当社にて開発したsakura.ioのライブラリなどをインストールします。次に、貸与したキットに含まれている温湿度センサーと3色のLEDをブレッドボード(電子回路の試作用基板)に挿し、sakura.ioモジュールやArduinoとつながるように配線します。

この配線が手間のかかる作業です。ハードウェア系の人にはおそらく簡単だと思いますが、ソフトウェアエンジニアはこの手の作業経験がない人も多く、配線されたものを見ると間違っていることもよくあります。そのまま電源を入れると機材が壊れることもあるので、配線ができたらスタッフが確認します。

配線に問題がなければArduinoをPCに接続し、GitHubにて公開しているサンプルプログラムを取得して、Arduinoに書き込みます。プログラムが動作すると、センサーから取得した温度や湿度がsakura.ioモジュール経由で送信されます。送信されたデータはArduinoのシリアルモニターやsakura.ioのコントロールパネルで確認できます。

sakura.ioのコントロールパネルでデータを確認。最右列に温度・湿度・カウンタが表示されている。

取得した温湿度をNode-REDで表示&ツイート

ハードウェア側の作業をしている間にサーバの作成が完了するので、ブラウザを起動してNode-REDのフローエディタにアクセスします。そして、GitHubで公開しているサンプルフローを取得し、Node-REDに流し込みます。このフローには以下の処理が記述されています。

  • sakura.ioに届いた温度と湿度をWebSocketで取得
  • 取得した温度・湿度を、Node-REDのダッシュボードにてグラフで表示
  • 取得した温度をもとにメッセージを作成し、10分ごとにTwitterに投稿

ここで、WebSocketのノードにsakura.ioから取得した連携用URLを設定し、Twitterのノードに自分のTwitterアカウントを設定してデプロイすると処理が始まります。処理結果はNode-REDのダッシュボードや自分のTwitterで確認できます。

Node-REDのダッシュボード

温度をTwitterへ自動投稿

Node-REDとsakura.ioでLEDを操作

さらにこのフローには、Node-REDからsakura.io経由でデバイスを操作する処理も記述されています。まずデータの送信先となるsakura.ioモジュールのIDとWebSocketによる連携用URLを設定し、フローをデプロイします。その後、ダッシュボードの右側に並んでいるLEDの制御パネルをクリックすると、LEDのON/OFFに関するデータがsakura.ioに向けて送信されます。sakura.ioからデータを受信したArduinoは、受け取った値に応じて3色のLEDを点灯/消灯します。

ハンズオンは自習もできる!

sakura.io体験ハンズオンでは、これらの作業を3時間ほどで実習します。当社社員がサポートにつきますので、大半の方が最後のLED操作まで体験できています。しかし、会場へ足を運ぶのが難しい方もいらっしゃると思いますので、ハンズオンの資料を公開しています。sakura.ioモジュールなどの機材はご自身で用意する必要がありますが、ぜひお試しください。(資料は随時更新されます。最新版はリンク先URLのコメント欄をご確認ください)

他のサービスとつながろう!コラボハンズオンの紹介

通常のsakura.io体験ハンズオンはすべての処理をさくらのサービス上で行っていますが、sakura.ioを介したデータの送受信先は当社のサービスに限定していません。むしろ他のサービスと連携することで、より良いIoTサービスを生み出す可能性を感じていただきたいものです。そこで当社は、sakura.ioに加えて他のサービスとの連携も体験できるハンズオンを実施しています。代表的なものをいくつかご紹介します。

Twilio&sakura.io体験ハンズオン

Twilioは、APIを使って電話やショートメッセージなどの送受信をプログラミングできるクラウドサービスです。例えば、プログラムから電話をかけたり、かかってきた電話に自動応答するような使い方ができます。

Twilio&sakura.io体験ハンズオンは、Twilioのサービスを日本で提供しているKDDIウェブコミュニケーションズとの共催です。温湿度センサーの配線とsakura.ioの設定を行った後、sakura.ioから入手した温度が一定の値を超えたらTwilioが電話をかける設定と、かかってきた電話の指示に従って受話器のテンキーを押すとsakura.ioの向こう側にあるLEDが点灯する設定を実習します。

IBM Cloud(Bluemix) × sakura.io 体験ハンズオン

IBMが提供するクラウドサービス・IBM Cloud(旧称:Bluemix)とsakura.ioを連携して使うハンズオンで、Bluemix時代から運営されているユーザコミュニティ・BMXUGとの共催です。IBM CloudではNode-REDがすぐに使える形で提供されているので、それを使用します。また、写真をIBM Cloudにアップロードし、画像認識APIを使った分析結果をsakura.ioに投げるという内容のハンズオンも実施予定です。

BMXUGでは女子部向けのハンズオンも実現しました

駅すぱあとWebサービス&sakura.io体験ハンズオン

こちらは、乗換案内サービス「駅すぱあと」を開発するヴァル研究所との共催です。駅すぱあとが持つ時刻表や経路探索などの情報をAPIで提供しているのが「駅すぱあとWebサービス」で、それをsakura.ioと連携させるハンズオンです。sakura.ioから取得した温度がしきい値を超えたら駅すぱあとWebサービスに経路情報を問い合わせ、返ってきた結果をもとにメッセージを作ってslackに投稿するという処理を実習します。(資料はこちら)

その他のコラボハンズオン

この他にも、ヤフーが提供するmyThings、マイクロソフトのAzure、JAWS-UGの主催によるAWS IoTとの連携ハンズオンなどの開催実績があります。これからも新しいコラボハンズオンが出てくるかもしれないので、ご期待ください!

全国へお出かけ!出張ハンズオン

sakura.io体験ハンズオンは、東京や大阪など当社の拠点がある都市だけでなく、全国各地に出向いての出張開催も数多く実施しています。これまでに開催実績のある都市は以下の通りです。(余談ですが出張ハンズオンは筆者が担当することが多く、下記18都市のうち10都市で講師を務めました)

札幌、仙台、郡山、群馬、東京、新潟、長野、浜松、名古屋、岐阜、大阪、奈良、岡山、広島、島根、徳島、福岡、熊本

名古屋ではなぜかピアノバーで開催しました

また、IoTについて学びたいという大学・高専・専門学校などの学生向けや、自社製品への適用を検討している企業向けのクローズドなハンズオンも、依頼に応じて実施しています。こちらも全国で実績があります。

これらの出張ハンズオンは、地元で窓口になってくださる方がいてこそ実現できるものです。各地でご協力いただいた皆さん、ありがとうございます!

そして、出張ハンズオンの開催依頼は常に受け付けています。皆さんがお住まいの地域で開催したい、自社サービスとの連携を考えたい、学生にIoTを体験させたいなどの要望がありましたら、お気軽にご相談ください!

お問い合わせ先:iot-division-ml@sakura.ad.jp

これからも続々と開催!

こんな感じでやっているsakura.io体験ハンズオンですが、これからも開催予定が目白押しです! 今後の開催スケジュールをお伝えします。お近くの方はぜひご参加ください!

おわりに 〜運営担当からのメッセージ〜

最後に、sakura.io体験ハンズオンの運営を担当しているIoTチームの西田有騎に話を聞いてみました。

ーー sakura.io体験ハンズオンは、どういうきっかけで実施するようになったのですか?

西田:2016年にsakura.io(当時は「さくらのIoT Platform」)のα版をリリースした段階から、このサービスをより深く知っていただくためには実際に触る機会を提供する必要がある、という話がIoTチームでは出ていました。その中で、まず漠然とした「IoT」という言葉を自分事としてとらえていただけるよう、デバイスからクラウドまで、簡単なIoTサービスの構築を体験できるというコンセプトでコンテンツを考えていきました。

ーー ハンズオンを運営する中で、何か発見はありましたか?

西田:同じ場所で継続して開催していくと、参加者ご自身が畑の異なる参加者の方とつながり、一つのビジネスが生まれるのを目にしました。これはsakura.ioとして目指す「モノづくり系企業やWeb系企業が、やりたいことに注力できる」というメッセージが、まさに具体化されている現れなのかなととらえています。

ーー ハンズオンへの参加を考えている方に、お誘いのメッセージをお願いします。

西田:このハンズオンは、エンジニア・非エンジニア問わず、モノづくり側の方でも、Web/アプリケーションの方でも、アイデアを模索している事業会社の方でも、どなたでもご参加いただけます。また、都度ブラッシュアップを行い、現在は参加者からも「とても分かりやすかった」というご意見をいただける内容になっています。「IoTって良くわからないな」とためらわず、是非気軽にご参加いただければと思います。きっと皆様のビジネスのお力になれると思います!

このように運営担当もやる気満々ですので、これからもこのハンズオンを継続開催し、多くの方にIoTの世界を体験していただくとともに、新たなサービスを創出する手助けができればと考えています。皆さんの参加を心からお待ちしています! 今度はハンズオンの会場でお会いしましょう!