Arduinoの覚書

自分の備忘録です。Arduino以外もあります。

ATOM Lite 3.温湿度&気圧測定

 温湿度と気圧を測定しPC上に表示。ENV2センサを接続して10秒ごとにPC上のシリアルモニタに測定値を表示します。

必要なもの

  • ATOM Lite (スイッチサイエンス) 968円

   https://www.switch-science.com/catalog/6262/

  • M5Stack用環境センサENV2 (スイッチサイエンス) 572円

   https://www.switch-science.com/catalog/6344/

  • USB Type-C 充電&通信ケーブル 1m 2A (ダイソー) 110円

センサENV2について

  • 温度:(0~40)±0.2℃ (SHT30)
  • 湿度:(10~90)±2% (SHT30)
  • 気圧:(300~1100)±1hPa (BMP280)
  • I2C通信プロトコル:SHT30(0x44), BMP280(0x76)
  • GROVE互換インターフェース

 ボード設定

前回と同様に。ただしENV2の設定はM5Stackで使用したことがあるとして略します。

  1. PCとATOM LiteをUSBケーブルで接続
  2. Arduino IDE > ツール > ボード > ESP32 Arudino > ESP32 Pico Kit
  3. Arduino IDE > ツール > Upload Speed=921600→115200
  4. Arduino IDE > ツール > シリアルポート > ATOM Liteがつながっているポート番号を選択

実行

  1. 下記ファイルを開く
  2. Arduino IDE > スケッチ > マイコンボードに書き込む
  3. 動作開始前に
  4. Arduino IDE > ツール > シリアルモニタ
  5. シリアルモニタの表示は「22.3'C 46% 1025hPa」(例)となる。

スケッチ

// SHT30  温湿度センサ 精度±0.2℃, ±2%
// BMP280 気圧センサ   精度±1hPa
// シリアルモニタに測定値を表示 10秒ごとに
#include "M5Atom.h"           // ATOMを使用
#include <Adafruit_SHT31.h>  // 温湿度センサを使用
#include <Adafruit_BMP280.h>  // 気圧センサを使用
Adafruit_SHT31  sht = Adafruit_SHT31(&Wire);
Adafruit_BMP280 bme = Adafruit_BMP280(&Wire);
float tmp = 0.0;              // 温度変数 浮動小数点
float hum = 0.0;              // 湿度変数 浮動小数点
float pre = 0.0;              // 気圧変数 浮動小数点

void setup() {
  M5.begin(true, false, true);
                  // (LCD,PowerEnable=true,Serial)
  Wire.begin(26,32);   // I2C通信でG26とG32信号を使用
  while (!bme.begin(0x76)) {  // BMP280を初期化できなければ
                              // (スレーブアドレス)
    Serial.println("not find BMP280");
  }
  while (!sht.begin(0x44)) {  // SHT30を初期化できなければ
    Serial.println("not find SHT30");
  }
}

void loop() {
  pre = bme.readPressure();     // センサーの圧力を読む
  tmp = sht.readTemperature();  // センサーの温度を読む
  hum = sht.readHumidity();     // センサーの湿度を読む
  Serial.printf("%4.1f'C%3.0f%%%5.0fhPa\r\n", tmp, hum, pre / 100);
  // 温度00.0'C, 湿度000%, 気圧00000hPaをシリアルモニタに表示
  delay(10000);                 // 10秒待つ
}




以上

ATOM Lite 2.動作確認

ボードの設定からサンプル動作まで。ただし、M5Stackの操作済みの人が対象。

必要なもの

  • ATOM Lite (スイッチサイエンス) 968円
  • USB Type-C 充電&通信ケーブル 2A 1m (ダイソー) 110円

ボード設定

  1. PCとATOM LiteをUSBケーブルで接続
  2. Arduino IDE > ツール > ボード > ESP32 Arudino > ESP32 Pico Kit
  3. Arduino IDE > ツール > Upload Speed=921600→115200
  4. Arduino IDE > ツール > シリアルポート > ATOM Liteがつながっているポート番号を選択

ライブラリのインストール

  1. Arduino IDE > ツール > ライブラリを管理 > M5Atomで検索し、M5Atom by M5Stackをインストール
  2. 同様に、FastLEDで検索し、FastLED by Daniel Garcia Ver3.3.3をインストール > 閉じる
  3. 環境構築完了

動作確認

  1. Arduino IDE > ファイル > スケッチ例 > M5Atom > Basics > LEDSet > マイコンボードに書き込む
  2. 書込後、ATOM Lite前面のボタンを押すたびに、ボタンのLEDが緑→赤→青→白→緑に変化

 その他のスケッチ例に

  • Buttom
  • LEDDisplay (ATOM Matrix用)
  • MPU6886 (ATOM Matrix用,6軸センサをシリアルモニタで確認)

がある。動作確認したスケッチを抵抗のカラーコード(1:茶, 2:赤, 3:橙, 4:黄, 5:緑, 6:青, 7:紫, 8:灰, 9:白, 0:黒)の色を点灯するように変更。

#include "M5Atom.h"
int i = 1;                      // カウント変数 

void setup() {
  M5.begin(true, false, true);
                              //(LCD,PowerEnable=true,Serial)
  delay(50);                    // 50mS待つ
  M5.dis.drawpix(0, 0x0000ff);  // LED点灯 青(GRB)
}

void loop() {
  if (M5.Btn.wasPressed()) { //ボタンが押される度に一度1を返す
    switch (i) {
    case 0:
      M5.dis.drawpix(0, 0x000000);  // 黒
      break;                        // switchから抜ける
   case 1:
      M5.dis.drawpix(0, 0x4e7330); //茶 混じった色はよくわからない
      break;
    case 2:
      M5.dis.drawpix(0, 0x00ff00);  // 赤
      break;
    case 3:
      M5.dis.drawpix(0, 0x7efd00);  // 橙
      break;
    case 4:
      M5.dis.drawpix(0, 0xffff00);  // 黄
      break;
    case 5:
      M5.dis.drawpix(0, 0x800000);  // 緑
      break;
    case 6:
      M5.dis.drawpix(0, 0x0000ff);  // 青
      break;
    case 7:
      M5.dis.drawpix(0, 0x008080);  // 紫
      break;
    case 8:
      M5.dis.drawpix(0, 0x101010);  // 灰
      break;
    case 9:
      M5.dis.drawpix(0, 0xffffff);  // 白
      break;
    default:        // どのcaseにも一致しない時 省略可
      break;
    }
    i++;            // 1加算
    if (i >= 10) {  // 0~9にする
      i = 0;
    }
  }
  delay(50);        // 50mS待つ
  M5.update();      // ボタン操作の状況を読込む
}




以上

暑さ指数など

体感温度

T:気温℃, H:相対湿度%, v:風速m/sとすると
NET=37-(37-T)/(0.68-0.0014H+1/(1.76+1.4v^0.75))-0.29T(1-H/100)
グレゴルチュクの式(Wikipediaより)

* 風速が1m/s増すごとに体感温度は約1℃ずつ低くなる


不快指数

温度Tと湿度Hから

0.81T+0.01H(0.99T-14.3)+46.3


気温27℃,湿度55%で75
気温29℃,湿度70%で80
* 85になると93%の人が暑さによる不快を感じる


不快日数

不快指数が75以上の一か月間の日数


暑さ指数WBGT

https://mag.switch-science.com/2018/10/04/m5stack-dht12/


WBGT = 0.725*Ta + 0.0368*RH + 0.00364*Ta*RH – 3.246
https://bokunimo.net/blog/ichigojam/29/

WBGT = 0.725*Ta + 0.0368*RH + 0.00364*Ta*RH – 3.246
https://tkrel.com/12370

湿球温度Tw, 黒球温度Tg, 乾球温度Tdとすると
WBGT=0.7Tw+0.2Tg+0.1Td
WBGT=0.7Tw+0.3Tg (屋内および日照していない場合)

WBGT(℃)と警戒レベル(注意事項)
31以上 危険(高齢者においては安静状態でも発生する危険性大。外出はなるべく避け、涼しい室内に移動)
28以上 厳重警戒(外出時は炎天下を避け、室内では室温の上昇に注意)
25以上 警戒(運動や激しい作業をする際は定期的に充分に休息を取入れる)
24.9以下 注意(一般に危険性は少ないが激しい運動や重労働時には発生する危険性がある)


気温と服装

25以上 シャツ(半袖)
25未満 シャツ(長袖)
20未満 カーディガン
16未満 セーター(薄手)
12未満 コート(布地)
8未満 コート(冬物)
5未満 コート(ダウン)


乾燥注意報

横浜地方気象台は、最小湿度35%以下 かつ 実効湿度55%以下

最小湿度:一日をとおして一番小さな値
実効湿度:過去数日の湿度を考慮にいれて計算した木材の乾燥を表す


快適な湿度

快適な湿度は40~60%とされています。


低温注意報

夏期:最低気温16℃以下が数日継続
冬期:最低気温-5℃以下


真冬日

日最高気温が 0℃未満


夏日

日最高気温が25℃以上


真夏日

日最高気温が30℃以上


猛暑日

日最高気温が35℃以上


冬日

日最低気温が0℃未満の日


熱帯夜

夜間の最低気温が25℃以上の日


天気

快晴、晴れ、薄曇り、曇り、煙霧、砂じん嵐、地ふぶき、霧、霧雨、雨、みぞれ、雪、あられ、ひょう、雷の15種類


ぐずついた天気

曇りや雨(雪)が2~3日以上続く天気。


変わりやすい天気

対象とする予報期間の中で、晴れが続かず、すぐに曇ったり雨(雪)が降ったりする天気。天気が比較的短周期(2日程度)に変わると予想されるときに用いる。


荒れた天気

注意報基準を超える風が吹き、雨または雪などを伴った状態。


天気が崩れる

雨または雪などの降水を伴う天気になること。


快晴

全雲量が1以下の状態。


晴れ

全雲量が2~8の状態。予報期間内が快晴または晴れの状態、および「薄曇り」で地物の影ができる状態に用いる。


日が射す

全雲量が9以上で青空が見える状態。雨、曇り時々雨、曇り一時雨などの天気が続いたのち、全雲量が9以上で青空が見えると予想されたときに用いる。


曇り

全雲量が9以上で、見かけ上、中・下層の雲が上層の雲より多く、降水現象がない状態。


薄曇り

全雲量が9以上で、見かけ上、上層の雲が中・下層の雲より多く、降水現象がない状態。地物の影ができることが多く、予報では「晴れ」として扱う。


薄雲が広がる

上層雲が広がってくる状態。密度の薄い中層雲を含んでいてもよい。天気が下り坂になるときに起こることが多い。晴れから薄雲が広がり、曇りになる変化過程が遅い場合に用いることもある。


乾燥した

湿度がおよそ50%未満の状態。乾燥注意報が発表されると予想されるときに用いることがある。


天気日数

ある期間内の「晴れ」「雨」などの日数。


晴れ日数

日照時間が可照時間の40%以上の日数


降水日数

日降水量1mm以上の日数


雨日数

日降水量10mm以上の日数


天候

天気より時間的に長い概念として用いられ、5日から1か月程度の平均的な天気状態をさす。5日以上の平均的な天気状態を述べる季節予報、天候情報等に用いる。週間天気予報は7日間を予報対象期間としているが、基本的に1日ごとの天気状態を予報しているので"天気"を用いる。





以上