ラズベリーパイにパソリを付けてタイムカードにする – Information Teaching Service 雄飛

ラズベリーパイにパソリを付けてタイムカードにする

こんばんは、お久しぶりです。

今回は(も)、パソリの続きです。
前回↓
Felica(Pasori)とエクセル(とDelphiとかで)で自動勤怠アプリを作て見た2

前回作った勤怠アプリの問題点は、媒体となるPCが、全く音が出ない事。
どうやらドライバが当たっていない様。

これでは、打刻ができましたの合図ができない。
また、媒体はノートpcなのですが、置き場が固定される。
決して小さくは無いものなので、玄関先にこんなもん置けない。

さて困った。

あ、社会人学生してた時のラズパイ(RasBerreyPI:初代ラズパイ)が余ってたっけ。

こいつを使おう。

さて思い立ったが吉日。

用意するもの:
  ラズベリーパイ本体
  キーボード、マウス
  Wifi無線子機ドングル
  有線LANケーブル
  モニタ
  ラズパイを遠隔操作する為のPC一台
です。

先ず、ラズパイ本体を引っ張り出してくる。
試しに何かインストールしてみる。
が、OS古すぎて、apt-get installできない。
更に、日本語が文字化けしていて、良く判らない。

最高に不便だ。
しかも、動作が重い。

参った。

そんな時はグーグル先生に限ります。

ググってみると、最新のラズパイ事情は大分進化してるのね。

こちらからOS(のインストーラ)をダウンロードします。

https://www.raspberrypi.org/downloads/

NOOBSとラズビアン、どちらにするか、選択肢があるので、
Noobsをダウンロードします。

Noobsがダウンロード終わったら、
こいつを解凍して、ラズパイに挿してあるSDカードに、
コピーします。
(前のラズパイOSは削除なりバックアップ取るなりして、空にしてください)

そしたら、ラズパイ起動!

が、選択肢が空。
先へ進めん。

良くみると、ネット接続が必要な様ですね。

初代ラズパイは、Wifiが内蔵されていないので、
有線Lanを接続してインターネットに接続します。

するとどうでしょう、選択肢がたくさん出て、
どのOSをインストールするか確認されます。

要はこれ、インストーラだったのね。

今回は、無難に奨励されている、ラズビアンOSを選択します。

20分から30分で、インストールは完了しました。

あと、文字化けは嫌なので、言語は英語にしておきました。

インストールしたら、最初にする事。
sudo apt-get update
で、更新分をアップデートして最新版にします。

で、次にするのはsambaのインストール。
こいつがないと、ネットワークディスクアクセスや、
遠隔操作する時に、PC名でVNC接続出来ません。
素ではIP名で接続しかできないので。

sudo apt-get install -y samba
で、サンバをインストールします。

次に、VNCをインストールします。

sudo apt-get install x11vnc

と入力、x11vncをインストールします。

次に詳細を設定します。

x11vnc -storepasswd

と入力して、ラズパイのVNCのパスワードを設定します。

設定が終わったら、ラズパイにアクセスしてみます。

因みに、クライアントソフトはこちら。
http://www.uvnc.com/

クライアントをインストールして、
RASPBERRY:0
と、接続先に入力します。

すると、アクセス出来た筈です。

次に、VNCを自動起動に対応させます。

/home/pi/.config/ フォルダに、autostartというフォルダを作ります。

sudo mkdir /home/pi/.config/autostart
で、フォルダができた筈です。

sudo leafpad /home/pi/.config/autostart/x11vnc.desktop

で、ファイルを作成、編集します。

中身は、


[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=X11VNC
Comment= Exec=x11vnc -forever -display :0 -ultrafilexfer
StartupNotify=false
Terminal=false
Hidden=false

と入力、保存します。

次は、
sudo raspi-config
と入力、3番を入力し、ついのメニューで2番目を選択します。

設定完了したら、コンフィグレータを終了します。

できたら再起動します。

起動したら、PCからVNCでアクセスしてみてください。
ログインできた筈です。

次は、ネットワークディスクにGuiからアクセスできるアプリを入れます。
sudo apt-get install ~ydolphin
と入力します。

このアプリは、ネットワークドライブにアクセスできる機能を持った、
ファイルマネージャになります。

インストールが終わったら、
次は音を出す設定をします。

まず、タスクバー(画面の上にある、Windowsで言う所のスタートバー)
にある、サウンド関連のアイコンを右クリックして設定を出します。
(だったと思う)

そして、音声出力先を、アナログ音声に設定します。

cd /opt/vc/src/hello_pi/
./rebuild.sh

と、入力します。

/opt/vc/src/hello_pi/hello_audio/hello_audio.bin

と入力し、音が出るのを確認します。

音が出たら、サウンド関連はこれで完了です。

次はいよいよ、パソリの設定です。

sudo apt-get install libusb-dev

で、libusbをインストールします。

それがおわったらlibpafeをインストールします。

git clone https://github.com/rfujita/libpafe.git
cd libpafe
./configure
make
sudo make install

と入力し、libpafeをインストールします。

しかし、これだけでは動きません。
ラズパイの場合。

sudo leafpad /etc/ld.so.conf.d/local.conf

と入力し、
/usr/local/lib
を追加します。
終わったら、
ldconfig -v

sudo leafpad /lib/udev/rules.d/60-libpafe.rules
————————–
ACTION!=”add”, GOTO=”pasori_rules_end”
SUBSYSTEM==”usb_device”, GOTO=”pasori_rules_start”
SUBSYSTEM!=”usb”, GOTO=”pasori_rules_end”
LABEL=”pasori_rules_start”

ATTRS{idVendor}==”054c”, ATTRS{idProduct}==”006c”, MODE=”0664″, GROUP=”plugdev”

LABEL=”pasori_rules_end”
————————–

と入力します。

ATTRS{idVendor}==”054c”, ATTRS{idProduct}==”006c”, MODE=”0664″,

は、パソリ(フィリカカードリーダー)のアドレスです。
lsusb
と、端末に打ち込んで、
表示されたフェリカカードリーダーのアドレスを書きます。

これで、パソリが使えるようになった筈です。

端末に、
pasori_test、
フェリカカードをカードリーダーに乗せて、
felica_dump
と、それぞれ入力してください。

パソリが動いてコンソールに何やら表示された筈です。

次は、漸くシェルスクリプトの出番。

以下のシェルスクリプトを作成します。
ここより下スクリプト↓

#!/bin/bash

while :
do
felica_dump | sudo tee ./temp.txt     
grep “SN ”  temp.txt | sudo tee ./temp.txt

if [ ! -s ./temp.txt ]; then
   echo “待機中…”
else

cut -c 21-27 temp.txt | sudo tee ./temp.txt
date | sudo tee ./temp2.txt
echo ” , ” | sudo tee ./dlmt.txt
paste temp.txt dlmt.txt temp2.txt dlmt.txt | sudo tee ./temp3.txt
felica_dump | sudo tee ./loop.txt
while [ -s ./loop.txt ];
do
  felica_dump | sudo tee ./loop.txt
  echo “カードをお戻しください”
done

  echo “書き込み中…”
    cat ./temp3.txt | sudo tee -a ./kintai.txt
    aplay 「任意のWAVファイル.wav 」 
fi
done

ここより上スクリプト↑

これで、勤怠記録のスクリプトができました。

次は、これを自動起動させます。

以下のファイルを編集して、自動起動の処理を書きます。

sudo leafpad /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will “exit 0” on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ “$_IP” ]; then
  printf “My IP address is %sn” “$_IP”
fi

# 自動起動させる
sh /home/pi/kintai/kintai.sh &

exit 0

ここでは、/home/pi/kintai/というフォルダを作成し、
kintai.shというスクリプトファイルを実行させます。

以上になります。

以下、参考にさせていただいたページです。

ラズパイを買ったらそのあとは?地獄の初期設定をしよう【OSインストール・日本語設定編】

Raspberry Piを別のPCからリモート操作

Raspberry Piで音を出すまで

Rasberry piでfelica(edy/suica)を読む

raspberrypiでFeliCaのIDmを読み取る(pasori RC-S320版)

ラズベリーパイ:起動時に自動実行したい

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です