ブレッドボードで動作テストした後で悩むのが、ユニバーサル基板へのモジュールの配置とそれらを収めるケース。今回使ったパーツの中で最も大きな2.8インチTFT液晶(ILI9341)モジュールの横幅が二合枡の内部寸法にジャストフィットで収まりました。CO2濃度センサSCD30、気圧・温湿度センサBME280は外気に晒しておきたいのでケース前面下部に設置。
二合枡をケースとして使い、木工ドリルでACアダプタ接続用のDCジャック、スケッチ書き込み用のUSBケーブルの差し込み穴、ユニバーサル基板とゴム足固定用の小穴をあける作業でした。
パーツを分割ロングピンソケットを介してユニバーサル基板にはんだ付けして実装することでブレッドボードとワイヤの接触不良がなくなり安定動作しています。

ケース作製用に集めたパーツ
ネット通販と手持ちのパーツを集めて組み立てました。
| # | パーツ | 数量 | 備考 |
| 1 | 二合枡 外寸: 約108 × 108 × 58mm 内寸: 約 87 × 87 × 47.5mm | 1 | 板厚は約10.0 ~ 10.6mm |
| 2 | ユニバーサル基板 | 適量 | 両面スルーホール、2.54mmピッチ、ガラスエポキシ製 ※約80.5 x 86.5mmにカット |
| 3 | ラッピングワイヤ | 適量 | ユニバーサル基板上の配線には30AWG、電源引き出しには24AWGを利用 |
| 4 | 分割ロングピンソケット (細ピン用) 1×40 (40P) | 適量 | モジュールのピン数に合わせてニッパでカット |
| 5 | 樹脂スペーサ(1) オス-メス M3ねじ付き x 20mm | 4 | 手持ちの樹脂スペーサ(1)と(2)を結合して25mmで利用 ユニバーサル基板の固定用 |
| 6 | 樹脂スペーサ(2) オス-メス M3ねじ付き x 5mm | 4 | |
| 7 | プラナット M3 | 4 | |
| 8 | 平頭小ネジ、ナット M3 x 16mm | 4 | 二合枡の背面から樹脂スペーサ(1)を固定 |
| 9 | ACアダプタ (2.1mmプラグ) | 1 | 12V 1A 100~240V ※12Vを5Vに降圧して給電 |
| 10 | DC-DC降圧モジュール | 任意 | 5VのACアダプタ利用時は不要 |
| 11 | 2.1mm標準DCジャック | 1 | |
| 12 | ゴム足、 木ネジ(タッピングネジ) | 4 |
ユニバーサル基板に実装
ブレッドボード上のテストで動作確認が取れたので、ユニバーサル基板に実装しました。今回使ったパーツの中で最も大きな2.8インチTFT液晶(ILI9341)モジュールの横幅に合わせて、ユニバーサル基板のサイズは約80.5 x 86.5mmとしています。二合枡の内部寸法は約 87 mm× 87mm。
その際、TFT液晶モジュールの両端の接続ピン(J2(14本のピン)、J4(4本のピン))がユニバーサル基板上の2.54mmピッチの両面スルーホールの位置とあっていることを確認しておきます。
ユニバーサル基板の四隅に樹脂スペーサを介して二合枡にネジ締めするための開口穴をあけておきます。

各モジュールは分割ロングピンソケットを介してはんだ付け
各モジュールは、ユニバーサル基板に直接はんだ付けしないで、分割ロングピンソケットを介して実装しています。ユニバーサル基板のおもて面に2.8インチTFT液晶(ILI9341)モジュールとCO2濃度センサSCD30、気圧・温湿度センサBME280を、裏面にESP32C3 、DC-DC降圧モジュールを実装。
ケースに収めた際に、(ぎりぎりの寸法ですが)2.8インチTFT液晶(ILI9341)モジュールのSDカードソケットからSDカードを出し入れができること、ESP32C3 のUSBコネクタに外部からスケッチ書き込み用のUSBケーブルが刺せることを確認して配置を決めました。
ユニバーサル基板上のモジュール間の配線には手持ちのラッピング用ワイヤ30AWG(細い)、電源引き出しには24AWGを利用。

ユニバーサル基板の四隅には二合枡にネジ締めするための開口穴をあけておきます。

ESP32C3 への電源供給、結線図
ESP32C3 への電源供給は、USB type Cコネクタに給電するか、5V出力のACアダプタをESP32C3 の5Vピンにつないで動作させます(ESP32C3 は内部に5Vから3.3Vの降圧レギュレータを内蔵、裏面にはバッテリー接続パターン有り)。
参考:
・Getting Started with Seeed Studio XIAO ESP32C3(Pinout diagram、power-pins)
ケース実装にあたり、2.1mm標準DCジャックに接続できるACアダプタを使っています。今回、手持ちのACアダプタが12V出力だったので、DC-DC降圧モジュール(MP1584EN)を使って5Vに降圧してESP32C3 の5Vピンに外部給電しています。
DC-DC降圧モジュールのIN+とIN-間に12Vを印可したとき、OUT+とOUT-間が5Vになるようにモジュール上の半固定ボリュームを調整しておきます。INとOUT側の4本のジャンパーピンは付属しないので、余ったワイヤ線などをはんだ付けして自作です。

二合枡とユニバーサル基板の加工、穴開け
二合枡の穴あけには木工用ドリル刃(3mm、8mm、18mm)を、狭い場所での作業や細かい部品の保持、配線ワイヤの折り曲げ・切断には、先端が細い精密ピンセットやラジオペンチを使用しました。
DCジャック取り付け穴開け、USBコネクタ接続用の穴開け
二合枡の背面に8mm φ の木工用ドリルで穴あけしてACアダプタとつなぐ2.1mm標準DCジャックを装着。開けた穴径がやや大きかったので2.1mm標準DCジャックのねじ部分に強力両面テープを1周巻いてからねじ込んで接着。
二合枡の上面側にはESP32C3 のUSB type CコネクタにPCからのUSB ケーブルを差し込める位置に18mm φ の木工用ドリルで穴あけ、スケッチの修正が容易になりました。


二合枡ケースにユニバーサル基板を固定、ゴム足を取り付けて完成
ユニバーサル基板を樹脂スペーサを介して二合枡の背面からねじ止めする箇所はてこずりました。ユニバーサル基板と二合枡の開口したねじ穴が多少ずれていても下記手順で対応できました。
- あらかじめユニバーサル基板に開けた穴と同じ位置になるように二合枡の背面にも3mm φ の木工用ドリルで4箇所穴あけ。
- ユニバーサル基板と二合枡をつなぐM3ねじ付きの樹脂スペーサを二合枡の背面からM3平頭小ネジで樹脂スペーサが少し動く程度に仮締め。
- 裏面実装になるモジュール(ESP32C3、DC-DC降圧モジュール)を分割ロングピンソケットに差し込んだユニバーサル基板と2.1mm標準DCジャックの電源ケーブルに接続。
- 二合枡に仮締めした樹脂スペーサのネジ山にユニバーサル基板の開口穴を差し込んでM3プラナットで固定。その際ユニバーサル基板の4隅に開けた3mm φ 穴と樹脂スペーサのM3ねじの頭がずれているときは、開けた3mm φ 穴から見えるねじの頭を精密ピンセットで引き込みます。
- ユニバーサル基板と樹脂スペーサを4個のプラナットで固定できたら、二合枡の背面側のM3平頭小ネジを固定します。
最後に、おもて面実装の2.8インチTFT液晶(ILI9341)モジュールとCO2濃度センサSCD30、気圧・温湿度センサBME280を分割ロングピンソケットに差し込んで完成です
二合枡の底面には ゴム足を4か所に木工用のタッピングネジで取り付けています。
動作確認に使ったスケッチ
Arduino IDE(ESP32C3の開発ツール arduino-esp32インストール済)から、センサモジュールにあったスケッチを書き込んで、初期化状況のメッセージがエラーなく表示されれば完成です。
CO2濃度測定にSCD30センサモジュールを使い、1秒毎に日時・時刻表示、10秒毎に気圧、CO2濃度、温度、湿度を表示、SDカードにその値をファイル名「logdata.txt」でCSV形式で書き込みます。下記のリンク先にセットアップ手順をまとめています。
なお、二合枡ケース搭載時にはSDカードの向きが天地逆さになるので下記ページ掲載のスケッチ「xiao-esp32c3_2.8TFT-LCD_SCD30_BME280_SD-card.ino」の58行目「 tft.setRotation(3);」を「 tft.setRotation(1);」に変更して画面を180度回転表示します。
