目的
社内の数値目標/現在値を可視化する
現場にリアルタイムで近い時間間隔で現在値をシェア/フィードバックする
利用した物
- 社内で破棄待ちのモニタ
- Raspberry Pi
- HDMI → VGA 変換アダプタ
Amazon最安値でRaspberry Pi利用報告があったものを使いました。 - 7セグディスプレイ
下記で販売されている i2Cプロトコル対応の物です
http://www.akafugu.jp/ja/posts/products/twidisplay/ - ディスプレイ吊りアーム
本来机に挟んで利用するタイプの物ですが、パーティションに無理やり噛ませました
とりあえず何か表示してみる
マジメな話では、MSPとして残インシデントチケット数や障害対応クローズ時間の平均値を表示する予定なのですが
この時期という事もあり、下記のようなコードで現在の花粉量を5分毎に表示してみます(笑
i2cディスプレイ制御/Raspberry Pi設定について
下記をご参考に下さい
raspberrypi i2c で検索して出てきた情報を利用しました。
Linuxのカーネルモジュール動作設定が必要となりました。
Pythonのはなこさん情報取得ライブラリを利用
利用させて頂きます、ありがとうございます
https://gist.github.com/mursts/2156713
requestsライブラリをインストール
1 | # pip install requests |
ファイル配置
- /prj
- /kafun_display
- hanako.py (https://gist.github.com/mursts/2156713)
- kafun_display.py (下記ソース)
- /kafun_display
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #!/usr/bin/env python # coding:utf-8 import smbus import time import json import re from hanako import Hanako # init bus = smbus.SMBus( 1 ) ## set 7seg bright min 0x00 max 0xff bus.write_byte_data( 0x12 , 0x80 , 0x50 ) ## clear display bus.write_byte( 0x12 , 0x82 ) def display(seg, num): bus.write_byte(seg, 0x82 ) for i in list ( str (num)): bus.write_byte(seg, int (i)) time.sleep( 0.01 ) # GetKafun Data from API def get_kafun(area, mst): hanako = Hanako(area, mst) enc = json.dumps(hanako.now()) dec = json.loads(enc) return dec[ 'hour' ], dec[ 'pollen' ] ## get Kafun and Display hour, kafun = get_kafun( '03' , '51300100' ) display( 0x12 , re.match( "\d*" , hour).group()) time.sleep( 5 ) bus.write_byte( 0x12 , 0x82 ) display( 0x12 , kafun) |
/etc/crontab
1 | */5 * * * * root /prj/kafun_display/kafun_display.py 2>&1 >/dev/null |