Raspberry Piで花粉情報を7セグに表示

目的

花粉の飛散情報をRaspberry Piを経由して7セグに表示する

前回と同様 赤フグさんの下記キットを利用しました http://www.akafugu.jp/ja/posts/products/twidisplay/

前回の記事
http://kouzu.info/raspberrypi-twi-7seg

情報の表示ソースは 「はなこさん」のデータを利用しています。
http://kafun.taiki.go.jp/index.aspx

準備

Pythonのはなこさん情報取得ライブラリを利用

ありがとうございます https://gist.github.com/mursts/2156713

requestsライブラリをインストール

# pip install requests

出来上がった物

動作概要

最新の物が1時間前のデータとなるので、取得時刻もわかるようにしました。
動作は下記

  1. はなこさんに最新のデータを問い合わせ
    取得元の測定局を下記を参考にコードを選択しました
    http://dsas.blog.klab.org/archives/cat_50034369.html
  2. 取得できたデータの時刻を表示
  3. 取得した花粉飛散量情報を表示

ファイル配置

ソースコード

#!/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)  

cron

*/5 * * * * root /prj/kafun_display/kafun_display.py 2>&1 >/dev/null
takashi