Upgrade to Pro — share decks privately, control downloads, hide ads and more …

バスあと何分ミニサイネージ

 バスあと何分ミニサイネージ

M5Stack Japan Creativity Contest 2022の資料です

Satoshi Gachi Fujimoto

September 12, 2022
Tweet

More Decks by Satoshi Gachi Fujimoto

Other Decks in Technology

Transcript

  1. きっかけ
    • 熊本の渋滞はワースト1位(箇所数・平均速度)
    • 5分おきにバスが来るような都会ではない(逆に2台同時に来ることがよくあるw)
    • だいたいバス停に近づくと目の前をバスが通り過ぎてしまう!
    • 自宅やオフィスにサイネージが欲しかった
    • 時刻や〇停前ではなく「あと何分」だけが知りたい
    • 去年11月ごろにGTFSリアルタイムに対応した(スクレイピングしていたものを変更)

    View Slide

  2. システムの構成
    GTFS
    リアルタイム
    Lambda
    S3
    API Gateway
    EventBridge
    M5Stack
    GTFS(静的)
    Lambda
    バスきたがちもとさんAPI (AWS Cloud)
    バスきたがちもとさんミニ
    https://km.bus-vision.jp/kumamoto/view/opendataKuma.html

    View Slide

  3. システムの流れ
    1. 運行前にGTFS(静的)からデータを更新
    2. M5StackのSDカードにWiFi設定、乗車停留所と降車停留所を書き込んでおく
    3. M5Stackを起動すると1分おきにAPIを叩き、「あと何分」の情報を取得
    GTFS
    リアルタイム
    Lambda
    S3
    API Gateway
    EventBridge
    M5Stack
    GTFS(静的)
    Lambda

    View Slide

  4. 運行前にGTFS(静的)からデータを更新
    • EventBridgeを用いて毎朝4:15~5:30の間に15分おきにLambda関数(update)を実行
    • Lambda関数(update)
    1. GTFS(静的)データを取得
    2. 提供情報(feed_info.txt)のfeed_versionが更新されていたらS3に保存
    • 停留所情報(stops.csv)→ バス停一覧(stop_names.csv)を作成
    • 経路情報(routes.csv)
    • 便情報(trips.csv)
    • 通過時刻情報(stop_times.csv)
    • 運行区分情報(calendar.csv)
    • 運行日情報(calendar_dates.csv)
    3. 更新したか/最新かを返す
    S3
    EventBridge
    GTFS(静的)
    Lambda

    View Slide

  5. 「あと何分」の情報を返すAPI
    • Lambda関数(minutes)
    1. 乗車停留所→降車停留所の時刻表を作成
    • 停留所情報(stops)から一致するバス停名のstop_idを取得
    • stop_idに対応する通過時刻情報(stop_times)を取得
    • trip_idに対応する便情報(trips)を取得
    2. service_idと一致する運行区分(calendar)と運行日情報(calendar_dates)から運行状況を確認
    3. GTFSリアルタイムのTrip_Updateからtrip_idとstop_idが一致する通過時刻を取得
    4. 通過時刻から現在時刻を引いて「あと何分」のリストを返す GTFS
    リアルタイム
    Lambda
    S3
    API Gateway

    View Slide

  6. M5Stackを起動すると1分おきにAPIを叩き、「あと何分」の情報を取得
    https://qiita.com/SatoshiGachiFujimoto/items/f529cb9fb513bd5eab0c
    M5StackのSDカードにWiFi設定、乗車停留所と降車停留所を書き込んでおく
    1分おきに実行
    https://qiita.com/SatoshiGachiFujimoto/items/1723685ba1beb51ca3c3

    View Slide

  7. M5Stackを起動すると1分おきにAPIを叩き、「あと何分」の情報を取得
    https://qiita.com/SatoshiGachiFujimoto/items/1723685ba1beb51ca3c3

    View Slide

  8. どんな反応をもらえた?
    • Twitter(約7000いいね、約1600リツイート)
    • togetter(約14万PV)
    • ねとらぼ
    • Yahooニュース (コメント22件)
    • exciteニュース
    • はてなブックマーク(コメント145件)
    https://twitter.com/sotongshi/status/1471274080100040705
    https://togetter.com/li/1817346
    https://nlab.itmedia.co.jp/nl/articles/2112/19/news034.html
    https://news.yahoo.co.jp/articles/5b90c08c2b5269a2358cbe4de0d66e5396a72a74
    https://www.excite.co.jp/news/article/OtonaLife_otona_life97388/
    https://b.hatena.ne.jp/entry/s/togetter.com/li/1817346

    View Slide

  9. View Slide

  10. ご家庭、オフィスに1台いかがでしょうか?

    View Slide