hiro yamamoto works

ESP8266 Web logger
RaspberryPi HiRes Audio
Mini Solar power system
当ブログ掲載内容は無保証です。利用は自己責任でお願いいたします。

 

カレンダー

2021
January
Sun Mon Tue Wed Thu Fri Sat
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

QRコード

検索



このブログを検索

カウンター

本日のアクセス
昨日のアクセス
総アクセス数

ブログサービス

Powered by

teacup.ブログ
RSS

MMA8451とBME280を2個づつ使って測定

ESPr-oneにMMA8451とBME280を2個づつつないで、合計4
個で測定できました。
どちらのセンサも設定できるI2Cアドレスが2つまでです。

2020.12.02
@参考追記
別のESP-WROOM-02(自作)ボードではケーブル長を短くし
ないと通信できませんでした。(2m&1m)
レベル変換チップ、I2Cデバイス構成、プルアップ抵抗値など
の条件が違うためと思います。
I2Cバッファを入れて解決しました。
I2Cバッファ関係の投稿2つ
作ってみたI2CバッファPCA9600D
I2Cバスバッファ回路を見直しました。
クリックすると元のサイズで表示します

A補足説明(動作への影響は不明)
・写真ブレッドボード上のRTCとSDカードもESPr-oneへ接続
していますが、スケッチには書いていません。
・I2Cバスの構成についてですが、レベル変換の3.3V側に
RTC(DS1307)が接続されていました。(5V用でした)

Adafruit MMA8451 Accelerometer Breakout
レギュレータ,レベル変換搭載 5V電源とロジック可
I2Cプルアップ抵抗10kΩ付き

BME280センサモジュール アマゾンで購入3個入1,880円
レギュレータ,レベル変換搭載 5V電源とロジック可
I2Cプルアップ抵抗10kΩ付き

MMA8451 I2Cアドレス設定
初期設定は0x1D、A端子をGND接続で0x1C

BME280 I2Cアドレス設定
初期設定は0x76、0x77設定は、3つ並んだパッド中央と
左側パッド間のパターンをカットし、中央と右側を
はんだブリッジ接続します。

MMA8451、BME280センサ
クリックすると元のサイズで表示します

センサはLANケーブルを使って延長接続
クリックすると元のサイズで表示します

マイコン-センサ接続ブロック図
クリックすると元のサイズで表示します

MMA8451とBME280スケッチを合体
クリックすると元のサイズで表示します

MMA8451とBME280スケッチを合体
クリックすると元のサイズで表示します

MMA8451とBME280スケッチを合体
クリックすると元のサイズで表示します

シリアルモニタ表示
クリックすると元のサイズで表示します

ESPr-One(ESP-WROOM-02)での記事ですが、Arduinoでも
同様にできると思います。
興味がある方はお試し下さい。

無保証自己責任でよろしくお願いします。
0
投稿者:管理人

BME280を2個使って温湿度気圧測定

ESPr-oneにBME280を2個つないで測定できました。
(設定できるI2Cアドレスが2つなので2個です。)

BME280センサモジュールはアマゾンで購入した、3個入
1,880円です。このモジュールはレギュレータとレベル
変換が載っており、5Vの電源とロジックで使用できます。
I2C信号のプルアップ抵抗10kΩも付いています。

I2Cアドレス設定
センサ近くの3つ並んだパッドを接続して設定します。
初期設定は0x76になっています。
(中央と左側パッドはパターン接続されています。)
クリックすると元のサイズで表示します

0x77設定するときは、中央と左側パッド間のパターンを
カットし、中央と右側をはんだブリッジ接続します。
クリックすると元のサイズで表示します

センサは電源&ロジック5Vで接続するのでESPr-one側に
レベル変換を入れてます。
(AE-PCA9306 M-05452 ¥150 秋月電子)
クリックすると元のサイズで表示します

センサはLANケーブルで接続していますが、
直接つないでも良いです。
クリックすると元のサイズで表示します
(2m程度の延長を想定してLANケーブル接続してます。)
(RTCとSDメモリはテストに関係なし)

Arduino用スケッチ例
SparkFun BME280 Example1_BasicReadingsを
改変して動作テストしてみました。
クリックすると元のサイズで表示します
ざっくり説明(スクリーンショットを見て下さい。)
BME280 mySensor;の行を修正して次の2行にする。
BME280 mySensor1;
BME280 mySensor2;


次の2行をWire.begin();のあとに追加
mySensor1.setI2CAddress(0x76);
mySensor2.setI2CAddress(0x77);


if (mySensor.beginI2C() == false) {の行を修正
if (! mySensor1.beginI2C() || ! mySensor2.beginI2C()) {
//どちらかのセンサ応答がなければシリアルモニタへメッセージ出力&停止


void loop()中のセンサ値を表示させるSerial.print行の
mySensorをmySensor1またはmySensor2へ修正と追加

オリジナルをmySensor1に修正して、コピぺ
mySensor1をmySensor2に修正すれば2個のセンサー値が
表示されると思います。
湿度、気圧、標高?、温度の単位表示を追加してあります。
スケッチの抜粋
Serial.print("Sensor1 : "); Serial.print("Humidity: ");
Serial.print(mySensor1.readFloatHumidity(), 1); Serial.print(" %");

Serial.print(" Pressure: ");
Serial.print(mySensor1.readFloatPressure()/100, 1); Serial.print(" hPa");

Serial.print(" Alt: ");
Serial.print(mySensor1.readFloatAltitudeMeters(), 1); Serial.print(" m");
//Serial.print(mySensor1.readFloatAltitudeFeet(), 1);

Serial.print(" Temp: ");
Serial.print(mySensor1.readTempC(), 2); Serial.println(" ℃");
//Serial.println(mySensor1.readTempF(), 2);

Serial.print("Sensor2 : "); Serial.print("Humidity: ");
Serial.print(mySensor2.readFloatHumidity(), 1); Serial.print(" %");

Serial.print(" Pressure: ");
Serial.print(mySensor2.readFloatPressure()/100, 1); Serial.print(" hPa");

Serial.print(" Alt: ");
Serial.print(mySensor2.readFloatAltitudeMeters(), 1); Serial.print(" m");
//Serial.print(mySensor2.readFloatAltitudeFeet(), 1);

Serial.print(" Temp: ");
Serial.print(mySensor2.readTempC(), 2); Serial.println(" ℃");
//Serial.println(mySensor2.readTempF(), 2);
Serial.println("");

クリックすると元のサイズで表示します

シリアルモニタの表示はこちら
クリックすると元のサイズで表示します
ESPr-One(ESP-WROOM-02)での記事ですが、Arduinoでも
使えると思います。
興味がある方はお試し下さい。

無保証自己責任でよろしくお願いします。
0
投稿者:管理人
2 3 4 5 6 | 《前のページ | 次のページ》
/55 
 
AutoPage最新お知らせ