高校生が開発したRaspberry Piを用いた現状のシリンダー錠を電子錠化するシステム。間違いなどがあったら最後に添付されたフォームで教えてください。

現状の開発状況のまとめ。
まずは、Raspberry Pi内で動かすPythonコード。
今回の変更でNFCカードで解錠・施錠するだけでなく、専用アプリで解錠・施錠の操作を行えるようにしました。

専用アプリについて

 Flutterを用いて構築しています。
 データベースはSupabaseを使用しています。

アプリの表示(Xperia 5ivを使用,os;Android14)
アプリの表示(Xperia 5ivを使用,os;Android14)

 ・動作
   1.ログインページを表示(2回目以降の起動時からはログイン情報を自動保存する)

ログイン画面(Xperia 5ivを使用,os;Android14)
ログイン画面(Xperia 5ivを使用,os;Android14)

   2.ホーム画面を表示

ホーム画面(Xperia 5ivを使用,os;Android14)
ホーム画面(Xperia 5ivを使用,os;Android14)

   3.解錠・施錠それぞれの操作を行う
    A)解錠操作
      ⅰ.Unlockボタンを押す
      ⅱ.認証ページが開かれるので、そこに数字(ドアに表示されている)を入力する

認証ページ(Xperia 5ivを使用,os;Android14)
認証ページ(Xperia 5ivを使用,os;Android14)

      ⅲ.ドアが解錠され、ホーム画面に戻る
    B)施錠操作
      ⅰ.Lockボタンを押す
      ⅱ.ドアが施錠される

施錠後の画面(Xperia 5ivを使用,os;Android14)
施錠後の画面(Xperia 5ivを使用,os;Android14)

ドアシステムについて

 コードは下記のリンク先にあります。
 idm.pyはNFCカードのidを読み取るためのものです。
 今後はNFCの認証方式を現状のIDを確認するだけのものから相互認証に変更するか、アプリでの解鍵施錠の操作しか受け付けないようにするかのどちらかに変更していきたいと考えています。

ログ検索システムについて

 Googleスプレッドシートを使用しています。
 データベースから操作履歴をコピーして月毎のシートにまとめます。
 また関数を用いて特定の条件と一致する履歴を検索することができます。

質問があったらノートに追記してきます。


追記

2024.11.01 追記
 GASのコードを変更しました。
  →従来のコードだと月が変わった時に50002行に書き込み直し続けるというバグが発生していた。
   過去に解説したnoteの方は変更せず、そのうち新たに解説用のnoteを作ります。

Written by

Discussion

No comments yet