ACコンセントの制御方法をいろいろと
ACコンセントのオンオフをプログラムから制御できると家電を動作させたり、
機材の検証など、いろいろと役に立つことがあります。
いくつか制御方法について記載します。
紹介する方法
- [1]IFTTTを経由して、スマートプラグを制御
- [2]PythonコードでスマートプラグTapo P105を制御
- [3]リレーモジュールを使って、連動タップを制御
↓といった感じです。(個人の感想)
方法 | 手軽さ | コスト | 応答 | インターネット | 備考 |
---|---|---|---|---|---|
[1] | ◎ | 〇 | △ | 必要 | - |
[2] | 〇 | ◎ | △ | 必要 | - |
[3] | △ | △ | ◎ | 不要 | ネットワークが不要なのが大きい |
[1]IFTTTを経由して、スマートプラグを制御
IFTTT対応のスマートプラグを購入することで、IFTTTのサービスをつなげることができます。
- IFTTT対応のスマートプラグ例
- Meross スマートプラグ
- IFTTTの使い方
- 以前投稿した下記の記事(ライト制御)に記載してありますので、そちらを参照ください
[2]PythonコードでスマートプラグTapo P105を制御
Tapo P105を使った方法です。
本製品は、IFTTT対応していません。
ラズベリーパイから、制御する例で記載します。
事前準備
Tapo P105製品を使用する場合、スマートフォンアプリのTapoに登録する必要があります。
その際、アカウント(メールアドレスとパスワード)を登録するのですが、
制御時このアカウント情報が必要となります。
ラズベリーパイからの制御
環境の構築
必要なモジュールをインストールします。
$ python3 -m venv env
$ source env/bin/activate
(env) $ pip install requests
(env) $ pip install pycryptodome
(env) $ pip install pkcs7
また、必要なソースコードをレポジトリから取得します。
(env) $ git clone https://github.com/2729-gumi/TapoP100.git
(env) $ mv TapoP100/PyP100 .
制御用のコード
同レポジトリに公開されているコードが以下となります。
IPアドレス、メールアドレス、パスワードはご自身の環境に合わせて修正してください。
下記のコードでオンオフが制御できます。
from PyP100 import PyP100
p105 = PyP100.P100("192.168.X.X", "email@gmail.com", "Password123") # Creating a P105 plug object
p105.handshake() # Creates the cookies required for further methods
p105.login() # Sends credentials to the plug and creates AES Key and IV for further methods
p105.getMacAddress() # Get MacAddress and Set terminalUUID
p105.turnOn() # Sends the turn on request
p105.turnOff() # Sends the turn off request
p105.getDeviceInfo() # Returns dict with all the device info
[3]リレーモジュールを使って、連動タップを制御
サンワサプライの連動タップを使用することで、ACのオンオフを制御することができます。
製品のホームページは以下となります。
ラズベリーパイから、制御する例で記載します。
🔧機材一覧
no | 部品名 | 個数 | 備考 |
---|---|---|---|
1 | ラズベリーパイ | 1 | 今回は4Bで確認 |
2 | リレーモジュール | 1 | Amazon |
3 | USBケーブル 0.4m TK-USB1 | 1 | Amazon |
4 | 連動タップ | 1 | AmazonサンワサプライTAP-RE10SPUN |
5 | ジャンパー線 | 適量 | - |
接続図
ピンの接続
ラズパイ側 - リレーモジュール
Pin | リレーモジュール | USBケーブル | 備考 |
---|---|---|---|
5V | DC+, COM | - | |
GND | DC- | GND(黒) | - |
BCM21 | IN | 緑ケーブル | |
- | NO | 5V(赤) | - |
- | - | USBコネクタ | 電動タップと接続 |
環境の構築
apt
pigpioライブラリは、Raspberry PiのGPIOを制御するためのライブラリです。
以下のコマンドは、はじめてインストールする場合のみ必要です。
$ sudo apt install pigpio
$ sudo service pigpiod start
$ sudo systemctl enable pigpiod.service
pip
Pythonに関するモジュールをインストールします。
$ python3 -m venv env
$ source env/bin/activate
(env) $ pip install pigpio
(env) $ pip install gpiozero
コード
ACを3秒オンした後に、オフします。
from gpiozero import LED
from gpiozero.pins.pigpio import PiGPIOFactory
from time import sleep
# relay switchのピン
PIN_RELAY_SWITCH = 21
def main():
# ピン設定
factory = PiGPIOFactory()
p = LED(PIN_RELAY_SWITCH, pin_factory=factory)
# ACの制御
print("relay on - AC:ON")
p.on()
sleep(3.0)
print("relay off - AC:OFF")
p.off()
sleep(1.0)
if __name__ == "__main__":
main()
実行手順
(env) $ python pump.py
relay on - AC:ON
relay off - AC:OFF
連動タップがオンオフされます。
さいごに
趣味や業務で、オンオフをしたいことが結構遭遇します。
単純な操作を自動化することにもつながり、どの方法も重宝しています。
ラズベリーパイの使い方を↓にまとめてありますので、興味があれば見てください。
Discussion