Raspberry Pi 作品集
液晶キャラクタデバイスへの表示
液晶キャラクタデバイスへの表示
Raspberry Pi のLCDを見れば、温度・湿度・気圧が判る様にする。
液晶キャラクタデバイス:ACM1602NI-FLW-FBW:秋月電子通商 800円。
液晶 16文字x2行 へ 月日・時刻・温度・湿度・気圧 を表示。
スポンサー リンク
液晶キャラクタデバイスへの表示内容と位置。
Raspberry Pi に、温度と湿度が計測できるセンサーと、さらに気圧が計測できるセンサーを接続。
これらのセンサーから値を取得する回路と、取得した値をHDMI端子に接続しているディスプレイに表示するプログラムを作った。
しかしこれだと、ディスプレイがなければ役に立たないので、液晶キャラクタデバイスに表示し、 Raspberry Pi 単独で 『百葉箱』 になるようにした。
表示位置をヘキサデシマルのアドレスで指定するというのが、EBCDIC(エビシディック)の汎用機で育った世代には何とも懐かしい。
Python PGM List。
#! /usr/bin/env /usr/bin/python
# -*- coding: utf-8 -*-
import datetime
import time
import smbus
import mpl1152a2
from acm1602 import acm1602
# LCDセットアップ
lcd = acm1602( 1, 0x50, 4 )
lcd.move_home()
lcd.set_cursol( 0 )
lcd.set_blink( 0 )
i2c_channel = 1
i2c = smbus.SMBus( i2c_channel )
dac = i2c.read_i2c_block_data( 0x27, 0, 4 )
h = ( ( dac[0] & 0x3f ) << 8 ) | dac[1]
humi = (float)(h) / 16383 * 100
t = ( dac[2] << 6 ) | (dac[3] >> 2)
temp = (float)(t) /16383 * 165 - 40
pres = mpl1152a2.getpressur( i2c_channel )
d1 = datetime.datetime.today()
d2 = datetime.datetime.strftime(d1,"%m%d")
print d1
print "Temperature : %.2f C" % temp
print "Humidity : %.2f %%" % humi
print "Pressure : %.2f hPa" % pres
lcd.backlight(1)
# 年月日
lcd.move( 0x00, 0x00 )
lcd.write( d2 )
# 時分
lcd.move( 0x05, 0x00 )
lcd.write( time.strftime("%H%M") )
# 温度
lcd.move( 0x0a, 0x00 )
lcd.write( "%.2fC" % temp )
# 湿度
lcd.move( 0x00, 0x01 )
lcd.write( "%.2f%%" % humi)
# 気圧
lcd.move( 0x07, 0x01 )
lcd.write("%.2fhP" % pres )
以上。
(2015.01.02)
スポンサー リンク