【ダイソー × Arduino】初心者キットで作る「自動速度調整USB扇風機」|気温が上がると風が強くなる装置

暑いと風UP! 自動扇風機ガジェット

気温に応じて風量を自動で変える扇風機を作ろう

ダイソーで扇風機買ったんだけど、暑い時に自動で強くなったら最高なんだよね。

それ作れるよ! ダイソーのUSB扇風機をArduinoで制御して、温度センサーで自動的に風量が変わる賢い扇風機にしよう。今日のテーマは「気温連動扇風機」だ。

今回は、温度センサーとDCモータを組み合わせて実験したい方に向けて、初心者キット付属のDCモータとファン羽根を使って「気温に応じて回転数が変わるミニ扇風機」の作り方を紹介します (ダイソーのUSB扇風機を分解する記事ではありません)。

キットに入っているキットのDCモータと、温度センサーを組み合わせて、気温が上がると風量が自動で強くなる装置です。普通の扇風機にはない「賢い」機能を、Arduino で実現します。

この記事で作るもの
  1. DCモータをPWMで速度制御
  2. DHT11で気温を測る
  3. 気温が高いほど風量も強くなる
  4. シリアルモニタで現在の気温と風量を確認

使う部品

分類部品入手先
頭脳Arduino UNO R3キット
センサーDHT11温湿度センサーキット
モータDCモータ + ファンキット (ファンも付属)
制御L293Dモータドライバキット
配線ブレッドボード、ジャンパーキット
外装ダイソークリアケースダイソー

ELEGOOキットにDCモータとL293DドライバICが入っているので、ダイソー扇風機を分解せずに、キット内の部品だけで扇風機を作れます。

配線図 (L293Dを使う場合の要点)

L293Dは「ロジック電源 (VCC1=5V)」「モータ電源 (VCC2=5V)」「GND (複数あり、全部Arduinoと共通)」が必要です。連続出力は600mA程度なので、大型モータには使えません。今回はキット付属の小型DCモータ前提です。

        a b c d e
       +─────────+
[+]rail| . . . . . | ← 5V
[-]rail| . . . . . | ← GND
       +─────────+
row 3  | X . . . . | ← DHT11 VCC ([+])
row 4  | X . . . . | ← DHT11 Data (D2)
row 6  | X . . . . | ← DHT11 GND ([-])
       +─────────+

L293Dは別領域で:
  EN1 → D9 (PWM、速度制御)
  IN1 → D7
  IN2 → D8
  OUT1, OUT2 → DCモータ2足

プログラム

#include <DHT.h>

#define DHTPIN 2
#define DHTTYPE DHT11
#define EN_PIN 9
#define IN1 7
#define IN2 8

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  pinMode(EN_PIN, OUTPUT);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  dht.begin();
  Serial.println("気温連動扇風機 スタート!");
}

void loop() {
  float temp = dht.readTemperature();
  if (isnan(temp)) { delay(2000); return; }

  // 25℃で速度0、35℃で最大、それ以上も最大
  int speed = 0;
  // 低すぎるPWM値ではDCモータが回り出さないので、最低90にする
  if (temp < 25) {
    speed = 0;
  } else if (temp >= 35) {
    speed = 255;
  } else {
    speed = (int)(90 + (temp - 25) * 16.5);
  }

  analogWrite(EN_PIN, speed);

  Serial.print("気温: ");
  Serial.print(temp);
  Serial.print("℃ 速度: ");
  Serial.println(speed);
  delay(3000);
}

プログラムの動き

flowchart TD A[起動] --> B[気温を測る] B --> C{25℃以下?} C -->|Yes| D["速度0
停止"] C -->|No| E{35℃以上?} E -->|Yes| F["速度255
最大"] E -->|No| G["気温に応じて
段階的に"] D --> H[3秒待つ] F --> H G --> H H --> B

速度マップ

気温PWM値体感
25℃以下0停止
28℃76そよ風
30℃127普通の風
33℃204強い風
35℃以上255最大
ダイソー扇風機の代わりにキット付属のファンを使うってこと?

そう! ELEGOOキットにはDCモータと小型のファン羽根が付属してるから、それで作るのが安全。ダイソー扇風機の分解はバッテリーや感電のリスクがあるから、初心者には推奨しないんだ。

外装の組み立て

ダイソーケース活用
  1. ダイソーのクリアケースを横向きに使う
  2. ファンの羽根が入る位置に丸い穴を開ける
  3. 反対側 (背面) には吸気の穴を複数開ける
  4. ArduinoとDHT11はケースの中に固定
  5. DHT11は吸気側に置いて、室温を正確に測る

改造のアイデア

発展アイデア
  1. ポテンショメータで「目標温度」を手動設定
  2. LCDで気温と風量を表示
  3. LEDで「弱・中・強」を視覚的に
  4. 湿度も考慮した不快指数連動モード

まとめ

今回は、ダイソークリアケースとキット部品で作る「気温連動扇風機」を紹介しました。市販品にはない自動制御機能を持つ、プログラミング初心者向きの実用ガジェットです。

大切なのは、温度に合わせて回転数が変わる仕組みを自分で書くことです。小型ファンなので机の上で風量変化を観察する実験用途として使います。

他にも初心者キットだけで作れる作例を別の記事で紹介しているので、興味があれば見てみてね。