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 への配線方法
- + 赤 → ESP32-S3: GPIO4220 Ω の抵抗を通す
- + 黄 → ESP32-S3: GPIO2220 Ω の抵抗を通す
- + 緑 → ESP32-S3: GPIO1220 Ω の抵抗を通す
- − → ESP32-S3: GND共通グラウンド:この接続は必須です。
- LV1 → ESP32-S3: GPIO38シフターはボードのバス(3.3 V、LV 側)をディスプレイの 5 V(HV 側)に変換します。5 V がボードのピンに届くことはありません
- LV2 → ESP32-S3: GPIO39
- LV → ESP32-S3: 3V3
- GND → ESP32-S3: GND共通グラウンド:この接続は必須です。
- HV → ESP32-S3: 5V
- schermo: SDA → I2C レベルシフター: HV1ディスプレイはシフターの HV 側(5 V)だけにつなぎ、ボードのピンにはつなぎません
- schermo: SCL → I2C レベルシフター: HV2
- schermo: VCC → I2C レベルシフター: HV
- schermo: GND → I2C レベルシフター: GND
- SDA → ESP32-S3: GPIO38センサーバス:すべての I2C モジュールがこの 2 本のピンを共有します
- SCL → ESP32-S3: GPIO39
- VCC → ESP32-S3: 3V3
- 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: 対応