悩んでいる子ねこ今回は、ESP32マイコンを使って**「自動開閉ゴミ箱」をDIYしました。 市販のセンサー付きゴミ箱も便利ですが、自分で作れば「蓋が閉まる速度」や「反応感度」**を自分好みにカスタマイズできます。
特に今回は、サーボモーター用のライブラリを使用せず、ソースコードの工夫だけで開閉スピードをコントロールする方法を採用しました。「蓋がバタン!と閉まるのが嫌だ」という方は必見です。
作成の流れ
Wi-FiとBluetoothを搭載した低消費電力マイコン「ESP32」を使用し、以下の手順で作成します。
- 必要な部品と道具の準備
- 配線図に従った接続
- Arduino IDEでのプログラミング(速度制御ロジック)
- 書き込みと動作確認
- ゴミ箱への組み込み・筐体加工
1.必要な部品と道具
電子部品
- ESP32マイコンボード(ESP-WROOM-32): 必須アイテム
- サーボモーター(SG90):安価で扱いやすい定番モーター
- IRセンサー(LM393):手を検知するための赤外線センサー
- AC-DC 5V電源アダプター:安定動作のため外部電源を推奨(今回は廃棄ルーターから流用)
筐体・工具
- プラスチック製のゴミ箱(ペダル式など)
- 切断用具(ルーター、ヤスリなど)
- 固定用具(ホットグルーガン、ネジ、プラスチック溶接機など)
- 保護材(アクリル板、プラ板など)
2.配線図と接続
ESP32と各センサーを以下のように接続します。

[画像:配線図または実体配線図をここに挿入]
| 部品 | ピン名 | ESP32接続先 | 備考 |
| IRセンサー | VCC | 3.3V | |
| GND | GND | ||
| OUT | GPIO 33 | センサー信号 | |
| サーボ(SG90) | 赤 (VCC) | 5V (VIN) | パワー不足を防ぐため5Vへ |
| 茶 (GND) | GND | ||
| 橙 (Signal) | GPIO 5 | PWM制御信号 |
ポイント: サーボモーターは電流を消費するため、動作が不安定な場合は外部電源の容量を確認してください。
3.プログラム(ソースコード)
Arduino IDEを使用してESP32に書き込みます。 このプログラムの最大の特徴は、ライブラリに頼らずPWM(パルス幅変調)を直接指定して、蓋がゆっくり閉まるように制御している点です。
ソースプログラム
const int IRSENSOR = 33; // 赤外線センサ接続ピン
const int SERV = 5; // サーボ接続ピン
boolean IRSENSOR_flg=false; //IRセンサ反応フラグ
void setup() {
pinMode(IRSENSOR, INPUT_PULLUP);//IRセンサに手をかざす(安定させるため内部プルアップ抵抗を有効化)
pinMode(SERV,OUTPUT);
}
void loop() {
if(digitalRead(IRSENSOR) == LOW){ //IRセンサに手をかざしたか検知(LOWで検知)
IRSENSOR_flg=true; //IRセンサに手をかざした状態
}
if (IRSENSOR_flg == true){ //センサーが反応したらサーボモーター動作開始
for(int j=90;j>0;j--){//1. 蓋を開ける90°から0°へ回転
SERVSpeed(j);
}
}
for(int i=0;i<=90;i++){//2. 蓋を閉める0°から90°へ回転
SERVSpeed(i);
exit(0);//繰り返さない
}
}
void SERVSpeed(int x){//xの値は0~180
int PWM = (x*8.75)+420;//角度からパルス幅への変換式
//数値8.75:指定角度まで開かない場合は数値を大きく調整
//数値420:閉まる位置(0点)がずれる場合(開いたままなら数値を小さくする)
digitalWrite(SERV,HIGH);
delayMicroseconds(PWM);//計算したパルス幅だけHIGHにする
digitalWrite(SERV,LOW);
delay(200);//この数値(ms)が大きいほど、次の角度へ進む待ち時間が長くなり、ゆっくり動く
}調整のポイント
- 角度調整: サーボモーターの個体差により、
8.75や420という係数は微調整が必要です。 - 速度調整:
delay(200)の数値を大きくするとさらにゆっくり閉まり、小さくすると速く閉まります。
仮り動作確認
ソースプログラムをESP32マイコンに書き込みます。Arduino IDEのシリアルモニタで出力が表示されることを確認してブレッドボード上にて動作確認を行います。
AC電源アダプタは廃棄無線LANから流用した出力DC5V1Aです。

Arduinoスターターキット:電子工作を基礎から学ぶ良キット。
4.組み立てと加工
サーボモーターの取り付け
ゴミ箱の蓋部分を加工してサーボモーターを取り付けます。今回はルーターで削り、ネジとプラスチック溶接機を使ってヒンジ部分と接続しました。





物理的な接続が一番の難関です。スムーズに開閉できるよう、現物合わせで調整を行いました。
センサーとマイコンの設置
ゴミ箱の前面にIRセンサーとESP32を配置します。ゴミ箱内部に配線を隠し、汚れ防止のために廃棄プリンターから取り出したアクリル板でカバーを作成しました。


配線はゴミ箱の内側に隠してホットグルーガンなどで固定しました。


5.完成・動作確認
完成したゴミ箱がこちらです。
手をかざすと、「スッ」と開き、用が済んだら「ゆっくり」と閉まります。 既存のペダル機構も残してあるので、電池切れの際や足で開けたい時も問題なく使えます。
まとめ
ESP32を使えば、市販品にはない「自分好みの動き」をする家電が作れます。特にサーボモーターのライブラリを使わない制御方法は、仕組みの理解にも繋がるのでおすすめです。
皆さんもぜひ、身の回りのものを自動化してみてください!



