
■ BME280 気圧・温度・湿度・高低差 計の製作 ■ |
気圧・温度・湿度センサーBME280を使用した、気圧・温度・湿度・高低差計の製作です。
高度が変わると気圧も変化する原理を利用して、高低差を測定します。
持ち運びができる様に、ボタン電池を電源としてスチロールSK-2ケースに収めました。
回路の解説 |
1.電源回路
・ボタン電池「CR2032」 3Vを使用します。
・消費電流は、動作時で最大2mA、待機時はATtiny85のマニュアルから約0.2μAです。
(微少の電流計を持ち合わせていないので、想定値です)
2.AVRとクロック
・AVRマイコンは、8ピンのAVR「ATtiny85-20PU」を使用。
・動作クロックは、内臓発振器8MHzを1/8した、1MHzで動作しています。
3.気圧・温度・湿度センサー
・1つのセンサー・モジュールで、温度・湿度・気圧を測定できるBoschのBME280センサーです。
・AVRマイコンとの通信は、I2Cインターフェースを使用します。
・秋月電子の(AE-BME280)モジュールと、AmazonやAliExpressの(GY-BME280)モジュール
を使用できます。
・BME280の詳細は、「BME280 温度・湿度・気圧センサーを制御する」を参照してください。
4.液晶表示器
・秋月電子の「I2C接続 小型LCDモジュール 8x2行」 [AQM0802A-RN-GBW]を搭載できる
ピッチ変換キット「AE-AQM0802」を使用します。
・AVRマイコンとの通信は、I2Cインターフェースです。
・BASCOM-AVRで制御する際には、専用のライブラリを組み込む必要があります。
・LCD[AQM0802A , AQM1602XA]共用ライブラリ[ Lcd_AQMxx02.LBX ]をダウンロードして、
パソコンの下記フォルダーに保存してからコンパイルして下さい。
C:\Program Files (x86)\MCS Electronics\BASCOM-AVR\LIB
※専用ライブラリを使用して各自でプログラムを作るときは、下記を記載して下さい。
(プログラムの一例です。このページの製作(装置)には関係がありません。)
Config Scl = Portb.0
Config Sda = Portb.1
I2cinit
Const Vmode = 3
Config Lcd = 16x2 , Chipset = St7032
$lib "Lcd_AQMxx02.LBX"
Initlcd |
'I2CバスのSCLラインを接続するポートピンを設定する。(任意)
'I2CバスのSDAラインを接続するポートピンを設定する。(任意)
'I2Cバスを初期化する。
'[AQMxx02A]の電源電圧。(3.5V以下 = 3 , 3.5V以上 = 5)
'LCD表示を16文字2行に設定。
'LCD [AQM0802A]用のライブラリを組み込む。
'LCDを初期化する。 |
これ以降は、通常のLCD命令が使用できるようになります。
5.操作スイッチ
・SKHHPNA010、または汎用のタクトスイッチを2個使用します。
・SK-2ケースの高さに合わせて、ケースの穴を大きく開けるか、スイッチの取り付け時に
基板から1〜2mm浮かせて取り付けるなど、任意で調整してください。
6.[JP1]とISP端子
・ISP端子は、基板上でAVRにプログラムを書き込むために使用します。
(プログラムを書き込んだ後は、ISP端子を使用しません)
・AVRにプログラムを書き込む際には、[JP1]のショートプラグを必ず抜いて下さい。
・通常動作では、必ず[JP1]のショートプラグを差し込んで下さい。 (ハンダによるショートでも可)
・プログラム書き込み済みのAVRを使用する場合は、ジャンパー線[JP4]と[JP5]、並びに
ISP端子のピンヘッダは不要です。
・同じくジャンパーピン[JP1]は、メッキ線かハンダで接続(ショート)することも可能です。
|
注意! この図面を使用した、いかなる損害にも責任を負いません。
|
・この製作では、ヒューズ ビットを工場出荷状態のまま使用しますので、変更の必要はありません。
・LCD[AQM0802A , AQM1602XA]共用ライブラリ [ Lcd_AQMxx02.LBX ] をダウンロードして、
パソコンの下記フォルダーに保存してからコンパイルして下さい。
C:\Program Files (x86)\MCS Electronics\BASCOM-AVR\LIB
注意! 著作権は放棄しておりませんので、販売や配布目的での使用は絶対にしないで下さい。 (記事の無断転載を除き、個人での使用は可能です。 改変、自作品の掲載、リンクもご自由に。)
|
 プリント基板 |

基板 部品面
Amazon/AliExpress
GY-BME280
モジュールの場合 |
 基板 部品面
秋月電子
AE-BME280
モジュールの場合 |

LCD基板を搭載
完成状態 |
 基板 ハンダ面 |
製作について |
・部品表は、部品の背が低い順に記載してありますので、この順番に取り付けて行きます。
・ジャンパー線[JP2],[JP3],[JP4],は、すずメッキ線や被覆電線を使用して下さい。
・ジャンパー線[JP5]は、被覆電線を使用して下さい。
※プログラム書き込み済みのAVRを使用する場合は、ジャンパー線[JP4]と[JP5]は不要です。
・積層セラミックコンデンサは、2.54mmピッチの物が取り付け可能です。
・AVRマイコン ATtiny85-20PUは、ICソケットを使用せずに直接基板にハンダ付けします。
(1番ピンマークに注意、配置図を確認)
・電池ホルダーはLCD基板の支えも兼ねるので、指定の部品を使用して下さい。
・ジャンパーピン[JP1]は、基板上でAVRマイコンにプログラムを書き込む場合に使用します。
AVRマイコンにプログラムを書き込む際には、ジャンパーピン[JP1]のショートプラグを必ず
抜いて下さい。
(通常動作時は、ショートプラグを差し込まないと動作しません)
※プログラム書き込み済みのAVRを使用する場合は、ジャンパーピン[JP1]をメッキ線か
ハンダで接続(ショート)することも可能です。
・ISP端子用ピンヘッダ(6ピン オス)は、ISP端子を使用してAVRのプログラムを書き込む場合に
取り付けて下さい。 (書き込み済みのAVRを使用する場合は不要です)
・押しボタンスイッチは、SKHHPNA010または汎用のタクトスイッチを基板上に取り付けできます。
装置をポケットやバッグに入れた時に、不意に電源スイッチが押されないようにケース表面より
低めに配置されていますので、ケースの使用状況に合わせて高さを調整して下さい。
※スイッチをケースの表面に出す(押しやすくする)場合は、スイッチの取り付け時に、
基板から1〜2mm浮かせて取り付けます。
・気圧・温度・湿度センサーBME280は、細ピンヘッダ(0.5mm角)を使用して取り付けます。
◎秋月電子の(AE-BME280)の場合は、基板の上段の穴に取り付けます。
付属のL型ピンヘッダを使用せずに、ストレートタイプの細ピンヘッダ6ピンを別途入手して
取り付けます。
(モジュールのJ3,J1,J2をハンダで接続して下さい)
◎AmazonやAliExpressの(GY-BME280)の場合は、基板の下段の穴に取り付けます。
・LCD AQM1602Y-RN-GBWは、ピッチ変換キットに搭載してから取り付けます。
(プルアップのジャンパ(PU)は接続しません)
ピッチ変換キットのLCDモジュールを、付属の細ピンヘッダを使用して、基板と樹脂部分の間隔を
3.5mm空けて取り付けます。 (部品配置図を参照)
(イラックスチューブ0.7mm等を3.5mmに切ってピンに通すと、高さが決まります)
・ケースの基板取り付け穴の加工(皿ビス用)が難しい場合は、2mm厚のウレタンや隙間テープを
使用して、両面テープでケースと基板を固定して下さい。
|
操 作 方 法 |
1.電源投入
・ボタン電池を入れると、気圧・温度・湿度の計測を開始し、計測値が表示されます。
・電池を入れても表示が出ない場合は、ISP端子の5ピンと6ピンを一瞬だけショートさせて下さい。
(ハードウェアの強制リセットが働きます)
・初期状態では、スイッチの操作を終えてから、約1分後に自動で電源がOFFになります。
・電源がOFFになっても、表示や設定および高低差の測定値は保持されています。
・電源スイッチ[SW1]を押すと、電源がOFFになる前の状態が再現されて測定が再開されます。
・[SW1]を押した状態でボタン電池を入れる、またはISP端子の5ピンと6ピンを一瞬だけショート
させると、LCD画面に現在のプログラム・バージョンが表示されます。
|
2.表示の切り換え
・電源がONの状態で電源スイッチ[SW1]を押すと、LCDの表示項目が「気圧値+高低差」と
「温度+湿度」で交互に切り変わります。
・「高低差」が表示されている状態で、サンプル速度スイッチ[SW2]を3秒間押し続けると、
高低差が0.0mにリセットされます。
(LCD2行目に、*(アスタリスク)マークが順に表示されます)
・高低差の基準となる場所で、気圧値が安定したのを見計らってリセットして下さい。
・リセットした場所の気圧値を基準にして、気圧値の変化量と係数で高低差を計算し表示します。
(気圧値は気象条件と時間経過により緩やかに変化するので、高低差の測定時間が長くなると、
その分誤差も大きくなります)
|
3.サンプリング速度の切り換え
・気圧値を移動平均する時間を切り換えます。
(気圧変化に対する表示の更新速度が変わります)
・サンプル速度スイッチ[SW2]を押すたびに、[通常]と[高速]に切り替わります。
(気圧・温度・湿度のサンプリング時間は、0.5秒間隔です)
LCD左下の表示 |
モード |
移動平均数 |
更新時間 |
 |
通常 |
32個 |
16秒 |
 |
高速 |
8個 |
4秒 |
・高低差の変化が緩やかな場合は、「通常」モードで測定します。
・エレベータなどの様に高速で高低差が変化する場合は、「高速」モードにすると計測の誤差
(ばらつき)は多くなりますが、高低差を計測する反応が早くなります。
|
4.機能設定モード
・電源スイッチ[SW1]とサンプル速度スイッチ[SW2]を同時に押すと、機能設定モードに入ります。
・下記3項目が設定できます。
 |
LCDのコントラスト調整 |
30〜50 |
初期値: 32 |
 |
自動電源オフの時間 |
0 , 1 , 2 , 3 , 4 分 |
初期値: 1分 |
 |
気圧差から高低差を計算する係数 |
1hPa = 8〜12m |
初期値: 9m |
・サンプル速度スイッチ[SW2]で、設定値を選択します。
・電源スイッチ[SW1]で、次の項目に移ります。
・これらの設定は内蔵EEPROMに記憶されますので、電池を交換した後も残されています。
○コントラスト調整
・電池電圧によりLCDのコントラストが変わるので、見やすい値に調整します。
○自動電源オフの時間
・スイッチの操作を終えてから、設定時間(1〜4分)後に自動で電源がOFFになります。
・[0]を選択すると自動OFFは無くなり、電源スイッチ[SW1]は下記の動作を繰り返します。
電源ON → [気圧値+高低差 表示] → [温度+湿度 表示] → 電源OFF
○気圧差から高低差を計算する係数
・気圧を測定する絶対高度が1,000m高くなると、1hPa変化した時の高低差[m]の係数が1m程度
大きくなるようです。
・厳密な計算式で計算するほど高性能な装置ではないので、測定する高度に合わせて係数を
選択して下さい。
・気圧と高度の詳細な関係は、各自で研究して下さい。
|
|