Webエンジニアモノ作りにチャレンジ　Raspberry Pi 2 ✕ Arduino ✕ Xbee ✕ myThings = ？

![IMG_0930_2.JPG](https://qiita-image-store.s3.amazonaws.com/0/87230/0c4a42d5-d0f9-f611-78ff-4373517e7b50.jpeg)

**メリー・クリスマース**　:christmas_tree:

今日は、2015年12月24日。みなさまいかがお過ごしでしょうか？
聖なる日に、こんな記事で良いのかどうか？少々疑問が残りつつも・・・

ハード初心者のWebエンジニア達が、まじめに、モノ作りにチャレンジしました。そして、Maker Faire Tokyo 2015にも出展した、**ハムスター見守りシステム**について書いてみました。

##モノ作りにチャレンジしたきっかけは・・・

「**”[Maker Faire Tokyo 2015](http://makezine.jp/event/mft2015/)” に出展します！**」
これがきっかけでした。今までに、組み込みと言われる仕事も経験したけれど、自分たちでハードウェアなモノを作り出すことはまるでわかっていない。どう作るのかもわからん。。。でも絶対楽しいし、ワクワクするはず！！その勢いと気持ちだけを頼りに、出展品の製作に手を上げました。

今回のテーマはただ１つ

 「**[myThings](http://mythings.yahoo.co.jp/)を使ったプロトタイプであること**」

です。はい。出ました！「[myThings](http://mythings.yahoo.co.jp/)」これって何！？

## [myThings](http://mythings.yahoo.co.jp/)って何！？

これは、2015年7月27日に[Yahoo! Japan](http://www.yahoo.co.jp/)からリリースされたアプリでございまして、Webサービスとwebサービスを組み合わせることができる画期的なアプリなんです。Webサービス同士だけではなく、[Fitbit](http://www.fitbit.com/jp/home) や [Jawbone UP](https://jawbone.com/)、[Misfit SHINE](http://misfit.com/) などの活動量計とも組み合わせることができるのです。
例えば、「[Jawbone UP](https://jawbone.com/) ==> [Twitter](https://twitter.com/)」 を組み合わせると、朝起きた時（昼寝から復帰した時も :sweat_smile: ）に「おはよう」ってツイートを自動で送ることが出来てしまいます。さらに、[Yahoo! Japan](http://www.yahoo.co.jp/)が出しているだけに、Yahooのサービス（[Yahoo!天気・災害](http://weather.yahoo.co.jp/weather/)、[Yahoo!ショッピング](http://shopping.yahoo.co.jp/)、[Yahoo!知恵袋](http://chiebukuro.yahoo.co.jp/)、[ヤフオク](http://auctions.yahoo.co.jp/)など）も無料で使えてしまうので、自分のよく使うサービスを自由に組み合わせて楽しむことができます。

- [iOS版 myThings](https://itunes.apple.com/jp/app/id987874862)

- [Android版 myThings](https://play.google.com/store/apps/details?id=jp.co.yahoo.android.yiot&hl=ja)

- [myThigs公式ブログ](http://blogs.yahoo.co.jp/mythings_staff)

[![myThings PV](http://img.youtube.com/vi/TBMI61TSvXY/0.jpg)](http://www.youtube.com/watch?v=TBMI61TSvXY)

僕は左派:+1:

## さて、どんなプロトタイプを作ろうかな

IoT(Internet of things) 身の回りのものがインターネットにつながって、なんか見えたら面白いよね。ってことで、センサーデータを使ってSNSなどのサービスに投稿するというアイデアがまず浮かんできました。

>[あったらいいなと思う飼育サービスー年代別](http://www.petfood.or.jp/data/chart2014/09.html)　
><一般社団法人ペットフード協会より>

このグラフからもわかる通り、ペットを飼育されてる方の約半数近くが
「旅行中、外出中のペットちゃんのことが心配 :sob: 」
と感じているようですねー。

たっだら、外出先からでも、かわいいペットちゃんの様子を伺うことができれば、飼い主の方も安心して出かけることができるようになるんじゃない？と思って、このプロダクトを思い立ったわけでございます。

#### ターゲット

次に、ターゲットをどうするか。ペットといえど

- いぬ
- ねこ
- うさぎ
- フェレット
- ハムスター
- インコ
- ハリネズミ
- サル
- かめ
- かえる
- 金魚

などなど、たくさんの種類がありますが、

1. **小型である**（大掛かりな装置（モノ）は作れないから）
2. **動きがある**（じっとしていたらデモのときに扱いづらい）
3. **破壊力が弱い**（作ったものをペット自身に壊されたくない）
4. **人気が高い**（魅きがいいから）

を考えたら、こうなりました。

- ~~いぬ~~　← 小型犬と言えど、でかいから
- ~~ねこ~~　← 意外と破壊力があるから
- ~~うさぎ~~　← 跳ぶから
- ~~フェレット~~　← 飼育方法・生態不明
- **ハムスター** :hamster:
- ~~インコ~~　← 飛ぶから
- ~~ハリネズミ~~　← 持てない
- ~~サル~~ ←　破壊力A、行動範囲A
- ~~かめ~~　←　いつ動く？
- ~~かえる~~　←　機械は水に弱い
- ~~金魚~~　←　言うこときかない

![hamu08_01[1][1].jpg](https://qiita-image-store.s3.amazonaws.com/0/87230/b2dd6962-4339-6d57-1ef5-c9768c7a19c3.jpeg "今回の主役")

とは言え、何よりハムスターの飼育経験者がいたことが、１番の決め手だったのですが、
今回はハムスターちゃんのためのシステムを考えることにしました。

##システム構成はこうなりました

超小規模なHEMSをイメージした、**HAMS**(ハムスター安全見守りサービス)と名付けました。

![スライド1.jpg](https://qiita-image-store.s3.amazonaws.com/0/87230/2e353106-fdc6-c0a9-7a76-a7592ea1bbb9.jpeg)

このシステムは、すべての飼育器をZigbeeネットワークで連携させています。
（ド素人な配線ですが、各飼育器の詳細図も載っけます。:fearful:）

#### HAMSセントラル 
RaspberryPiで、接続している飼育機器を管理します。各飼育器からのセンサーデータの受信と、別の飼育器への指令を行います。
さらに、付属で取り付けた7SegmentLEDに、受信したセンサーデータから解析した、活動量（回転数、スピード）を表示させます。
*(※図中左上のRaspberryPi)*

<img alt="hams_ブレッドボード.png" src="https://qiita-image-store.s3.amazonaws.com/0/87230/b6a98bfb-e4ec-ab0f-a0d2-5c521aafbdac.png" width="500">

###### パーツ

- [RASPBERRY PI 2 MODEL B](https://www.raspberrypi.org/products/raspberry-pi-2-model-b/)
- [XBee-PRO ZB / ワイヤアンテナ型](https://www.switch-science.com/catalog/602/)
- [SparkFun 7-Segment Serial Display](https://www.sparkfun.com/products/11441)　赤・黄・青
- [32×16ドットマトリクスLEDモジュール](http://blog.digit-parts.com/archives/51872590.html)　(ディスプレイを派手に演出したくって・・・)

#### HAMSスマートホイール
ハムスターといえば、回し車？です。回転数をセンシングします。
そのデータをZigbee無線通信を使用して、「HAMSセントラル(RaspberryPi)」に常時送信しています。
*(※図中右下)*

<img alt="赤外線センサー_ブレッドボード2.png" src="https://qiita-image-store.s3.amazonaws.com/0/87230/9f26de35-222d-c463-fbdd-5689ebb7b594.png" width="300">

###### パーツ

- [Grove - Infrared Reflective Sensor](http://www.seeedstudio.com/depot/grove-infrared-reflective-sensor-p-1230.html)
- [XBee-PRO ZB / ワイヤアンテナ型](https://www.switch-science.com/catalog/602/)
- [Breadboard_Power_Supply](http://www.petervis.com/Raspberry_PI/Breadboard_Power_Supply/YwRobot_Breadboard_Power_Supply.html)　(ブレッドボード１枚で、5Vと3.3Vを使いたかったのです。。。)


#### HAMSスマートフードボール（給餌器）
給餌器は、「HAMSセントラル(RaspberryPi)」からの指令を受信します。受信したら給餌器が開く仕組みになっています。今回は、３０回転の運動をしたら、給餌器が自動で回転し餌を食べるための口が開く仕掛けにしてみました。動かざるもの食うべからずですｗ。

<img alt="サーボ給餌_ブレッドボード.png" src="https://qiita-image-store.s3.amazonaws.com/0/87230/aa43c761-a178-3b6c-ecfd-bb16e29653ad.png" width="400">

###### パーツ

- [GWS125-1T/2BB/F](http://www.goodluckbuy.com/gws-digital-servo-sail-winch-s125-1t-2bb-360-degree-7-6kg-106oz-in-1-28sec.html)
- [XBee-PRO ZB / ワイヤアンテナ型](https://www.switch-science.com/catalog/602/)
- [Arduino UNO](https://www.arduino.cc/en/Main/ArduinoBoardUno)

#### IDCFクラウド
自作のデバイス(HAMS)とmyThingsとの接続口になるお馴染みのクラウドサーバーです。
ここへ、「HAMSセントラル(RaspberryPi)」から**HTTPS**でIDCFクラウドサーバーに情報を送ります。myThingsと連携するためには、少々(**１時間もかかりません**)IDCFクラウドの設定をする必要があります。設定方法は、[wamisnet](http://qiita.com/wamisnet)さんの[IDCF Cloudの設定](http://qiita.com/wamisnet/items/50ea5dbb4ec634154e3e#idcf-cloud%E3%81%AE%E8%A8%AD%E5%AE%9A)がとてもわかりやすいので参照してみてください。

## 躯体は3Dプリンターで

今回は、3Dプリンターも使ってみました。これもまた初めてなことばかりで、3Dモデリングツールを選ぶところから始めてみました。
活動量（回転数とスピートメータ）を見せるためのやつです。

<img src="https://40.media.tumblr.com/f403174f4c95fe659c28b3db66a3d657/tumblr_nztepc62T61ut0rjoo1_1280.png" width="500">

出力までかなり時間がかかるんですよね〜。もっとサクッとできる3Dプリンターが欲しいなぁと思いました。

## myThingsアプリの設定
最後に、myThingsアプリから組合せを作ります。

「*ハム助が運動したら、スマホのプッシュと、Evernoteに記録する*」
組合せを作ります。トリガーにはIDCFチャンネル、アクションには、PUSH通知とEvernoteを選びます。もしアクションをYahoo!メールやGmail、Twitterなんかに変更したいときも、アプリからできるので楽々ですね。

<img src="https://40.media.tumblr.com/6228d706f7f37cd707ca24e70a29d4b7/tumblr_nztevd8heV1ut0rjoo1_1280.png" width="200">

## 動画みてみてください
試行錯誤しながら作った**ハムスター見守りシステム**です。見てやって下さい。
[![myThings PV](http://img.youtube.com/vi/1FrRQV-I3wI/0.jpg)](https://www.youtube.com/watch?v=1FrRQV-I3wI)


## もし、myThingsがなかったらどうなる？？
IDCFクラウドを経由し、myThingsプラットフォームと繋ぐことで、さらにその先につながっている、Twitter、Facebook、Evernoteなどの多くのWebサービスやデバイスを利用することができるようになります。ハムスター運動情報を、ライフスタイルに合わせて、メールを送るのも良し、スマホのプッシュ通知に送るのも良し、myThingsがあればアプリの中で簡単に設定・変更することが出来ます。

でも、myThingsがなかったらどうなるのでしょう？

このシステムの場合だと、「HAMSセントラル（RaspberryPi）」上に、Twitter、FacebookやEvernoteのSDKを組み込んでプログラミングをして、アプリケーションIDを登録して、認証の仕組みを作って、審査を通して・・・２つ３つのサービスならなんとか可能かもですが、それ以上に対応しようと思うと・・・
このように、ハード側でとても多くの作業が必要になります。大変ですね:weary:

## 最後に
ハードウェア初心者であっても、プロトタイプくらいは簡単に作れる環境が広がってきていると思います。そして目の前で物体が動く楽しさは、作ってみないと味わえない醍醐味だと思いました。まだまだ知らなことわからないことだらけですが、もっと勉強して、新しいモノづくりにチャレンジし続けたいなと思いました。