ESP32-S3 室内空気モニター

SCD40 センサーが部屋の CO2、温度、湿度を測り、20x4 のディスプレイに表示します。3つの LED が換気のタイミングを知らせます。1000 ppm 未満は緑、1500 まで黄、それ以上は赤です。空気がよどむと、気づくよりずっと前から疲れがたまります。

プログラム

Chip BASIC:1行が1つの命令で、読んで変更できます。コンパイラーはサイトのリリースごとにチェックしています。

REM Aria della stanza
REM @part aria = scd40
REM @part schermo = lcd2004
10 schermo(0) = "Aria della stanza"
20 schermo(1) = "CO2 ppm  ", aria.CO2
30 schermo(2) = "Temp C   ", aria.TEMP
40 schermo(3) = "Umid %   ", aria.HUM
50 LED green, off : LED yellow, off : LED red, off
60 IF aria.CO2 < 1000 THEN LED green, on
70 IF aria.CO2 >= 1000 AND aria.CO2 < 1500 THEN LED yellow, on
80 IF aria.CO2 >= 1500 THEN LED red, on
90 WAIT 5s
100 GOTO 20

こうなります: ディスプレイに CO2(ppm)、温度、湿度が5秒ごとに更新されて表示されます。LED は CO2 に応じて緑、黄、赤のどれか1つだけが点灯します。シミュレーターで CO2 のスライダーを1500より上げると、赤い LED が点灯します。

▶ IDE で開く

シミュレーターでは、ハードウェアなしでロジックがすぐに動くのを確認できます。シミュレーターは配線をチェックしません。配線はボードで確認し、IDE の配線チェックが手順を案内します。

部品

コンパイラーがプログラムから部品を見つけます。各部品には専用のページがあり、全体を作る前に実行できるテスト用プログラムがあります。

  • 3 × LED(抵抗付き:220 Ω、UNO R4 では 470 Ω)
  • SCD40 CO2 センサー空気中の CO2 を ppm で測ります。部屋の換気が必要なタイミングがわかります。
  • 20x4 I2C LCD ディスプレイバックライト付きの文字ディスプレイで、20文字が4行です。小さな端末として使えます。

ESP32-S3 への配線方法

  1. + 赤 → ESP32-S3: GPIO4220 Ω の抵抗を通す
  2. + 黄 → ESP32-S3: GPIO2220 Ω の抵抗を通す
  3. + 緑 → ESP32-S3: GPIO1220 Ω の抵抗を通す
  4. − → ESP32-S3: GND共通グラウンド:この接続は必須です。
  5. LV1 → ESP32-S3: GPIO38シフターはボードのバス(3.3 V、LV 側)をディスプレイの 5 V(HV 側)に変換します。5 V がボードのピンに届くことはありません
  6. LV2 → ESP32-S3: GPIO39
  7. LV → ESP32-S3: 3V3
  8. GND → ESP32-S3: GND共通グラウンド:この接続は必須です。
  9. HV → ESP32-S3: 5V
  10. schermo: SDA → I2C レベルシフター: HV1ディスプレイはシフターの HV 側(5 V)だけにつなぎ、ボードのピンにはつなぎません
  11. schermo: SCL → I2C レベルシフター: HV2
  12. schermo: VCC → I2C レベルシフター: HV
  13. schermo: GND → I2C レベルシフター: GND
  14. SDA → ESP32-S3: GPIO38センサーバス:すべての I2C モジュールがこの 2 本のピンを共有します
  15. SCL → ESP32-S3: GPIO39
  16. VCC → ESP32-S3: 3V3
  17. GND → ESP32-S3: GND共通グラウンド:この接続は必須です。

動かないとき

ライト: プログラムは動いているが、何も起きない
LED の向きが逆か、直列の抵抗が付いていません。 長い足をボードのピン側に、短い足を GND 側に付け、間に抵抗(220 Ω、UNO R4 では 470 Ω)を入れます。

変更できること

しきい値は60行目から80行目で、1000 と 1500 ppm は部屋の目安としてよく言われる値です。赤になったらビープ音を鳴らす、または測定値をスマートフォンに送って1日の推移を見るようアシスタントに頼めます。

対応するボード

  • ESP32-S3 Freenove: 対応
  • Nordic nRF54LM20 DK: いいえ:部品の1つがこのボードではまだ動きません
  • Arduino UNO R4 WiFi: 対応