こんにちは。長田です。
今日は、Beetle Moduleを使って、簡単な出退勤システムを作ってみました。手前の4つのボリュームを回すことで自分のID(2~8の範囲の値を4ケタ)を設定し、送信ボタンを押すことでPCに送信します。
PC側ではそれを受信してアプリ内で検証し、ファイルを出力して入力部に結果をフィードバックします。
大まかな処理ははこのようになっています。
以下、システムについて見ていきます。
1.システム概要
全体の大まかな概要としては、入力部から無線通信でPCにIDデータを送り、
PC側では入力されたIDがメンバーリストに存在するかどうか照合して、結果をファイルに書き出す、といったものです。
この写真のものが入力部となっていて、ボリュームを回すことでIDを1ケタずつ設定し、
右下のボタンを押すことで送信します。結果に応じて、赤と緑のLEDが点滅します。
これがメンバーリストのテキストです。「4ケタのID:名前」の書式で書いて、Windowsの環境変数の設定のようにセミコロン(;)で区切ってあります。このファイルを編集することでメンバーを変更できます。IDを受け取った際にこのメンバーリストを指定文字で区切って読み取り、
受け取ったデータが存在するかチェックします。
2.実践
食堂に装置を置いて、隣の部屋にあるもう一方の、PCと接続したモジュールと通信します。このようになっています。
アプリ側ではIDが存在しないといわれ、テキストファイルの内容も変化していません。では、もう一度IDを8888に設定して送信してみます。すると、
先ほど出勤登録がされていたので、今度は退勤となりました。ちなみに写真だとわからないので割愛しますが、出勤登録では緑のLEDが一回点灯したのに対して、退勤登録の場合は2回点灯しています。
また、例外やデータの損失などがあった場合には、赤LEDが何度か点滅するようになっているので、少し待ってから再送信するといいでしょう。
ちなみにテキストファイルは下図のように登録が積み重なっていきます。
これで誰が何時に出退勤したかという情報がわかるというわけです。
3.終わりに
全体の製作期間は4日ほど。途中わからないことをいつまでも悩んでかなり時間を取られてしまいました。あと、可変抵抗の特性の種類をよく理解せずに買ってしまい、買ったのがAカーブだったため、回転角度と抵抗のグラフが二次曲線を描く特性とAD変換による損失などから、ボリュームの両端付近(IDでいうと0,1,9)の入力の変化をとらえるのが難しく、結局IDの入力範囲を2~8とすることになりました。無念…。ちゃんと調べて、Bカーブ(直線を描く)の抵抗を買うべきでした…。
社員の方に、「問題を切り分けて書き出すなりして整理すれば、わからないことを聞くことができる」と言われ、自分がなかなか質問に踏み出せなかった理由がわかった気がしました。
以上で、私のBeetle Module体験記(?)は終わりです。
最後まで読んでくださりありがとうございました。