最近Amazon Alexa界隈で起きたこと(10/31〜11/25)

前回の記事から1ヶ月経って、Amazon Alexa界隈で何が起きたでしょうか。

sparkgene.hatenablog.com

目次


現時点のSkill数(US)

f:id:sparkgene:20161230085447p:plain

1ヶ月で1800個近く増えています。 特にNewsが770個と増えていますが、Flash Briefing Skillが作れるようになったので、これだけ増えたのかもしれません。


[10/25] Logitech Harmony hub がAlexaに対応した

http://a.co/7xWBoRja.co

support.myharmony.com

[10/31] Voice Control Belkin Wemo Devices with the Alexa Voice Service

https://developer.amazon.com/public/community/post/Tx383SLN15L0L30/Voice-Control-Belkin-Wemo-Devices-with-the-Alexa-Voice-Servicedeveloper.amazon.com

Belkin WemoのデバイスがSmart Home Skillに対応した。
今までは、同じネットワーク上に存在するAmazon Echoからであれば "Alexa, discovery devices"で検出することができましたが、Alexa Voice Serviceを利用したサードパーティ製のAlexaデバイスから利用することはできませんでした。
Smart Home Skill に対応したことで、Wemo Skillを有効にすれば、クラウド経由で操作することが可能となります。

[11/2] (個人ネタ)審査に出してたSkillが審査通って公開された

qiita.com

sample utterancesが少ないということでリジェクトされてたのですが、ドイツ語のサンプルを複数(6個)用意するのはなかなか大変でした。 より自然な発話で操作でいるように、以前よりも、色んなパターンに対応することが要求されているようです。

[11/4] Introducing Detail Pages on Amazon.com to Increase Discovery and Use for Your Alexa Skills

https://developer.amazon.com/public/community/post/Tx12VWH3AGMGPYY/Introducing-Detail-Pages-on-Amazon-com-to-Increase-Discovery-and-Use-for-Your-Aldeveloper.amazon.com

SkillがAmazon.com上からも探すことができるようになりました。今まではSkillを探す場所はEcho Appの中だけでしたので、よりユーザーとの接点が増えることになりました。

f:id:sparkgene:20161119120456p:plain こんな感じで表示されます

[11/5] ついに、とうとう、味気ないデザインのAmazon Alexaが歌う魚に変身

jp.techcrunch.com

この発想はなかったw
クリスマスシーズンを考えると、踊るサンタにやるのがウケそう。

[11/6] Amazon Alexa 2歳になる

techcrunch.com

2年前にAmazon EchoとともにAmazon Alexaが発表されました。
発表当初はAlexa Skills Kitなどの話はなく、翌年の2015/5にファンド立ち上げとともに、Alexa Voice ServiceとAlexa Skills Kitが発表され、デベロッパーから色々なSkillやAlexaPiのようなRaspberry Piで動くAlexaが作られてきました。
私がAlexaに興味を持ち始めたのもこの頃。

qiita.com

[11/10] How to Set up Amazon API Gateway as a Proxy to Debug Account Linking

https://developer.amazon.com/public/community/post/TxQN2C04S97C0J/How-to-Set-up-Amazon-API-Gateway-as-a-Proxy-to-Debug-Account-Linkingdeveloper.amazon.com

Account Linkingを利用する際に、OAuthプロバイダとの連携に失敗しても原因が分かりづらい事があります。(Alexa AppとOAuthプロバイダ間で通信を行うから)
このブログでは、OAuthプロバイダの間にAPI Gatewayを挟むことでログを取れるようになり、"Unable to Link your skill" と表示されるエラーの原因を探りやすくなります。

[11/14] JAWS-UG 神戸支部、JAWS-UG IoT専門支部、AWSKRUGでAlexa 勉強会を開催

jawsug-iot.connpass.com

神戸支部の伊東さんから急遽お誘いを受け、合同で開催しました。各支部をgoogle hangoutで繋いで盛り上がりました。

[11/14] Announcing the Sponsored Teams for the 2016-2017 Alexa Prize

https://developer.amazon.com/public/community/post/Tx1UXVV4VJTPYTL/Announcing-the-Sponsored-Teams-for-the-2016-2017-Alexa-Prizedeveloper.amazon.com

9/29に発表したコンテストで選ばれた、12のチームが発表されました。
各チームは10万ドルを資金として受け取り、AWSの無料利用、サポートを与えられました。2017年4月よりこれらのチームが作成したSkillを利用することができ、最も良い成果を出したチームに50万ドルの賞金が与えられ、さらに20分間人間と魅力的な会話を達成させることができたならば、チームの所属する大学に100万ドルの賞金が支払われるというすごい企画です。
さらに、受賞者は2017年のre:Inventでの特別セッションでの発表機会が与えられます。

[11/15] TURN YOUR PRINGLES CAN INTO AN AMAZON ECHO WITH C.H.I.P.!

blog.nextthing.co

C.H.I.P.というボードを利用してプリングルスにAlexaを仕込んだもの。
JAWS-UG 神戸支部には国産のChipStarを使った物も出ているので、こういった既存の入れ物を使ってDIYするのは世界中で楽しまれているようです。

[11/16](個人ネタ)How to make Alexa speak your language

www.hackster.io

Alexaが日本語対応していないけど、どうしても喋らせたかったので、日本語のテキストをwatsonのtext tot speachを利用して音声データに変換して、SSMLでAlexaに喋らせるというサンプルを作ってみました。

[11/16] 【re:Invent 2016 直前企画】Alexaの予習でAmazon EchoをDIY! kokexa誕生編

blog.serverworks.co.jp

株式会社サーバーワークスよりこけしとAlexaの融合体「kokexa」が発表されました。
使っているパーツがすごくいい感じで、こけしってw。。re:Inventで注目を浴びそうですね。
マイクとスピーカーも見た目が良いのを使っているので、個人的にも買おうかなと思いました。

[11/16] Welcome the Newest Alexa Champions

https://developer.amazon.com/public/community/post/Tx2GTAJBQHMPQ38/Welcome-the-Newest-Alexa-Championsdeveloper.amazon.com

3ヶ月ほど前にAlexa Championというプログラムを公開しましたが、受賞者が発表されました。
このプログラムは、Alexaのコミュニティーで貢献した人を表彰する制度。

個人的には鏡とAlexaを組み合わせた物を発表した、Darian Johnsonのが面白かったのでいつかは作りたいですね。

https://developer.amazon.com/public/community/post/TxDD217BS33RFM/With-Mystic-Mirror-Darian-Johnson-Says-Alexa-is-the-Smartest-One-of-Alldeveloper.amazon.com

[11/17] Calling All University Students to Hack the Dorm with Amazon Alexa

https://developer.amazon.com/public/community/post/Tx35TREEA4BL5H3/Calling-All-University-Students-to-Hack-the-Dorm-with-Amazon-Alexadeveloper.amazon.com

大学寮をハックしろ!と言うことで、大学生向けのコンテスト開催。 Alexaのコンテストって多いな。日本でも開催したい。

[11/18] Introducing Alexa Skills Community Favorites

https://developer.amazon.com/public/community/post/Tx2HTD6UKGQTJKP/Introducing-Alexa-Skills-Community-Favoritesdeveloper.amazon.com

Amazon.com: Alexa SkillsでSkillに対していいねができるようになりましたという話。

[11/21] Linkplay Makes It Easier to Build Wi-Fi Speakers with Amazon Alexa

https://developer.amazon.com/public/community/post/Tx33RUYP5G5MMGY/Linkplay-Makes-It-Easier-to-Build-Wi-Fi-Speakers-with-Amazon-Alexadeveloper.amazon.com

Amazon EchoはAmazon MusicSpotifyなど音楽サービスと連携して再生する事ができますが、AVSを利用した独自のデバイスでは利用できませんでした。 この発表ではLinkplayを利用することで、Amazon Music、iHeartRadio、Spotify、TIDAL、Napsterなどを利用できるようになるということです。これにより、自作のEchoを作っても音楽プレイヤーとしても利用可能になるということですね。

[11/25] Why a Custom Slot is the Literal Solution

https://developer.amazon.com/public/community/post/Tx3IHSFQSUF3RQP/Why-a-Custom-Slot-is-the-Literal-Solutiondeveloper.amazon.com

初期のSkillでは、Sample Utterancesで任意のワードを拾いたい時はIntent Schemaで AMAZON.LITERAL を利用してユーザーの発話したワードを取得していましたが、しばらく前から AMAZON.LITERAL は非推奨となり2017/2/6に廃止となります。 Custom Slotを作成して期待しているワードを登録することで、 AMAZON.LITERAL がなくなっても問題ないよという話となっています。 Custom Slotを利用してInteraction Modelを作成することで、より正しいIntentを実行させることができるのでこの流れはいいのかなと思います。

Google Home

Google I/Oで発表されたGoogle HomeAmazon Echoの対抗馬としてよく登場します。 実際に比較記事や動画を見ると、音声認識Google Homeのほうが凄そうですね。やはり裏で動いているであろうGoogleの検索と膨大なデータがちょっとした問いかけにも期待している答えを返してくれるように思えます。

www.gizmodo.jp

www.youtube.com

しかしながら、私自身Amazon Alexaに感じた魅力はそこではなくSkillによってどんどん拡張できる点です。

こちらの記事では、GoogleVoice Actionsを発表しており、これがいずれGoogle Homeに導入されてくると、Amazon Alexaのようにどんどん拡張できる可能性があると紹介しています。 さらに、Embedded Google Assistant SDKというものの存在についても触れており、Alexa Voice Serviceのように自分でGoogle Homeのようなデバイスを作れるようになるかもしれません。

www.theverge.com

re:Invent

来週はいよいよre:Inventです。re:InventといえばAWSについての話が中心ですが、Alexa関連のセッションも多く開催されているということもあり、何か新しい機能の発表もあるかもしれませんね。

最近Amazon Alexa界隈で起きたこと(10/15〜10/30)

前回の記事から半月ですが、こんな感じで定期的に上げていこうと思います。

前回の記事

sparkgene.hatenablog.com

目次


現時点のSkill数(US)

カテゴリ 個数
Business & Finance 63
Connected Car 8
Education & Reference 878
Food & Drink 141
Games, Trivia & Accessories 1151
Health & Fitness 128
Lifestyle 381
Local 96
Movies & TV 80
Music & Audio 47
News 376
Novelty & Humor 306
Productivity 133
Shopping 12
Smart Home 114
Social 50
Sports 118
Travel & Transportation 94
Utilities 74
Weather 319
合計 4250

f:id:sparkgene:20161030211011p:plain

2週間で200ぐらい増えてました。
特に、Games, Trivia & AccessoriesNewsが増えてます。

注)weatherの数値がおかしいですね、前回の数値が間違えているようです。

[10/20] Amazon Echo Dotの出荷開始

www.amazon.com

続々と届いたよ!なコメントを見かけるように。羨ましいですね。
オプション($14.99)でカバーを付ける事もできるみたいです。

https://images-na.ssl-images-amazon.com/images/G/01/kindle/dp/2016/B/feature-stripe.jpg

[10/20] Fire TV Stick with Alexa Voice Remoteの出荷開始

Fire Stick TVの新バージョンはAlexa搭載となりました。
旧バージョンもリモコンに音声認識機能がありましたが、これはAmazon Videoの中からコンテンツを探せるもの。
新型は、動画の操作(早送りとか)、アプリの検索、起動、Skillの呼び出しなど、音声で操作できることが格段に増えている。

Introducing the All-New Fire TV Stick with Alexa Voice Remote - Amazon Mobile App Distribution Blog

[10/21] (個人ネタ)審査に出してたSkillがリジェクトされる

月の暦を教えてくれるSkillを公開していて、UKとドイツ語に対応したものを10/8に審査に出したのだが、長い時を経てリジェクトされる。
リジェクトの理由は、sample utterancesの量が少なすぎるとのこと。初回出した時は1個だけでも審査を通ったけど、厳しくなったのか色んなパターンに対応しないとダメらしい。
何個か追加して再審査に出すも、同じ理由で再度リジェクトされる。。何個あれば良いんだ・・。

[10/22] (個人ネタ)Amazon Music Unlimitedのお試し期間を終了される

Amazon Echo向けに$3.99でAmazon Music Unlimitedが利用可能だったので、フリートライアルを登録したのだが、Amazon.comに登録されている住所が日本だったので、US以外ではこのサービス使えないんだよとメールが来て強制的に解約される。
安いし便利そうだったので使ってたけど、残念である。他の逃げ道としてはSpotifyのプレミアムアカウントを登録すれば使えるが、月額980円なのが悩み。

[10/24] Alexa APIマッシュアップのコンテスト開催

Announcing the Amazon Alexa API Mashup Contest - Amazon Mobile App Distribution Blog

HacksterでAmazon Alexaと一般公開されているAPIマッシュアップコンテストがアナウンスされました。

www.hackster.io

[10/26] AmazonはAlexaをグローバル展開したことで更にリードを広げた、というレポート

Forrester: Amazon Extends Its Lead By Taking Alexa Intelligent Agent Global - Amazon Mobile App Distribution Blog

レポート元によれば、

  • 音声UIに対して何らかのプランを持っていないCMO(チーフ・マーケティング・オフィサー)に対して、「音声ベースのインテリジェントエージェントはもう普及し始めている」と警鐘を鳴らしていると。
  • 音声はAI(Intelligent Agent)に最も適している
  • Amazonはすでに屋内における音声制御の確固たる地位を築きつつあり、2016年内にはアメリカの家庭に600万を超えるEchoデバイスが置かれることを予想しています。(新型のEcho Dotがそれを加速させるだろう)

[10/27] [チュートリアル] カレンダーリーダーSkillを作る方法

New Technical Tutorial: How to Build a Calendar Reader for Alexa - Amazon Mobile App Distribution Blog

カレンダーの情報をicsファイルで取得して、「今日イベントある?」、「12/12に開催されるイベントは?」みたいな感じでAlexaに話しかけると教えてくれるSkillの作り方を紹介。


最近Amazon Alexa界隈で起きたこと(〜10/16)

海外ではAmazon Echoを中心としたAlexa Skills KitやAlexa Voice Services関連の情報が色々出回っているけど、日本語対応されていないことからまだ国内での情報があまりないと思ったので、普段チェックしたことをブログにまとめていこうと思いました。

目次


現時点のSkill数

カテゴリ 個数
Business & Finance 59
Connected Car 8
Education & Reference 884
Food & Drink 130
Games, Trivia & Accessories 1088
Health & Fitness 119
Lifestyle 357
Local 91
Movies & TV 77
Music & Audio 44
News 341
Novelty & Humor 287
Productivity 121
Shopping 11
Smart Home 110
Social 49
Sports 112
Travel & Transportation 89
Utilities 71
Weather 23
合計 4071

いつの間に4000を超えている。


9月

New Alexa Skills Kit Template for Developers: GameHelper

New Alexa Skills Kit Template for Developers: GameHelper - Amazon Mobile App Distribution Blog

Amazon Echo向けに作られているゲームは意外と多い。 このブログではゲームを作る際のゲームガイド(ゲームの遊び方)を作るためのテンプレートについて解説してくれています。 チェスのコマについて聞くとその画像をEcho Appのカードに表示させる方法などにも触れている。


New Video: Using Speech Synthesis Markup Language (SSML) in Alexa Skills

New Video: Using Speech Synthesis Markup Language (SSML) in Alexa Skills - Amazon Mobile App Distribution Blog

SSMLの使い方のビデオが公開されました。 SSMLは通常のテキストだけでは足りない発話を可能にする構文のことです。 例えば、123ワンハンドレッド・トゥエンティースリーと発話されるが、ワン・ツー・スリーと発話させたい時は<say-as interpret-as="digits">123</say-as>とSSML返してあげる必要がある。


JAWS-UG IoT専門支部 IoTサロン 2016-09 Alexa meetup! を開催した

jawsug-iot.connpass.com

JAWS-UG IoT専門支部でAlexaの勉強会を開催しました。 すでにJAWS-UG 神戸支部でAlexa meetup #01を開催した伊東さんも駆けつけてくれて、Alexa Voice Servicesについて詳しい発表してくれました。


Alexa and Amazon Echo Now Available in the UK and Germany

Alexa and Amazon Echo Now Available in the UK and Germany - Amazon Mobile App Distribution Blog

ついにAlexaとEchoがUS以外の国でも販売&利用できるようになりました。 昨年参加したre:Inventでイギリス英語、ドイツ語に対応を始めたって聞いたけど、それから1年ぐらいしてついに出てきました。

Amazon EchoとAmazon Alexaに感じる可能性 - sparkgene’s blog


Amazon Dot 第2世代が公開

発売日は10/20だが、Amazon Dotが新しく&安くなって登場。 6個(1個無料)、12個(2個無料)入りパックも用意され、家の各部屋において使うイメージ。


How to Build a Multi-Language Alexa Skill

How to Build a Multi-Language Alexa Skill - Amazon Mobile App Distribution Blog

リリースされたイギリス、ドイツ向けにSkillを作る際のやり方についての解説。 詳しくはQiitaに書いたのでそちらを見てみてください。

qiita.com


Announcing the Winners of the Internet of Voice Challenge

Announcing the Winners of the Internet of Voice Challenge - Amazon Mobile App Distribution Blog

Alexaを使ったコンテストがいろいろな方面で開催されているが、hackstr.ioで開催されたAlexa Skills KitもしくはAlexa Voice ServicesとRaspberry Piを使った何かを作れというもの。

www.hackster.io

私もエントリしてみたけど、残念ながら入選できなかった。

www.hackster.io


New Video Course by A Cloud Guru: Alexa Development for Absolute Beginners

New Video Course by A Cloud Guru: Alexa Development for Absolute Beginners - Amazon Mobile App Distribution Blog

Serverlessの教育では先駆的なサービスであるA CLOUD GUREが、Alexa Skills Kitを使ったSkillの開発を勉強できる講座を公開しました。


Alexa Fund Adds New Company to Portfolio by Taking Lead Investor Role in Nucleus

Alexa Fund Adds New Company to Portfolio by Taking Lead Investor Role in Nucleus - Amazon Mobile App Distribution Blog

Alexa Voice Servicesを使った初のスマートホームインターフォンを発売したNucleusが、シリーズAの投資が行われました。その額は$5.6 million(6億ぐらい)。 AlexaやAmazon Echoが登場した時に、Amazonは100億ぐらいのファンドも立ち上げました。 何か面白いものを作ってAmazonの目に止まれば大型の投資をもらえるかもしれないですね。


Alexa Smart Home SkillのHow To記事

Managing Device Discovery for Your Alexa Smart Home Skill - Amazon Mobile App Distribution Blog

Fundamentals of Smart Home Device Control, Including On/Off State - Amazon Mobile App Distribution Blog

Announcing Scenes for Smart Home Skills - Amazon Mobile App Distribution Blog

Amazon Echoがスマートホームデバイスを利用する方法として、現状はPhilipsとWeMoのデバイスは同じネットワーク上に存在すれば、検出して利用することが可能です。 しかし、それ以外のスマートホームデバイスの場合はクラウドに繋がっている必要があり、Smart Home Skillを介して操作されます。 その為、クラウドで管理されている自分のスマートホームデバイスを利用する際にユーザー認証が必須となっており、Custom Skillを作るときと違ってOAuth 2.0を使ったユーザー認証を組み込む必要があります。 この記事では、デバイスの検出とSmart Home Skillの使い方について学べます。


New Alexa Technical Tutorial: Debugging AWS Lambda Code Locally

New Alexa Technical Tutorial: Debugging AWS Lambda Code Locally - Amazon Mobile App Distribution Blog

Alexa Skillのでバッグは実際にAmazon Echoなどから実行したり、テスト画面から実行してLambda側でデバッグする必要がありますが、この記事ではローカルにあるSkillをダミーのリクエストで実行する方法について解説しています。サンプルはNode.jsだけですので、Python版も出てきて欲しいな〜と。


10月

Amazon Enables Developers to Extend Alexa’s Flash Briefing - a New Addition to the Alexa Skills Kit

Amazon Enables Developers to Extend Alexa’s Flash Briefing - a New Addition to the Alexa Skills Kit - Amazon Mobile App Distribution Blog

AlexaにはAlexa Flash Briefingという機能が備わっており、Alexa Appに事前に登録されている配信元(BBC Newsとか)を有効にしてAlexa, What's new?と話しかけると、ニュースを喋ってくれます。 今回の発表で、デベロッパーがFlash Briefing Skill APIタイプのSkillを作ることで、Alexa Flash Briefingに自分のRSSフィードなどを簡単に追加することができるようになりました。 通常のSkillを同様に審査をクリアして公開されると、Alexa Appにカードが表示され有効にすることで自分のフィードがAlexa, What's new?で聞けるようになります。


Alexa Voice Service Introduces API Update that Makes It Easier to Build Hands-Free Products

Alexa Voice Service Introduces API Update that Makes It Easier to Build Hands-Free Products - Amazon Mobile App Distribution Blog

今までAmazon Echo以外のAlexa Voice Servicesを利用したデバイスはWakeワード方式ではなくボタンを押して間音声認識させる方法が多かったのですが、今回のAPIのアップデートにより、サードパーティー製の音声認識技術を使ってAmazon EchoのようにWakeワードで対話できるようになりました。

github.com

サンプルプロジェクトがGithubにあるので、コレをRaspberry Piで動かすとオリジナルのAmazon Echoを作ることが出来ます。


Amazon Music Unlimitedの登場

Amazon.com: Amazon Music Unlimited

Amazon Echo系を持っている人は$3.99/月で使える音楽ストリーミングサービス 支払い情報さえ登録されてれば、Alexaに有効にしてって話しかけるだけで使えてしまう。

少し過去にさかのぼって書いたので結構な量になりましたが、結構活発に動きがありますね。

Alexa Skills KitでSkillを自作する

先日開催されたJAWS-UG IoT専門支部 IoTサロン 2016-09でAlexa Skills Kitについて話してきたので、こちらにもスライドを貼っておきます。

AWS 認定ソリューションアーキテクト – プロフェッショナル

AWS 認定ソリューションアーキテクト – プロフェッショナルの認定試験を受けてきてきました。

f:id:sparkgene:20160923152513p:plain

関連記事:AWS 認定ソリューションアーキテクト – アソシエイト - sparkgene’s blog

結果は無事合格。

総合スコア: 66%

(65%で合格らしいので、ギリッギリ)

内訳

1.0 High Availability and Business Continuity: 75%

2.0 Costing: 75%

3.0 Deployment Management: 87%

4.0 Network Design: 75%

5.0 Data Storage: 41%

6.0 Security: 62%

7.0 Scalability & Elasticity: 69%

8.0 Cloud Migration & Hybrid Architecture: 57%

感想

試験中もストレージ周りでなんだコレとか悩んだので、Data Storageの41%は納得。試験中の感触としても6〜7割な印象だったので、合格の文字を見たときは嬉しかった。

20分残して全部解いたので、見直すとした問題を10問ほど見直して終了。

それにしても170分はほんとに長い。3時間集中力を持たすのはしんどい。気合を入れるためにRedbull飲んだら、トイレも行きたくなるし。。

さすがに3万超えの試験料なので模擬試験(4000円)も事前に受けたけど、その結果はこちら。

総合スコア: 62%(落ちてるじゃないかw)

トピックレベルのスコア:

1.0 High Availability and Business Continuity: 66%

2.0 Costing: 100%

3.0 Deployment Management: 50%

4.0 Network Design: 50%

5.0 Data Storage: 33%

6.0 Security: 62%

7.0 Scalability & Elasticity: 83%

8.0 Cloud Migration & Hybrid Architecture: 75%

模擬試験は落ちたけど、弱そうな部分を復習し直して本番に挑んだ。点数上がっている部分もあれば、下がっている部分があるので、問題によっては本番も落ちてもおかしくない状況。

ま〜、とりあえず受かったので来年のAWS Summitではお弁当もらえるかなw

畑の監視その後

前にIoTで畑を監視するという内容の記事を別のブログで書いたのですが、バージョンアップしたのでその辺りを個人ブログで紹介しようかと。 tech.recruit-mp.co.jp

全体像

f:id:sparkgene:20160506165256p:plain

新しくやったこと

  • 無停電キットの導入
  • カメラによる監視の追加
  • アプリのオートアップデート
  • 静止画からタイムプラス動画を生成する

最新版のソースはこちら

https://github.com/sparkgene/iot_farm_monitoring

無停電キットの導入

tokyodevices.jp

東京デバイセズが出しているソーラーUSB電源システムキット がソーラーで発電しながら蓄電でき、USBで5vを簡単に取り出せるすぐれものです。 これを使えば、日中に発電して夜間も動作させることが可能です。

f:id:sparkgene:20160506154025j:plain

カメラによる監視の追加

センサーだけの監視ではなく、肉眼で畑の様子を見れたほうが便利だなと思ったので、カメラをセットアップしました。 ライブ配信だとsoracomの利用料がとんでもないことになりそうなので、静止画を撮ってアップロードする方式にしました。 使ったカメラモジュールはこれ。

akizukidenshi.com

公式のカメラモジュールで、静止画、動画の撮影が出来、専用のコマンドも用意されているのでものすごく簡単に使うことが出来ます。

raspistill -o image.jpg

たったこれだけで、静止画が撮れます。 さすがに、標準の解像度だとファイルサイズが大きくなりすぎるので、-w 1280 -h 720 とオプションを指定してサイズを抑えます。

撮影した静止画は、S3にアップロードして保存するようにしています。 AWS IoTを使って画像ファイルをbase64化して送ることも考えたのですが、あまりメリットが無さそうなので、aws cliで普通にアップするようにしています。 この場合は、awsのクレデンシャル情報が必要となるので、最低限の権限を付与したACCESS KEYを使っています。

アプリのオートアップデート

実際に畑を監視するときは遠隔地にデバイスを置くことも考えられるので、バグを修正したい時とか、新しい機能を追加したい時に気軽に触ることが出来ません。 また電源節約のため、Raspberry Piは常時ネットに接続していないので、sshで入ったり直接操作することが出来ません。 そこで、非同期でRaspberry Pi側からソースのアップデートができるようにする必要があります。

AWS IoTのDevice Shadowを利用することで、Raspberry Piがオフラインであっても次にオンラインとなった時に、設定した値を読み取ることができ、それをトリガーとしてgithubから最新のソースを取得して反映させることができるようになります。

https://github.com/sparkgene/iot_farm_monitoring/blob/master/iot_shadow.js#L31-L38

Device Shadowのソースはこんな感じでチェックしており、ローカルにあるソースのバージョンとDevice Shadowに設定されているバージョンを比較して、違う場合はgit cloneしてソースを入れ替える様になっています。

静止画からタイムプラス動画を生成する

静止画で畑の様子を見れるようにしたのですが、動画で一日の様子を見れるようにしたほうが面白いなと思い、S3にアップロードされてくる画像を元に動画を生成するようにしました。

qiita.com タイムプラス動画を作る方法はQiitaの方に上げてあるので、詳しいことはそちらを参考にしてもらえればと。

畑に置いた

さすがに畑の土真ん中に置くのは邪魔になるので道具小屋の所に置きました。 f:id:sparkgene:20160506160937j:plain

収集されるデータ

f:id:sparkgene:20160506170820p:plain

soracom → AWS IoT → Lambda → CloudWatchと流れてくるセンサーのデータ あれ、、水分の値が全然拾えてない(と言うか、小屋の脇だとカラッカラに乾燥してるのが原因)

タイムプラス動画

youtu.be

Raspberry Piからアップロードされてくる画像を元に、Lambdaが動画を生成してくれました。 設置した時はカメラが逆さまだったので、最初の方は逆さまですw しかも設置中の自分も写ってしまってる。。

今回の反省

24時間稼働してくれない

無停電キットで24時間運用できるようになったはずでしたが、想定よりも消費電力が大きすぎて発電が追いつかず、バッテリーが空になって2日目には動かなくなった。。。 もっと大きなソーラーパネルに置き換えれば解決しそう。

カメラモジュールの防水対策

オフィシャルなカメラはフラットケーブルでRaspberry Piと繋げるのですが、カメラ基盤がむき出しだったりと、屋外での利用に向いていない。仮で、基盤自体をバスボンドで防水加工してみたけど、ちゃんとしたケースが欲しい。あと、カメラの向きを簡単に調整できるようなマウントも欲しい。 リモートから角度調整とかもできると最高。

AWSの進化の速さ

AWS IoTも日々進化しており、当初これを作った時にはなかったのですが、現在はAWS IoTのRuleのActionとしてCloudWatchのメトリックスが追加されたので、このブログのサンプルのようにLambdaを経由する必要がなくなりました。 ただし、現状csvで送っている形式を見なおす必要はありそうです。

さいごに

家で実験している時に気になってたことが、そのまま実際の畑に持って行ったら、やっぱりダメだった。 そのまま置いてくるつもりでいたけど、見なおして出直す必要がありますね。

JAWS DAYS 2016

f:id:sparkgene:20160315215156p:plain

今年も開催されました! jawsdays2016.jaws-ug.jp

前回の参加記事はこちら sparkgene.hatenablog.com

昨年と同様、今年もHackDayのスタッフとしてお手伝いしました。 ただし、今年は当日スタッフとしてではなく、事前準備からHackDayの開催に向けた準備をお手伝いしました。 事前申し込みが1500名、当日参加が1100名を超えるような、巨大なイベントが出来上がっていくのを見れたのは非常に楽しかったです。 f:id:sparkgene:20160315223627j:plain 大きく7トラックのセッションがあり、それ以外にもスポンサーのブースが有ったり、SAに相談できたり、カルタ、麻雀など、盛りだくさんのコンテンツでした。 今年はイアホンの貸出もあり、スピーカーの声がよく聞こえて評判はかなり良かったようです。 中には、参加中のセッション以外のチャンネルを聞くという2度美味しい楽しみ方をしている人もいたようです。

f:id:sparkgene:20160315223634j:plain キーノートの様子。 アンケートを取ったら初参加の人が6〜7割と、幅広いユーザーが参加したのも今年の特徴なのかなと。

それにしても、これほどのイベントとなると、殆どシステムの開発と同じような感じですね。 しかも、100%リモートワーク。

さまざまな会話がSlack上で行われ、やらなければならないことはチケットで管理され、たまにオフラインで集まって調整といった形は、普段の業務と変わらないです。 そして当日は、参加者が快適にイベントに参加できるように、スタッフそれぞれがその場で判断したり、相談したりして運営していくのは、リリースしたサービスの障害対応や、エンハンスに近いとも思います。

HackDay

初級編

f:id:sparkgene:20160315223642j:plain HackDayは初級編と中級編の2つのコンテンツを用意しました。

f:id:sparkgene:20160315223638j:plain 初級編は満席で、OpenBlocks Iot + SORACOM + AWS IoT + Elasticsearch Serviceを使った、センサー情報の収集〜ビジュアライズまでを体験できるセッションでした。 ビジュアライズまでやってるのに、全部マネージドサービス使っているので、サーバレスという最強の環境です。

中級編

f:id:sparkgene:20160315223646j:plain 中級編ではMaBeeeをAWS IoT〜OpenBlocks経由で操作するというセッションでした。 ネットワークの調子が悪く、結局完走出来たのは一人だけと非常に申し訳ない結果となりましたが、一人でも完走者が出て良かったです。 MaBeeeは6月頃に発売されるようですが、すごく面白そうなので手にれたいと思います。

恒例のLT大会

f:id:sparkgene:20160315223651j:plain

一通りセッションが終わると、LT大会が始まります。とてもLTとは思えないような凝ったものもあり、ビールを飲みながら聞くのが楽しいです。 一日中チューターとして立っていたので、このタイミングでやっと椅子に座れましたw 案の定、翌日は筋肉痛です。。。

打ち上げ

f:id:sparkgene:20160315223655j:plain 去年とちがって公式な打ち上げはなかったので、有志でふらふらっと飲みに行きました。 ギネスビールとか飲みまくって、楽しく飲みました。(さすがにHubへいく元気はなかった)

11時月頃から手伝い始めてあっという間の4ヶ月でした。 次回のJAWS DAYSはどんなイベントになるか楽しみです!