Raspberry Pi でパトランプ制御 (5V/12V/24V)

概要

写真

Raspberry Pi を使ってパトランプを制御してみました。ハードウェアはド素人なので主にそのあたりを恥を忍んでメモ。

使用したもの

1 のパトランプは単三電池3本で回るだけのものなので、電池の代わりに Raspberry Pi から 5V をそのまま通電させて、制御できれば良いです。5V は直接 ON/OFF できないので、トランジスタを使って制御します。12/24V の場合は、この 5V を昇圧型の DC-DC モジュールで 12/24V に変換します。

配線

以下のように配線しました。(バイポーラ型)トランジスタは BE (Base-Emitter) 間に電流を流すと CE (Collector-Emitter) 間が通電するというもの。E を GND(0V) に接続し、B に接続した GPIO を ON にして BE 間に電流が流れると CE 間が 5V で通電、OFF にすると通電しなくなります。つまり GPIO がスイッチの役割となります。トランジスタ完全に理解した!

(1) 5V の場合

配線図

電池ボックス内で雑に実装しました。

写真(パトランプ) 写真(Raspberry Pi)

(2) 12/24V の場合

12/24V の場合は 5V に昇圧型の DC-DC モジュールをはさむだけです。

写真(パトランプ) 12/24V

テスト

/sys/class/gpio を通して GPIO を ON/OFF してみます。定期的に点滅すれば完成です。

#!/bin/bash

# 初期化: GPIO 4 に出力するようセットアップ
echo "4" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio4/direction
echo "0" > /sys/class/gpio/gpio4/value

for ((i=0; i<10; i++)); do
  # GPIO 4 を ON (点灯)
  echo "ON"
  echo "1" > /sys/class/gpio/gpio4/value
  sleep 3

  # GPIO 4 を OFF (消灯)
  echo "OFF"
  echo "0" > /sys/class/gpio/gpio4/value
  sleep 2
done

# 後始末
echo "4" > /sys/class/gpio/unexport

あとは監視ソフトなどと組み合わせて動かしましょう!