BME280センサーモジュールとキャラクタLCDを付けました。
ウェザーステーション
Raspberry PiにBME280センサーモジュールとキャラクタLCDを接続してプロトタイプ風な見た目にしました。
LCDパネルはI2CタイプではなくGPIO接続の安いモデルを利用しています。(40文字x4行:800円)
LCDパネルに表示が出ていると、なんとなく動作している感はありますね。
日付が出ていた方がいいかも・・・
pythonプログラム
16文字x2行用のLCDモジュールライブラリを40文字4行対応に、簡単書き換えのライブラリを利用したので簡単スクリプトです。
#!/usr/bin/python
import sys, time
from datetime import datetime, timedelta
from RPiCharLCD import *
from Adafruit_BME280 import *
# Create I2C bus & BMP085 Objects
sensor = BME280(mode=BME280_OSAMPLE_8)
# LCD
myLCD = RPiCharLCD()
myLCD.lcd_init()
# Inherit from Daemon class
class ws:
# implement run method
def run(self):
# record event times
lastTimeUpd = datetime.now()
lastSensorReading = datetime.now()
lastTweet = datetime.now()
lastLog = datetime.now()
#initialise temperature and pressure, humidity
t = 0
p = 0
h = 0
# main loop
while True:
# Calculate elapsed time since last events
now = datetime.now()
timeElapsed = now - lastTimeUpd
sensorElapsed = now - lastSensorReading
# Time to read temp & pressure
if sensorElapsed > timedelta(seconds=5):
t = sensor.read_temperature()
p = (sensor.read_pressure()/100)
h = sensor.read_humidity()
lastSensorReading = now
myLCD.lcd_write_string("T: {0:5.2f} C".format(t), 2)
myLCD.lcd_write_string("P: {0:7.2f} hPa".format(p), 3)
myLCD.lcd_write_string("H: {0:5.2f} %".format(h), 4)
print 'Temp = {0:0.3f} deg C'.format(t)
print 'Pressure = {0:0.2f} hPa'.format(p)
print 'Humidity = {0:0.2f} %'.format(h)
# Time to update LCD Display
if timeElapsed > timedelta(seconds=1):
myLCD.lcd_byte(myLCD.LCD_LINE_1, myLCD.LCD_CMD)
myLCD.lcd_write_string(datetime.now().strftime('%H:%M:%S'), 1)
lastTimeUpd = now
time.sleep(0.3)
def prttph(self):
temp = sensor.read_temperature()
hectopascals = sensor.read_pressure()/100
humidity = sensor.read_humidity()
print 'Temp = {0:0.3f} deg C'.format(temp)
print 'Pressure = {0:0.2f} hPa'.format(hectopascals)
print 'Humidity = {0:0.2f} %'.format(humidity)
if __name__ == "__main__":
a = ws()
#a.prttph()
a.run()
データベースとグラフ
計測データをデータベースに保存して、グラフを作成して見ました。
3分間テスト:
測定間隔を1時間にして、半日程データを測定してどうなるか確認して見ましょう。
他に課題は?
何かあるかな・・・デーモン動作は必要だけど、ツィートは微妙だとおもう。。。
* デーモン動作
* ツィート機能
計測データをツィートしているツィッターアカウント見てみた。
自分用に「動作チェック」用とか「測定データのバックアップ」として利用する分にはいいんじゃないかなぁと思うんだよね。
も少し考えよう。
結び
テレビのニュースによると、日本全国の小中学校は夏休みに入ったようですね。
ここ数日間でテスト稼働させてみて不具合が無いようなら、この夏休みの期間中はできるだけデータを取りつづけておきましょう!
ついでに、実測データとレポートも公開予定で。
スロースターターな人というか、大器晩成な人でしょうか、8月末になると駆け込み需要でダウンロードする人がいるようだから〜♪
0 件のコメント:
コメントを投稿