ラズパイとリレーモジュール

 

リレーモジュール
リレーモジュール

この記事では、リレーモジュールをRaspberry Piで制御する方法を解説します。リレーモジュールが使えるようになれば、家電製品のIoT化ができたり既存の製品を有効活用できます。ただし、初めてのリレーモジュールでいきなりコンセントのAC100Vを扱うのは大変危険です。ここではまず、豆電球のような事故のない電子部品を使って、リレーモジュールを扱ってみたいと思います。

はじめに

リレーモジュールはこちらのWayinTopの「JQC-3FF-S-Z」リレーを搭載したものを使用しました。

▼ また、もっと複数チャンネル使いたい場合は、このようなリレーアレイが便利かもしれません。本記事の内容が理解できれば、これらの製品を扱うのも問題ないと思います。

これらのリレーモジュールは、フォトカプラをドライブすることでリレーのスイッチが切り替わる仕組みとなっています。フォトカプラを使うと、制御対象のデバイスとマイコンを絶縁できるメリットがあります。また、フォトカプラの使い方はSonyのデジイチをM5StickC PLUSでリモート操作できるようにしてみたをご参考になさってみてください。

▼ なお、本記事ではこちらのRaspberry Pi zero WHを使用しました。

レリーモジュールの使い方

はじめに、リレモジュールの使い方を確認していきましょう。ここでは、ラズパイを使わずにリレーモジュールを動かしていきます。リレーモジュールが動作する仕組みをしっかりつかみましょう。

リレーを動かしてみよう

図のように配線を組んで、実際にリレーを動かしてみました。皆さんも回路を組んで実際に遊んでみることをおすすめします。

リレーモジュールの配線図
リレーモジュールの配線図

  • スイッチを通じてプラス5Vを、リレーモジュールのINへ繋ぐ
  • DCマイナスは電源のマイナス端子へ繋ぐ
  • DCプラスは直接プラス5Vを繋ぐ

上記のように配線したら、スイッチのオンオフを切り替えてみましょう。スイッチを切り替えるたびに、ウィンカーみたいなカチカチ音が聞こえたでしょうか?これはリレーのスイッチが切り替わる音です。この音が聞こえればリレーは正しく動作できています。次はこの回路に豆電球を取り付けて光らせてみましょう。

豆電球をリレーで光らせよう

次に豆電球を用意して、リレー制御で光らせてみましょう。図のように電池と豆電球をリレーモジュールに繋ぎました。

豆電球とリレーモジュールの配線図
豆電球とリレーモジュールの配線図

COMとNOに豆電球を繋いだ場合、スイッチをオンにすると豆電球が光り、スイッチをオフにすると消灯します。つまり、スイッチをオンにすることでリレーモジュールのCOMとNOが導通します。

それでは、COMとNCに豆電球を繋ぎ変えてみましょう。今度はスイッチをオンにすると豆電球は消灯し、スイッチをオフにすると光るようになりました。

ここまでの動作から次のことが理解できると思います。

  • COM(コモン)共通の端子
  • NO(ノーマリーオープン)は、リレーコイルに電流が流れていない時にCOMとの間が開いている
  • NC(ノーマリークローズ)は、リレーコイルに電流が流れていない時にCOMとの間が閉じている

ラズパイでリレーモジュールを動かす

それではこれからラズパイを使ってリレーモジュールを動かしていきます。なお、ラズパイのセットアップはキーボードなしのラズパイをMacで初期設定、SSH環境構築をご参考になさってみてください。

トリガーの仕様

今回使用したリレーモジュールのトリガー(IN)へ流す電流は、5mA程度あれば十分です。また電圧は3〜5Vの範囲で入力が可能です。

ラズパイのGPIOは1つあたり10mA程度まで電流を出力できます。そして全体で30mA程度までとなります。また、GPIOの出力電圧は3.3Vです。

たくさんのリレーを繋ぐときは消費電流に気をつけましょう。今回はひとつだけの実験ですので、GPIOを直接リレーモジュールのトリガーへ繋ぎました。

ちなみに今回使用したリレーモジュールはジャンパピンが存在し、Low側にするとトリガー電圧を0〜1.5Vに変更できるようになっていました。

ラズパイとリレーモジュールの配線

こちらがラズパイとリレーモジュールの配線図になります。GPIO17をリレーモジュールのトリガーへ繋ぎました。

ラズパイとリレーモジュールの配線図
ラズパイとリレーモジュールの配線図

豆電球をリレーモジュールで点滅させるPythonプログラム

リレーモジュールで豆電球を点滅させるプログラムをPythonで書いてみました。車のウインカーと同じような速さでスイッチがオンオフする演出をしてみました。

import RPi.GPIO as GPIO
from time import sleep

RELAY_PIN = 17

GPIO.setmode(GPIO.BCM)
GPIO.setup(RELAY_PIN, GPIO.OUT)


while True:
    GPIO.output(RELAY_PIN, True)
    sleep(0.35)
    GPIO.output(RELAY_PIN, False)
    sleep(0.35)

いかがだったでしょうか?うまくリレモジュールは動きましたでしょうか?

リレーモジュールの仕組みが分かれば動かすのはとてもカンタンです。また、豆電球を光らすことができればAC100Vのコンセントも同じ要領で制御できるはずです。ただし、くれぐれも事故がないよう配線などに十分注意してくださいね。

記事に関するご質問などがあればTwitterへお返事ください。
この記事で紹介した商品
人気のラズパイ
人気のラズパイ周辺機器
Raspberry Piのオススメ入門書
関連記事