お久しぶりです。ブログを書くのも約半年ぶりとなりました。タイトルにある通り、JPHACKS2021 Hacking Sprint(いわゆる地方予選に相当) に参加してきました。

結果から申しますと、なんとAブロック(北海道・東北ブロック)で優勝しました!!🏅🎉

作ったもの

今回、サークルHUITのメンバー私含め5人と共に出場しました。私たちが作ったのは、COCOA(新型コロナウイルス接触確認アプリ)の信号でマスクを自動開閉するアプリとデバイス、サムネイルにもある「ココノマスク」を作成しました。

ココノマスクのアプリとデバイス

私は主にデバイスの作成を行いました。使用技術は以下の通りです。
使用した技術

デバイスはRaspberry Pi Zeroの上にPythonのプログラムで動作しており、これがBluetooth LEを見張ることで、COCOAの信号を識別します。チームにはネイティブアプリをかける人がいなかったため、Web(React.js)をベースにアプリを開発しました。従って、Web Bluetoothをデバイスとのペアリングに採用しました。

デバイスの動作こんな感じです(GIF)。

作っていて面白かったものは、COCOAの通信の仕様書Google/Apple Exposure Notifications Systemを読んでいた時です。一年ほど前になんとなくインストールしていたCOCOAの裏側ではいくつものプライバシーを配慮した技術があり(ex.送信電力の暗号化)、これには逆にCOCOAを応用した設計をするのにに苦労する場面もありました。実装の詳細はGitHubを参照ください。実は私は数年前にBLE通信で心が折れた経験があり、正直完成するかめちゃめちゃ不安でした。

感想

本ブログに何度か登場しているたかぴろとはおそらく最後になるハッカソンイベントだったので、共に栄誉ある賞を受賞できたことがとても嬉しかったです。また、他3人のメンバーについても、僕と初対面にも関わらずチーム開発に受け入れてくれた事にも感謝します。
1週間でハードウェア・ソフトウェア共に突貫工事で進めたため、Award Day 進出になった際にはもっと技術を磨こうと思います。

最後に、発表で使用したスライドを載せておきます。