「照明やコンセントをArduinoで自動制御したい!」「スマートホームを自作してみたいけど、AC100Vって触って大丈夫?」

そんな疑問を持っている方、多いんじゃないでしょうか。

今回はArduinoとリレーモジュールを組み合わせて、家庭用AC100V機器(照明・扇風機・コンセントなど)をプログラムから制御する方法をゼロから解説します。回路図・コード・安全対策、さらにスマートホームへの応用まで一気にカバーしますよ🔌

⚠️ 注意:この記事ではAC100Vを扱います。正しい知識と安全対策を必ず確認してから作業してください。不安な方はDC回路での動作確認を先に行うことをおすすめします。

そもそもリレーモジュールって何?

smart home relay switch
smart home relay switch / Photo by Malte Luk via Pexels

リレーとは、小さな電気信号で大きな電流のON/OFFを切り替えるスイッチのことです。

イメージとしては「電磁石の力でスイッチを物理的にカチっと切り替える部品」と思ってください。

Arduinoの出力電圧は5V・最大40mAほど。一方、家庭用AC100Vは数アンペアが流れます。直接つなぐのはもちろんNG。そこでリレーが「絶縁しながら橋渡し」をしてくれるわけです。

市販のリレーモジュール(5V駆動・1チャンネル〜8チャンネル)を使えば、Arduinoと接続するだけですぐ使えます。秋月電子やAmazonで300〜1000円程度で手に入りますよ。

必要な部品リスト

  • Arduino UNO(またはNano・Mega)
  • 5V対応リレーモジュール(1チャンネル)
  • AC100V対応の電源タップ or 照明器具(被制御機器)
  • ジャンパーワイヤー(オスーメス)
  • USBケーブル・PC

⚠️ AC配線には電気工事士の資格が必要な作業が含まれる場合があります。コンセントの分解・直結作業は有資格者が行うか、既製品の延長ケーブルを改造する形で対応しましょう。

回路図:Arduinoとリレーモジュールの配線

まずはArduino↔リレーモジュール間のDC配線から確認しましょう。


【Arduinoとリレーモジュールの接続】

リレーモジュール側   Arduino UNO側
─────────────────────────────────
VCC              → 5V
GND              → GND
IN(信号ピン)   → デジタルピン 7番

【ACラインの接続(リレー端子)】

AC電源の片側(L線)→ リレーのCOM端子
リレーのNO端子   → 家電の片側
家電のもう片側   → AC電源のN線(直結)

ポイントをまとめるとこんな感じです👇

  • COM(Common):ACラインを入力する端子
  • NO(Normally Open):リレーOFF時は開放、ON時に導通する端子
  • NC(Normally Closed):リレーOFF時に導通、ON時に開放する端子(今回は使用しない)

リレーモジュールには「LOW アクティブ」と「HIGH アクティブ」の2種類があります。多くの市販品はLOWアクティブ(信号ピンにLOWを送るとリレーがON)なので、コードの書き方に注意が必要です。

基本コード:タイマーで照明をON/OFF

まずはシンプルに、5秒ON→5秒OFFを繰り返す基本スケッチです。

// リレーモジュールで家電をタイマー制御するスケッチ
// LOWアクティブのリレーモジュールを想定しています

const int RELAY_PIN = 7;  // リレー制御ピン

void setup() {
  pinMode(RELAY_PIN, OUTPUT);
  // 起動時はリレーをOFF(LOWアクティブなのでHIGHでOFF)
  digitalWrite(RELAY_PIN, HIGH);
  Serial.begin(9600);
  Serial.println("リレー制御スタート!");
}

void loop() {
  // 家電をONにする
  digitalWrite(RELAY_PIN, LOW);  // LOWでリレーON
  Serial.println("家電 ON");
  delay(5000);  // 5秒待つ

  // 家電をOFFにする
  digitalWrite(RELAY_PIN, HIGH);  // HIGHでリレーOFF
  Serial.println("家電 OFF");
  delay(5000);  // 5秒待つ
}

このスケッチの重要ポイントはここです:

  • LOWアクティブモジュールでは LOW → リレーON(家電ON)、HIGH → リレーOFF(家電OFF)
  • 起動時に HIGH を送ることで「意図しない誤作動」を防いでいます
  • シリアルモニタで動作ログが確認できます

応用コード:シリアル通信でスマホ・PCから制御


次は、シリアルモニタ(またはPythonスクリプト)からコマンドを送って家電をON/OFFする実用的な例です。

// シリアルコマンドでリレーを手動制御するスケッチ
// 「1」を送るとON、「0」を送るとOFF

const int RELAY_PIN = 7;
bool relayState = false;  // 現在の状態を管理

void setup() {
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, HIGH);  // 起動時OFF
  Serial.begin(9600);
  Serial.println("コマンド待機中... 1=ON / 0=OFF");
}

void loop() {
  if (Serial.available() > 0) {
    char command = Serial.read();  // 1文字受け取る

    if (command == '1') {
      digitalWrite(RELAY_PIN, LOW);  // リレーON
      relayState = true;
      Serial.println("[ON] 家電をONにしました");
    }
    else if (command == '0') {
      digitalWrite(RELAY_PIN, HIGH);  // リレーOFF
      relayState = false;
      Serial.println("[OFF] 家電をOFFにしました");
    }
    else if (command == 's') {
      // 現在の状態を確認するコマンド
      Serial.print("現在の状態: ");
      Serial.println(relayState ? "ON" : "OFF");
    }
  }
}

シリアルモニタから 1 を送ると家電がON、0 を送るとOFF、s を送ると現在の状態が確認できます。これだけでもかなり実用的ですよね😊

スマートホーム応用:時刻連動の自動制御

さらに発展させると、RTC(リアルタイムクロック)モジュールと組み合わせて「毎朝7時に照明ON・23時にOFF」といった時刻連動制御も可能になります。

// DS3231 RTCモジュールと組み合わせたスケジュール制御の概念コード
// ライブラリ: RTClib(Adafruit)が必要

#include <Wire.h>
#include <RTClib.h>

RTC_DS3231 rtc;
const int RELAY_PIN = 7;

void setup() {
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, HIGH);  // 起動時OFF
  Serial.begin(9600);
  rtc.begin();
}

void loop() {
  DateTime now = rtc.now();  // 現在時刻を取得
  int currentHour = now.hour();

  // 7時〜23時の間は照明ON、それ以外はOFF
  if (currentHour >= 7 && currentHour < 23) {
    digitalWrite(RELAY_PIN, LOW);   // ON
  } else {
    digitalWrite(RELAY_PIN, HIGH);  // OFF
  }

  delay(60000);  // 1分ごとにチェック
}

このコードにさらに温度センサー・照度センサー・Wi-Fiモジュール(ESP8266など)を組み合わせれば、本格的なスマートホームの出来上がりです!

⚠️ 安全対策:必ず読んでください

AC100Vを扱う以上、安全対策は絶対に外せません。以下のポイントを必ず守ってください。

  • 作業中は必ずAC電源を抜いてから配線する(絶対厳守!)
  • ✅ AC配線部分は絶縁テープで完全に覆う。露出した金属部分を残さない
  • ✅ リレーモジュールのAC端子側とDC(Arduino)側は物理的に離して固定する
  • ✅ ケースやエンクロージャーに収納してAC部分を触れないようにする
  • ✅ リレーの定格(例:10A 250VAC)を超える機器には使用しない
  • ✅ 万が一のためヒューズをAC回路に入れることを推奨
  • ✅ 子供の手の届かない場所に設置する

「なんとなく動いたからOK」ではなく、正しく絶縁・固定されているかを必ず確認してから運用してください。

まとめ

今回はArduinoとリレーモジュールを使ってAC家電をスマート制御する方法を解説しました。

ポイントをおさらいすると:

  • リレーは「小信号で大電流をON/OFFする橋渡し役」
  • LOWアクティブ・HIGHアクティブの違いに注意
  • シリアル通信でPCやスマホからリアルタイム制御が可能
  • RTCモジュールと組み合わせれば時刻スケジュール制御もできる
  • AC100Vを扱う以上、安全対策は絶対に妥協しない

最初は「AC触るの怖いな…」と感じるかもしれませんが、正しい知識と安全対策があれば、市販品にはない自分だけのスマートホームを作れる最高に楽しいテーマです🏠✨

ぜひ実際に手を動かして試してみてください!何か詰まったことがあれば、コメントで気軽に聞いてくださいね。一緒に学んでいきましょう!

📡 Arduinoをもっと深く学ぼう!

Arduino・ラズパイ・ロボットプログラミングを体系的に学びたい方へ。おすすめのUdemyコースや電子部品もまとめています。

Arduinoロボット入門のおすすめコース・部品を見る →

📚 関連商品・おすすめ書籍

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

もしも

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

初心者に定番のPython入門書

Amazonで見る

Arduinoをはじめよう 第4版 (Make: PROJECTS)

もしも

Arduinoをはじめよう 第4版 (Make: PROJECTS)

Arduino公式推薦の定番入門書

Amazonで見る

徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

もしも

徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

電子工作とプログラミングを同時に学べる

Amazonで見る

※本記事にはアフィリエイトリンクが含まれます。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。