 ■ 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程度 大きくなるようです。 ・厳密な計算式で計算するほど高性能な装置ではないので、測定する高度に合わせて係数を 選択して下さい。 ・気圧と高度の詳細な関係は、各自で研究して下さい。 | |