FirebaseとArduinoで忘れ物をなくす

7c62412a3a3876895b34dc6cc3bce670?s=47 Masaki Kuge
October 07, 2018
160

 FirebaseとArduinoで忘れ物をなくす

7c62412a3a3876895b34dc6cc3bce670?s=128

Masaki Kuge

October 07, 2018
Tweet

Transcript

  1. Firebase と Arduino で 忘れ物をなくす 1

  2. リラックスして 聴いていただければ 2

  3. メンバー紹介 3

  4. 久下 柾 (Kuge Masaki) グループ統制 / Arduino プログラム 担当 ⼯業枠特別推薦で⾸都⼤学東京に合格

    1 ⽇1 ⾷ オールジャンルマジキチ⾳ゲーマー 4
  5. 寺⽥洋⼈ (Terada Hiroto) Android アプリ担当 通称 ⿂ この課題研究の全ての元凶 とにかく写真写りが悪い 5

  6. ⼭⼝ 航輝 (Yamaguchi Kouki) ハードウェア全般担当 通称 ぐっちー この課題研究の救世主 遅寝早起き 6

  7. コンセプト 7

  8. 忘れ物をなくす 8

  9. 進学⽤にやっておきたいこと 授業で培った知識を実践で活かしたい ⾯接のネタとして活⽤したい 興味のある分野について勉強したい ハード、ソフトの向き不向きをわかりたい プログラミングの地⼒をつけたい スライドショーづくりに慣れておきたい 9

  10. 制約 経費は9,000 円以内 → ただし私物は0 円として計算する 著作権、電波法などの法律に引っかからない 命及び環境に危険を及ぼす開発はしない ( 例)

    原⼦⼒発電など 10
  11. 概要 忘れ物を家に出るときに通知してくれる何か 11

  12. 性能要件 家を出るときに、登録しておいたクリップが近く にあるかを確認し、なかったら通知する。 クリップ( 忘れ物) が⾒つからない場合、アプリの⽅ から⾳をクリップに⾳を出させる クリップを常につけておくことで、外出先ですぐ に通知を予約することができる 各クリップにはアプリ側で名前をつけられる

    12
  13. わかりづらすぎる 13

  14. 噛み砕いてみる 親機→ ⽞関に置いておく ⼦機→ 忘れ物につけておく スマホアプリ→ ⼦機を予約しておく 1. ⽞関に置いてある親機のスイッチを押す 2.

    親機が予約してある⼦機が近くにあるか探す 3. 近くにない⼦機をスマホに通知する 14
  15. 初期案 15

  16. 忘れ物の予約をスマホから⾏う Android Studio でアプリを制作 → ⾔語はKotlin →iOS 向けアプリは経費の関係で断念 16

  17. 親機 Arduino とESP8266 →LAN を使ってスマホに通知を送れるのでは? Bluetooth モジュール → 親機と⼦機の通信を仲介 GPS

    モジュール → ⼦機の場所を検索 その他電⼦部品 接続はブレッドボード 17
  18. ⼦機 Bluetooth モジュール → 通信 プリント基板を使う → 回路図はEAGLE を使⽤ その他電⼦部品

    はんだ付けで電気的接続 18
  19. スマホへの通知 アプリとLAN を使って、Arduino とスマホを接続 19

  20. 実装してみよう! 20

  21. あれ? 21

  22. 問題点 パーツ代が⾼すぎる →Bluetooth モジュール 2 万円 / 個 GPS は誤差が多い

    → ⼀軒家だとしても正確な位置情報が得られない LAN だとスマホに通知が送れない → ローカルIP で⾏けなくもないが... 全体的にパーツが⼤きい → 妥協しました 22
  23. 解決法 Bluetooth ⾼すぎ問題 →TWILITE tip 採⽤(¥1,620) → 少し⾼いが、Bluetooth よりは安価 GPS

    誤差⼤きすぎ問題 → 発振器を作る →LC 発振回路をつくり発振させる → それを受信器で増幅させ、Arduino が受け取る 通知が送れない問題 →Firebase Realtime Database を利⽤ →ESP とJava にFirebase ⽤のライブラリがある 23
  24. Re: 実装してみよう! 24

  25. 親機 Arduino UNO ESPr developer (ESP8266) TWILITE tip 受信器 その他電⼦パーツ

    25
  26. 親機 26

  27. ⼦機 TWILITE tip LC 発振回路 その他電⼦パーツ 27

  28. ⼦機 28

  29. ⼦機 29

  30. ⼦機 30

  31. ⼦機 31

  32. ⼦機 32

  33. アプリレイアウト 33

  34. 実演 34

  35. ⼦機が近い場合 35

  36. ⼦機が近い場合 36

  37. ⼦機が近い場合 37

  38. ⼦機が遠い場合 38

  39. ⼦機が遠い場合 39

  40. ⼦機が遠い場合 40

  41. まとめ 1 年間頑張った甲斐があった それぞれのメンバーの特⻑が⽣きた研究だった 都⽴⾼校⽣なりに限界があった スケジュールはしっかり守ったほうが良い Kotlin は神⾔語 Firebase は神サービス

    41
  42. 使ったソフトウェア Ubuntu 18.04 LTS Arduino IDE 1.8.5 Marp 0.0.13 →

    https://yhatt.github.io/marp scrapbox → scrapbox.io 42