fc2ブログ

ラズベリーパイで遊ぶ その4 気温・湿度・気圧センサーを繋ぐ ④

ソースコードの概要
BME280センサーからBMP280.pyにより取得した気温、湿度、気圧データをBlynkアプリへ出力及び16文字2行のLCDに
出力するPythonコードです。スマホにBlynkアプリをインストールしてLCD表示器をI2C接続してることを前提とします。
また、以下のlibraryを同じフォルダーに収めるかパスを通します。

各ライブラリーのダウンロード
ここに利用させて頂いたBMP280.pyはbme280_sample.pyに少し手を加えたコードで「ArduinoやESP、Raspberryで遊ぼう」
さんの記事から引用しました。ページを開いた一番下側のBMP280モジュール (bmp280.py)をコピーさせて頂きました。感謝!
BMP280.pyのコピー先URL

GitHubからI2C_LCD_driver.pyを取得します。
I2C_LCD_driver.pyのダウンロード先URL

GitHubからBlynkLib.pyを取得します。
BlynkLib.pyのダウンロード先URL

Blynk_BME280.py
import BlynkLib
import time
from BMP280 import get_BMP280_data, setup_BMP280
import threading
import smbus
import I2C_LCD_driver
from datetime import datetime

BLYNK_AUTH = 'lo*********************Xz' # BlynkアプリからTOKEN記号を取得
blynk = BlynkLib.Blynk(BLYNK_AUTH)
setup_BMP280()
mylcd = I2C_LCD_driver.lcd()

@blynk.VIRTUAL_WRITE(0)
def sensorDataSend():
time = datetime.now().strftime('%Y.%m.%d %I:%M') # 年月日と時刻を取得
t, p, h = get_BMP280_data() # BMP280.pyにより取得した気温、湿度、気圧データ
blynk.virtual_write(0,'気温%.1f ℃, 湿度%.1f %,気圧%.1f hPa' % (t, h, p)) # スマホBlynkアプリValue Displayへ出力
#print('気温 %.2f, 湿度 %.2f, 気圧 %.2f' % (t, h, p)) # print output to Shell
mylcd.lcd_display_string(time,1,0) # LCD1行目に年月日と時刻を出力
mylcd.lcd_display_string('T%.1f,H%.0f,P%.0f' % (t, h, p),2,0) # LCD2行目に気温、湿度、気圧を出力
t=threading.Timer(5, sensorDataSend) # 5秒毎にデータを送る
t.start()
return

t=threading.Timer(5, sensorDataSend)
t.start()

blynk.run()

Raspi Zero WHにセットの自作便利HATを介してI2C接続したBME280からのデータをLCDとスマホに配信しています。
スマホにはBlynkからネット経由にてデータが送られるのでインターネットが届く所なら何処でも受信できます。
今回はスマホへの単なるデータ表示のみですが、Blynkアプリの応用次第で受信したデータを元にスマホからラズパイを
コントロールするなど実用的な操作が簡単に行えます。
Blynk_280_1.jpg


皆様の参考になれば幸いです。

スポンサーサイト



テーマ : 電子工作
ジャンル : 趣味・実用

ラズベリーパイで遊ぶ その4 気温・湿度・気圧センサーを繋ぐ ③

16文字2行のLCDに測定値を表示する
モニターが無くても測定値が判るLCD表示器を付けてみました。

ラズベリーパイで遊ぶ その1 Blynk LCD Message Boardにて紹介しましたRaspi ZeroとLCD表示器のセットに
BME280を接続しました。LCDの上段には年月日と時刻を表示し、下段に温度、湿度、大気圧を表示させました。
Blynk_280_04.jpg

Blynkアプリを使ってスマホに測定値を表示する
外出先でも測定値が見れるようにBlynkアプリのValue Displayに測定値を表示させます。
下の画像が気温、湿度、大気圧を表示したスマホのスクリーンショットです。
Blynkアプリのパーツは2,000Energyまで無料で使えます。無料範囲内で出来るだけ多くのパーツが使えるように
Energy単価が小さいValue Displayを1個使って温度、湿度、大気圧を1行に表示するように工夫しました。
ここでは単に値の表示だけですが、Blynkアプリの使い方を工夫すれば便利なことが簡単に実現します。
ほんの一例ですが、温室やビニールハウスの室温や湿度を目安に換気窓の開閉や散水などが、Blynkアプリの
ON/OFFボタンパーツを追加し、ラズパイのGPIO端子にリーレーユニットを設けるとスマホから遠隔操作が行えます。
Blynk_280_7.png

Blynkアプリの設定
Blynkアプリの使い方は、ラズベリーパイで遊ぶ その1 Blynk LCD Message Boardを参考にして下さい。
ここでは、スマホに測定値を表示するValue Displayの設定について説明します。
①左画像:Widget Boxを開き、赤丸で示したValue Displayを選択します。
②中央画像:Value Display設定画面に赤丸で示したValueとV0を選択します。
③右画像:次のValue Display Settings画面で赤丸のV0を確認し、右下ボックスの矢印で5secに設定します。
 V0上側のタイトルはスマホのValue Displayに小さく表示されます。英文で気温、湿度、気圧を記入しましたが任意です。
Blynk_280_4.png Blynk_280_5.png Blynk_280_6.png



次回はソースコードを記します。

テーマ : 電子工作
ジャンル : 趣味・実用

ラズベリーパイで遊ぶ その4 気温・湿度・気圧センサーを繋ぐ ②

気温、湿度、気圧センサーについて
BME280には各種製品が販売されていますが、今回使用の製品は前回に画像にて紹介のAmazonで購入した製品です。
4ピンタイプのI2C接続専用BME280の拡大画像です。この製品の入力電圧はは3.3V~5Vに対応していますが、
私はラズパイ40ピン端子の1番ピン3.3V=VIN,、3番ピン=SDA、5番ピン=SCL、9番ピン=GNDへ接続して使いました。
Blynk_280_03.jpg

この製品の初期I2Cアドレスは0x76で、次に紹介するスイッチサイエンス社のサンプルソースにそのまま使えます。
I2Cアドレスが他の機器と競合する場合は、アドレス設定ジャンパーにて変更できます。
ここからサンプルソース掲載GitHubのURLを開きます。
注意:bme280_sample.pyは、python2用なのでPython3では95行目、103行目、117行目のprint文に()を付けます。
 95  print("pressure : %7.2f hPa" % (pressure/100))
103 print("temp : %-6.2f ℃" % (temperature))
117 print("hum : %6.2f %" % (var_h))

I2C接続が出来たらBME280のテスト
先ずは、BME280/Python27/bme280_sample.pyをダウンロードさせて頂き、センサー単体でのテストを行います。
bme280_sample.pyをThonny python IDEなどにコピーして実行するとShellに次のように測定データが表示されます。
キーボードのスペースキーを押す度に新しいデーターが表示されます。
bme280_sample.png


次回は測定データーをLCDに表示とBlynkアプリの設定です。

テーマ : 電子工作
ジャンル : 趣味・実用

ラズベリーパイで遊ぶ その4 気温・湿度・気圧センサーを繋ぐ ①

安価な気温・湿度・大気圧が測定できるBME280を使ってみた!
先に購入した湿度の測定できないBMP280は、気温がかなり高目に出るので補正して使ってたが湿度も測定できる
BME280を試してみました。この製品は温度の誤差が少なく安定しているようです。

単に測定値を見るのでは面白くないので、先に作ったLCDメーッセージボードを流用してセンサの値を見れるようにし、
更にBlynkを使ってスマホで測定値が見れるようにもしました。画像の右側がスマホに表示した測定値です。
スマホのBlynkアプリにON-OFFボタンを付けて、室温を測定して出先から部屋のエアコンの操作も可能です。
Blynk_280_1.jpg

pi Zeroを使い自作HATにBME280を差し込んで使います。今回使ったBME280は4ピンタイプなのでI2C接続専用です。
Amazonの安い中国製品にはリスクを覚悟してたが、3個入りを購入したら1個が不良品でした。
Blynk_280_0.jpg


次回はソフトウエアーについて記します。

テーマ : 木工
ジャンル : 趣味・実用

謹賀新年

本年もよろしくお願い致します。
happy2020.jpg


テーマ : 電子工作
ジャンル : 趣味・実用

プロフィール

CNC_Paradise

Author:CNC_Paradise
木工・彫刻・機械工作・電子工作が
大好きで自作のCNCを使って工作を
楽しんでます。

最新記事
最新コメント
月別アーカイブ
カテゴリ
何でも工作室
検索フォーム
RSSリンクの表示
リンク
QRコード
QR