![見出し画像](https://assets.st-note.com/production/uploads/images/156572244/rectangle_large_type_2_488280d225c4c7eede92e1c7de35605f.png?width=1200)
#13 探究Memo010
高校生が開発したRaspberry Piを用いた現状のシリンダー錠を電子錠化するシステム。間違いなどがあったら最後に添付されたフォームで教えてください。
現状の開発状況のまとめ。
まずは、Raspberry Pi内で動かすPythonコード。
今回の変更でNFCカードで解錠・施錠するだけでなく、専用アプリで解錠・施錠の操作を行えるようにしました。
専用アプリについて
Flutterを用いて構築しています。
データベースはSupabaseを使用しています。
![](https://assets.st-note.com/img/1727153271-tdDOBjZXRAnr1o56FqY9yepG.png?width=1200)
・動作
1.ログインページを表示(2回目以降の起動時からはログイン情報を自動保存する)
![](https://assets.st-note.com/img/1727153458-8brGc9F3Kka7TfEhxyZPlpWJ.png?width=1200)
2.ホーム画面を表示
![](https://assets.st-note.com/img/1727153511-WXyISUxAvdZBGH9bPw2ETQl3.png?width=1200)
3.解錠・施錠それぞれの操作を行う
A)解錠操作
ⅰ.Unlockボタンを押す
ⅱ.認証ページが開かれるので、そこに数字(ドアに表示されている)を入力する
![](https://assets.st-note.com/img/1727153611-2mlvJqh9MZcLI8d7e0WOik3Y.png?width=1200)
ⅲ.ドアが解錠され、ホーム画面に戻る
B)施錠操作
ⅰ.Lockボタンを押す
ⅱ.ドアが施錠される
![](https://assets.st-note.com/img/1727153634-eBUsRZamcgnkXW31yIOFAMGT.png?width=1200)
ドアシステムについて
コードは下記のリンク先にあります。
idm.pyはNFCカードのidを読み取るためのものです。
今後はNFCの認証方式を現状のIDを確認するだけのものから相互認証に変更するか、アプリでの解鍵施錠の操作しか受け付けないようにするかのどちらかに変更していきたいと考えています。
ログ検索システムについて
Googleスプレッドシートを使用しています。
データベースから操作履歴をコピーして月毎のシートにまとめます。
また関数を用いて特定の条件と一致する履歴を検索することができます。
質問があったらノートに追記してきます。
追記
2024.11.01 追記
GASのコードを変更しました。
→従来のコードだと月が変わった時に50002行に書き込み直し続けるというバグが発生していた。
過去に解説したnoteの方は変更せず、そのうち新たに解説用のnoteを作ります。