家電の電源スイッチを制御

Msakoが動体を検知したとき家電のスイッチが入る仕組みを作ってみました。

用意したもの

USBリレーモジュールはアマゾンで購入(879円)しました。 このモジュールはCH340というUSBシリアル通信用のICチップを使っているので、Windows同梱のデバイスドライバーが適用され、プラグアンドプレイで使用できます。 また、このモジュールに搭載されているリレーSRD-05VDC-SL-Cの仕様に依れば、商用電源(交流100V)で誘導性負荷なら300W、抵抗性負荷なら1000W程度まで駆動できるはずです。

USB延長ケーブルは必ずしも必要ではありません。USBリレーモジュールを直接パソコンに接続しても構わないのですが、パソコンから離れた場所にあったほうが取り回しが良さそうなので使用しました。

配線

次の図のように、電源ケーブルを加工してUSBリレーモジュールのNO(Normal Open)端子とCOM(Common)端子に接続します。

ソフトウェア

USBリレーモジュールを制御するソフトウェアを作成しました。開発環境を準備するほどの内容ではないので、手っ取り早くPowerShellで書きました。もちろん、きちんと開発環境を整えてVB.NetやC#.Net、Windows Python等々で書くのは悪くないと思います。

usbrelay.ps1

# LCUS Type-1 USB Relay Module USB Intelligent Switch Control # Copyright © 2024- Yasuo Ogane All Rights Reserved $rc = 0 # Get first parameter PORT $PORT = [String]$Args[0] if ($PORT -eq '?') { $port_list = '' $ports = [System.IO.Ports.SerialPort]::getportnames() foreach ($port in $ports) { if ($port_list -ne '') { $port_list = $port_list + ' / ' } $port_list = $port_list + $port } if ($port_list -eq '') { $port_list = 'none' } echo ('Available Seral Port(s): ' + $port_list) exit 0 } elseif ($PORT -eq '') { echo 'Error: missing first parameter PORT, such as COM?' exit -1 } # Get second parameter STATUS $STATUS = [String]$Args[1] if ($STATUS -eq '') { $STATUS = 'On' } $STATUS = $STATUS.ToLower() # Control characters [Byte[]] $ON = 0xA0,0x01,0x01,0xA2 [Byte[]] $OFF = 0xA0,0x01,0x00,0xA1 # Send control characters to the device $com = New-Object System.IO.Ports.SerialPort $PORT,9600,None,8,one try { $com.Open() if ($STATUS -in @('1', 'on', 'close', 'true')) { $com.Write($ON, 0, $ON.Count) } elseif ($STATUS -in @('0', 'off', 'open', 'false')) { $com.Write($OFF, 0, $OFF.Count) } else { echo ('Error: invalid second parameter - ' + $STATUS) $rc = -2 } $com.Close() } catch { echo ('Exception: ' + $_.Exception.Message) $rc = -3 } finally { $com.Dispose() } exit $rc

設定

まず、デバイスマネージャーを使ってUSBリレーモジュールがCOM3と認識された事を確認しました。

Msakoのプログラム実行画面を開いて、イベントが発生したときに家電の電源を入れるよう、次のように設定しました。


powershell -ExecutionPolicy Unrestricted .¥usbrelay.ps1 COM3 On

さらに、イベントが終了したときに家電の電源を切るよう、次のように設定しました。


powershell -ExecutionPolicy Unrestricted .¥usbrelay.ps1 COM3 Off

動作確認

動作確認のためにLED電球を使用しました。40型相当のごく普通のLED電球で、消費電力は5W以下ですから、リレーの接点容量としては全く問題ないはずです。

プログラム実行画面の「テスト」ボタンを押すとUSBリレーモジュールからカチッと音がして、無事にLED電球が点灯/消灯しました。

応用

動作確認で使用したLED電球と同程度の消費電力なのでパトライトの回転灯(ブザー付き)をLED電球の代わりに接続しても動作するでしょう。

イメージ図:株式会社パトライト様HPより

ご注意ください

このページに掲載されている情報の一部または全部に基づいて実施された行為により生じたいかなる損害について一切保障しません。