### 3.3.7 温湿度調整
#### 3.3.7.1 概要

本プロジェクトでは、micro:bit ボード、XHT11 温湿度センサー、130 モーター、加湿モジュール(atomization module)および OLED 表示器を使って温湿度調整システムを構築する方法を紹介します。
システムは XHT11 センサーで周囲の温度と湿度を測定し、必要に応じてファンの回転や加湿モジュールによるミスト噴霧を制御して調整します。温度または湿度が設定した閾値を超えると、ファンを作動させ、加湿モジュールからミストを噴霧します。 同時に OLED には現在の温度と湿度がリアルタイムで表示されます。
温湿度を調整できるため、温湿度管理が必要なプロジェクトに広く応用できます。

#### 3.3.7.2 コンポーネントの知識

**XHT11 Temperature and Humidity Sensor**

XHT11 温湿度センサーはデジタル信号を出力します。アナログ信号を取得・変換し、温度と湿度を検出して長期安定性と高信頼性を確保します。さらに、高精度の抵抗式湿度センサーと抵抗式温度センサーを内蔵し、8ビットの高性能マイコンに接続されています。
**XHT11 の通信方式:**
XHT11 は簡略化されたシングルバス通信を採用しています。シングルバスとはデータ線が1本しかないことを意味し、システム内のデータ交換と制御はすべてこの1本で行われます。
- シングルバスデータビット送信の定義:
- シングルバスデータ形式:40ビットのデータを一度に送信し、上位ビットから出力されます。
- 8ビット湿度整数部 + 8ビット湿度小数部 + 8ビット温度整数部 + 8ビット温度小数部 + 8ビットパリティビット。**湿度の小数部は 0 に注意してください。**
- パリティビットの定義:
- 8ビット湿度整数部 + 8ビット湿度小数部 + 8ビット温度整数部 + 8ビット温度小数部。8ビットのパリティビットはこれらの合計の下位8ビットです。

データ時系列図:
ホスト(MCU)が一度スタート信号を送ると、XHT11 は低消費電力モードから高速モードに切り替わります。ホストのスタート信号が終了すると、XHT11 は応答信号を返し、40ビットデータを出力して信号を取得します。信号伝送は下図のように行われます。

⚠️ **注意:** ホストが XHT11 から読み取る温度と湿度のデータは常に前回の測定値です。もし2回の測定間隔が長い場合は、連続で2回読み取り、2回目に得られた値をリアルタイム値として使用してください。
**回路図:**

**パラメータ:**
- 動作電圧: DC 3.3V~5V
- 動作電流: (Max)2.5mA@5V
- 最大消費電力: 0.0125W
- 温度範囲: -25 ~ +60℃ (±2℃)
- 湿度範囲: 5 ~ 95%R(約25℃付近で±5%RHの精度)
- 出力信号: デジタル双方向シングルバス
**Atomization Module(加湿モジュール)**

加湿モジュールはドライバと加湿シートで構成され、水を微粒化します。マイコンや手動ボタンで制御できます。
**動作原理:** 加湿モジュールは一般に超音波技術を用いてミストを生成します。圧電セラミック板を含み、高周波の電圧が加わると振動を始めます。振動により水面上に小さな水滴が集まり、それらが拡散して微細なミストを形成します。
**ミストの粒子サイズ:** このモジュールは水を通常1〜5ミクロンの微小粒子に効果的に変換できます。この微細なミストは蒸発しやすく空気中に拡散するため、加湿効果が高いです。
⚠️ **注意:**
**1. 電源を入れた後、加湿シートは必ず水中に設置してください。空気中に長時間放置するとシートが加熱して焼損する恐れがあります。**
**2. 加湿シートは水面にやさしく置いてください。水没させるとミストが発生しません。**
**パラメータ:**
- 動作電圧: DC 5V
- 取り付け穴: 直径4.8mm、ピッチ16mm
- 寸法: 長さ31mm、幅23mm、高さ8mm
- 重量: 4.5g
- 動作温度: -25℃〜+60℃
- モジュールインターフェース: 3ピン曲線ピン、ピッチ2.54
- 加湿シートインターフェース: PH2.0 メス端子
- 機能: 水を微細なミストに変換して空気中に放出する
**加湿シート寸法:**

⚠️ **注意: 加湿シートの配線をなるべく引っ張らないでください。はんだ付け部分が剥がれる恐れがあります。**
**加湿モジュールの使用手順:**
制御方法はボタン制御と MCU による制御の2通りがあります。
**ボタン制御:** ボタンを押すと加湿モジュールがオンになります。再度ボタンを押すとオフになります。
**MCU プログラミング制御:** ボタンの押下を模擬します。通常は出力が High で、押されたときに Low になります。ボタンを離すと再び High を出力します。
したがって MCU を使う場合、モジュールに短時間の Low レベルを入力すればボタンを押したのと同じ動作になります。High レベルの時間を調整することで加湿モジュールの開始・停止時間を制御できます。
**綿棒を取り付ける:**
1\. 綿棒を十分に水に浸します(綿棒全体が水で覆える大容量の容器を用意し、5分以上浸して十分に水を吸収させてください)。

2. プラスチックブラケットの内側に加湿シートを取り付けます。シートの向きに注意し、配線をブラケットの溝に通してください。


3. プラスチックブラケットの反対側を閉じます。

4. 綿棒をブラケットの中央に挿入します。必ず底まで押し込み、加湿シートに触れるまで入れてください。

5. 加湿シートをモジュールの PH2.0 メス端子に接続します(下図参照)。

6. 加湿モジュールを micro:bit shield に接続し、外部電源を接続します。

7. 綿棒を再度水に3分以上浸してください。綿棒ができるだけ水で覆われるようにしますが、水があふれないようにしてください。

8. モジュールの黒いボタンを押すと噴霧が始まるのが確認できます。ミストは約3秒間噴霧されます。再度ボタンを押すと停止します。
⚠️ **注意: 加湿シートを長時間連続で動作させないでください。1回の動作は5秒を超えないようにし、綿棒が十分に水を含むまで1〜2分ほど休止してから再度動作させることを推奨します。さもないと焼損する可能性があります。**



#### 3.3.7.3 必要部品
| |  | |
| :--: | :--: | :--: |
| micro:bit V2 main board ×1 | micro:bit shield ×1 |atomization module ×1|
||| |
|XHT11 temperature and
humidity sensor ×1|OLED display ×1 |130 motor ×1|
| |||
| micro USB cable ×1 |4 pin wire ×2 |3 pin wire ×2 |
| || |
|fan ×1|battery holder ×1|AA battery(**self-prepared**) ×6|
#### 3.3.7.4 配線図
⚠️ **配線する際は、必ず配線色に注意してください。**
| 130 motor | wire color | micro:bit shield pin | micro:bit board pin |
| :--: | :--: | :--: | :--: |
| G | black | G | G |
| V | red | V2 | V |
| IN+ | blue | 2 | P2 |
| IN- | green | 13 | P13 |
| OLED display | wire color | micro:bit shield pin | micro:bit board pin |
| :--: | :--: | :--: | :--: |
| GND | black | G | G |
| VCC | red | V2 | V |
| SDA | blue | 20 | P20 |
| SCL | green | 19 | P19 |
| atomization module | wire color | micro:bit shield pin | micro:bit board pin |
| :--: | :--: | :--: | :--: |
| G | black | G | G |
| V | red | V2 | V |
| S | yellow | 16 | P16 |
| XHT11 temperature and
humidity sensor | wire color | micro:bit shield pin | micro:bit board pin |
| :--: | :--: | :--: | :--: |
| G | black | G | G |
| V | red | V1 | V |
| S | yellow | 0 | P0 |

#### 3.3.7.5 コードのフロー

#### 3.3.7.6 テストコード
⚠️ **if() 条件内の閾値 30 と 70 は実際の状況に応じて変更可能です。**
**完成コード:**


**簡単な説明:**
① OLED のピクセルを初期化し、OLED をクリアします。5×5 LED マトリクスは  を表示します。temperature と humidity の2つの変数を定義し、初期値を 0 に設定し、加湿モジュールをオフにします。

② XHT11 センサーから読み取った温度値を変数 temperature に、湿度値を変数 humidity に代入します。

③ OLED に XHT11 センサーが検出した温度と湿度の値を表示します。

④ 判定文: if()...else...
検出した温度が 30℃ を超える、または湿度が 70%RH を超える場合、ファンは2秒間回転した後に停止します。その後、加湿モジュールが作動してミストを噴霧し、周囲の温度と湿度を調整します。同時に OLED には「冷却/加湿(Cooling/Humidifying)」と表示されます。

それ以外の場合は、ファンと加湿モジュールは動作せず、OLED には「通常状態(Normal State)」と表示されます。

⑤ 500ms(0.5秒)待機

#### 3.3.7.7 テスト結果

配線を行い、micro USB ケーブルで電源を入れた後、外部電源(単3電池×6)を接続して十分な電力供給を確認します。
Windows 10 アプリの場合は Download をクリックするだけです。ブラウザの場合は、“.hex” ファイルを micro:bit ボードに送信してください。
テストコードを micro:bit ボードにアップロードすると、OLED に XHT11 センサーが検出した温度と湿度の値がリアルタイムで表示されます。
検出した温度が 30℃ を超える、または湿度が 70%RH を超える場合、ファンは2秒間回転した後に停止します。その後、加湿モジュールが作動してミストを噴霧し、周囲の温度と湿度を調整します。同時に OLED には「冷却/加湿(Cooling/Humidifying)」と表示されます。それ以外の場合は、ファンと加湿モジュールは動作せず、OLED には「通常状態(Normal State)」と表示されます。

⚠️ **注意: 実験で使用するブロックはこのキットには含まれていません。**
(**ヒント:** 結果が表示されない場合は、micro:bit ボードのリセットボタンを押してください。)
