目的
花粉の飛散情報を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時間前のデータとなるので、取得時刻もわかるようにしました。
動作は下記
- はなこさんに最新のデータを問い合わせ
取得元の測定局を下記を参考にコードを選択しました
http://dsas.blog.klab.org/archives/cat_50034369.html - 取得できたデータの時刻を表示
- 取得した花粉飛散量情報を表示
ファイル配置
- /prj
- /kafun_display
- hanako.py (https://gist.github.com/mursts/2156713)
- kafun_display.py (下記ソース)
- /kafun_display
ソースコード
#!/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