Arduino UNO R4 WiFi で外気温を測る ① BME280をつなぐ

 4回の連載で、外気の気温や湿度を測り、Wi-Fi経由で室内側のPCやArduinoで読み込みます。Wi-Fiで通信するので、マイコン・ボードは Arduino UNO R4 WiFiモデルを利用します。

 製作した測定システムを家の外に設置すれば一番ベストですが、そのためには電源を用意しなければなりません。

 ここでの実験では、I2Cバスを数mほど伸ばしてセンサを室外に置き、マイコン・ボードは室内に置いて利用します。

環境

  • Arduino IDE;2.3.8
  • Windows11;25H2
  • Arduino  UNO R4 WiFi 1.5.3 PCはマザーボードのUSBポートから直接つなぐ。

利用するセンサはBME280

 ポピュラな温度、湿度、気圧を測定できるボッシュのセンサBME280を利用します。I2CバスのインターフェースはQWIICの4ピン・コネクタです。

 AdafruitのBME280ボードをArduino UNO R4 WiFiにつなぎました。

 I2CバスにつながっているBME280のスレーブ・アドレスを調べるために、次に示すscanner.inoを動かします。

 Arduino  UNO R4 WiFiのQWIICコネクタのI2CインスタンスはWire1です。

#include <Wire.h>
// Set I2C bus to use: Wire, Wire1, etc.
#define WIRE Wire1
 
void setup() {
  WIRE.begin();
 
  Serial.begin(9600);
  while (!Serial)
     delay(10);
  Serial.println("\nI2C Scanner");
}
 
 
void loop() {
  byte error, address;
  int nDevices;
 
  Serial.println("Scanning...");
 
  nDevices = 0;
  for(address = 1; address < 127; address++ )
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    WIRE.beginTransmission(address);
    error = WIRE.endTransmission();
 
    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");
 
      nDevices++;
    }
    else if (error==4)
    {
      Serial.print("Unknown error at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.println(address,HEX);
    }
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");
 
  delay(5000);           // wait 5 seconds for next scan
}

 実行します。0x77に見つけてきました。

  BME280は、Adafruitのライブラリを利用します。

 インストールの途中で別の画面が出ますが、必要なので、全てをインストールします。

 サンプル例bme280testを読み込みます。

  QUIICコネクタにつないでいるので、下図のように&Wire1に修正します。

 実行します。

 温度、気圧、湿度を表示しました。

長いケーブルを作る

 I2Cバスは近距離用なので、せいぜい20cm程度の長さで使うことが多いです。でも、室外にセンサだけを出したいので、長めのケーブルを用意しました。

 電源は赤(Vcc)と黒色(GND)のケーブルですが、信号線の2本は、手元に合った色のケーブルを使いました。

前へ

Arduino Uno Qの利用 ⑧ 入門編 従来のArduinoと互換性を保ち新しい機能を追加されたArduino Uno Q<Cloud AI Assistantを動かしGoogle Geminiと相談>