空気速度センサモジュール FS3000 を試してみる

今年の2月に、ルネサス製の空気速度センサモジュール FS3000 を搭載した SparkFun のブレイクアウトボードを試した時のメモ。FS3000 は高感度の MEMS熱電対で、12bit の分解能で 0~7m/s までの FS3000-1005 と、0~15m/s までの FS3000-1015 の空気速度の測定が可能とのこと。今回のブレイクアウトボードには 7m/s までの測定が可能な FS3000-1005 が搭載されている。

購入後すぐに M5Stack製の M5StickC で動作確認した時の様子は以下のような感じ。

動作確認環境

動作確認環境は以下の通り。

製品名購入時の価格最新価格(2022/12/24)
Qwiic – FS3000搭載 空気速度センサモジュール (SEN-18377)6,490円 (2022/2/4)
Mouser
11,210円
スイッチサイエンス
Qwiicケーブル(Qwiic – 4ピンオス)150 mm (PRT-17912)
180円 (2021/1/14)
スイッチサイエンス
259円
スイッチサイエンス
M5StickC(本体のみ)1,650円 (2021/3/27)
スイッチサイエンス
2,750円
スイッチサイエンス
動作確認環境

FS3000ブレイクアウトボード と M5StickC との接続は以下の通り。
Qwiicシステムの詳細については こちら を参照。

SparkFun FS3000-1005 QwiicM5StickC Hat拡張端子
GND 黒GND
3.3V 赤G0
SDA 青G26
SCL 黄3V3
M5StickC との接続対応表

動作確認プログラム

動作確認時のツール及び必要なライブラリは以下の通り。

  • Arduino IDE: 1.8.19
  • ボード([ツール]-[ボード]-[ボードマネージャ]): M5Stack 2.0.2
  • ライブラリ([スケッチ]-[ライブラリをインクルード]-[ライブラリを管理])
    • M5StickC: 0.2.5
    • SparkFun_FS3000_Arduino_Library: 1.0.4

動作確認に使用したプログラムは以下の通り。

#include <SparkFun_FS3000_Arduino_Library.h>
#include <M5StickC.h>

FS3000 fs3000;

#define FONT 1

const int I2C_SCL_PIN = 26;
const int I2C_SDA_PIN = 0;

void setup() {
  M5.begin();
  M5.Lcd.setRotation(3);
  M5.Lcd.setTextColor(TFT_WHITE, TFT_BLACK);
  M5.Lcd.setCursor(2,2,FONT);
  M5.Lcd.print("Air Velocity: FS3000-1005");

  M5.Lcd.setCursor(2,11,FONT);
  Serial.begin(115200);

  Wire.begin(I2C_SDA_PIN,I2C_SCL_PIN);
  Wire.setClock(400000); // fSCL = 400kHz

  if (fs3000.begin() == false) {
    Serial.println("The sensor did not respond. Please check wiring.");
    while(1); //Freeze
  }
  Serial.println("Sensor is connected properly.");
}

void loop(){
  char valStrRawData[10];
  char valStrMetersPerSecond[10];
  char valStrKilometersPerHour[10];
  uint16_t rawData = 0;
  float metersPerSecond = 0.0;
  float kilometersPerHour = 0.0;
  
  rawData = fs3000.readRaw();
  metersPerSecond = fs3000.readMetersPerSecond();
  kilometersPerHour = metersPerSecond * 3.6;
  
  sprintf(valStrRawData,"%4d",rawData);
  dtostrf(metersPerSecond,2,2,valStrMetersPerSecond);
  dtostrf(kilometersPerHour,2,2,valStrKilometersPerHour);
  
  Serial.print(rawData);
  Serial.print(", ");
  Serial.print(metersPerSecond);
  Serial.print(", ");
  Serial.print(kilometersPerHour);
  Serial.println();
  
  M5.Lcd.setTextSize(2);
  M5.Lcd.setCursor(8,20,FONT);
  M5.Lcd.printf("%s m/s ",valStrMetersPerSecond);
  M5.Lcd.setCursor(8,40,FONT);
  M5.Lcd.printf("%s km/h ",valStrKilometersPerHour);
  M5.Lcd.setCursor(8,60,FONT);
  M5.Lcd.printf("%s Count ",valStrRawData);
  
  delay(1000);
}

今後の予定

とりあえずの動作確認はできたので、今後は TouchDesigner との組み合わせで風の変化に応じた映像表現や、換気口の状態監視など、色々と試してみたいと思う。ただ、購入時に比べ価格が大幅に上がってしまっているので複数個で試すのはなかなか厳しいところ。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中