『昼夜逆転』工作室
[トップページへ戻る]

BMP180使用 グラフ付きLCD温度・気圧計

タイトル画像
2020年4月
ブレッドボードに刺したまま放置していたBMP180。部品箱に戻しても死蔵品になるだけなので、簡素な温度・気圧計を作りました。 キャラクタディスプレイに文字だけでなくグラフも表示しています。

BME280シリーズ

センサー センサー

Boschの温度・湿度・気圧センサーのシリーズにBMP180/BMP280/BME280があります。ガス(VOC/揮発性有機化合物)センサーを加えた上位版、BME680もあります。 電子工作でよく使われるBME280モジュールには4ピンタイプと6ピンタイプがあります。 4ピンタイプのインターフェイスはI2C、6ピンタイプはSPI/I2C両用です(写真・左、真ん中の2つ)。

BME280-6ピンタイプをSPIで動かそうとしたところ、Readコマンドでデータが返ってこず。 ならばI2Cで… こちらはReadコマンドから帰ってこず。  ※余計なプルアップ抵抗を外したりスレーブアドレスを変えたりしてもダメ。
BME280-4ピンタイプ(I2C)とBMP180(I2C)は正常に動作します。 また、ここにはありませんがカラーLCDモジュール(ST7735/SPI)も正常に動作します。 よって、プログラムのインターフェイス部分に問題はないと考えています。

結局、BME280-6ピンタイプを動かすことは諦めました。  ※あまりこういうことは言いたくないが、模造品/不良品の可能性あり。
ただ、このまま終わるのはshakuなので、 動作確認プログラムを改造し、BMP180を使用した温度・気圧計を作りました。

回路図とプログラム

ATmega328PとI2CのキャラクタLCDで作り始めましたが、基板で仕上げることにした際、手持ちのパーツに合わせて仕様変更しました。 ATmega88VからキャラクタLCDを直接制御しています。

回路図

電源は5V。AVR(ATmega88V)とBMP180は3.3Vで動作、LCDは5Vで動作させます。 AVR-LCD間はレベル変換せず直結です。LCDからAVRへの入力はないので問題なしとしています。
使用したLCDモジュールの端子の位置と並び順の都合から、AVRのPD0~3をLCDのDB7~4に結線(昇順を降順に結線)しています。 これについてはソフトウェアでDB線4ビットを逆順に並び替えています。

回路図

プログラム

I2C、BMP180、LCDを動かすのに自作ライブラリを使用しています。 LCDのユーザー定義文字を利用してグラフを表示しています。 20分ごとに測定し、直近5時間のデータをグラフ化しています。 データはAVRの内蔵EEPROMに保存するので、電源オフにしてもデータは消えません。
モバイルバッテリーで1カ月くらい動かせないかと省電力を意識したプログラムを組みましたが、LCDのバックライトが電気を食うので台無しです。

ダウンロード bmp180_lcdgraph_v210.zip(プロジェクト一式)
開発環境: Windows10, AtmelStudio7

配線図と完成品

配線図

配線図 配線図

完成品

完成 完成 完成 完成
完成 完成

完成品、その後

完成 完成
2週間ほど使用し、アルコール温度計に比べて気温が約3度高く表示されることに気付きました。 BMP180がLCDの発熱をもろに受けている事が原因です。 その後、センサーを基板の背面に移動したことで、気温はまずまず正しい値を示すようになりました。  ※参考…BMP180の精度は+-1.5度。
完成 完成

部品について

AVRは手持ちにあったATmega88Vを使用しています。新たに購入するのであればATmega328Pをお勧めします。
BMP180/BMP280/BME280、紛らわしいですが使うのはBMP180です。電子パーツショップの他、AmazonやAliExpressで購入できます。
電解コンデンサの耐圧は10V以上なら何でもよいです(35Vや50V)。
I2Cのプルアップ抵抗(R1,R2)は10kΩでも動作します。
3.3Vのレギュレータ(U1)は50mA流せれば何でもよいです。入力/出力のコンデンサ(C2,C3)はデータシートを確認し、指定のもの(セラコン/電解コン、容量)またはセット販売なら付属のものを使います。
LCDモジュールは手持ちにあった DigiTron社のSC162Cを使用しています(2010年にaitendoで購入)。 HD44780互換、5V動作、16x2サイズのキャラクタLCDモジュールならどれでも動作します。

「BMP180使用 グラフ付きLCD温度・気圧計」 部品一覧
部品名部品番号値/型番個数参考価格/備考
低損失レギュレータ U1 LP2950L-3.3V 1 20円(秋月
AVR(マイコン) U2 ATmega328P/ATmega88V 1 230円/250円(秋月)
電解コンデンサ C1 100uF/10V以上 1 10円
電解コンデンサ C3 22uF/10V以上 1 10円
積層セラミックコンデンサ C2 1.0uF [105] 1 10個100円
積層セラミックコンデンサ C4 0.1uF [104] 1 10個100円
抵抗 R1,R2 4.7kΩ [黄紫赤金] 2 100個100円
抵抗 R3 100Ω [茶黒茶金] 1 LCDバックライト用
半固定抵抗 VR 10kΩ 1 LCDコントラスト用
BMP180モジュール(I2C) -- GY-68 1 500円程度
キャラクタLCDモジュール -- 16桁x2行 1 500~1000円程度

◆ ◆ ◆

久しぶりに記事を書いています。
新型コロナウイルス(COVID-19)が世界中で猛威を振るい、政府は緊急事態宣言を発出し、人々は1~2カ月ほど外出自粛生活を送っています。 ずっと家にいてどう過ごせばいいか分からない人もいるようです。 自分は電子工作の趣味があるし、巣ごもり生活に慣れているし、家は居心地がいいし、正直、1年くらいテレワークでも全然構わないんですが。