yahoo hack day 2017に出場しました。

2/4,5の2日間でHack day 2017に出場してきました。

hackday.jp

私は2人チームで出場し、oYUHARIというスマホアプリから遠隔操作で自宅のお風呂にお湯を張れるというIoTなシステムを開発しました。

チーム内の分担としては
私がプログラム面での製造を行い、もう一人のお仲間がデモ用の装置を接着剤とかハンダとかカッターとか駆使して作成しました。
つまりはソフト担当とハード担当といったところでしょうか。

システムの動作概要としては以下のような感じ

  1. まず前準備
    • 風呂の蛇口に本システムで動作する電磁弁を取り付けておく。
    • 蛇口を開けておく。電磁弁が閉まっている状態なのでお湯は漏れない
  2. スマホアプリで湯張り完了時間とお湯の量を設定し、お湯張りボタンをタップする
    • rasberry piにお湯張りを要望するhttpリクエストが飛ぶ
  3. rasberry pi内部で湯張り開始時刻と湯張りにかかる時間を計算
  4. 湯張り開始時刻になるとrasberry piのGPIOからリレーモジュールに対して電圧をかけ始める。
    • raspberry piがかけられる電圧は3.5Vであり、電磁弁を動かす為に必要な12Vに足りない為、リレーモジュールとバッテリーを使用する。
  5. リレーモジュールがバッテリーから電流(12V)を取得し、電磁弁に横流しする。
  6. 電磁弁が開き、お湯が風呂桶に入り始める
  7. 湯張りにかかる時間が経過するとrasberry piのGPIOから流れていた電圧(3.5V)が止まる
  8. リレーモジュールがバッテリーから電流(12V)を取得しなくなる

シーケンス図にすると以下のような感じ。

Created with Raphaël 2.1.2スマホアプリスマホアプリraspberry piraspberry piリレーモジュールリレーモジュールバッテリーバッテリー電磁弁電磁弁webサーバ起動webサーバはpythondjangoで構築post(湯張り完了時刻,湯量)200 OK湯張りにかかる時間を計算湯張り開始時刻を計算湯張り開始時刻までスリープ電圧 START湯張りにかかる時間スリープ電圧START電圧START開く湯張り開始電圧 STOP電圧STOP電圧STOP閉じる湯張り終了

結果としては入賞できずに終わってしまいましたが、他のチームの発表を見ることで様々な技術・発想に触れることができとてもよい刺激になりました。 また別のハッカソンにも参加しようかな