Raspberry Piでパトランプを作成②

過去の記事は下記となります。
Raspberry Piでパトランプを作成① 概要

これから5回に渡って、下記求める仕様の部分をどのように実現したか記載して行きます。

求める仕様

音の部分

下記写真にある通り、USBスピーカをモノラル化して流用しております。
http://www2.elecom.co.jp/multimedia/speaker/ms-w11u/

組み込み系では、電流がどれ位流せるか、サウンド再生であれば
デコーダ等を検討する必要があるのですが、Raspberry PiはUSBデバイスをそのままつなげるので

とても楽です、但しあまりに大きな電流の流れる物は
保護回路により制限されるそうなのでご注意下さい。
制限値は基板のリビジョンによっても違いがあるそうです。

IMG_1904

光の部分

コンセントに挿し夜になると光ってくれるインテリアライトを使いました
裏のコンセントプラグを引っこ抜いた部分でケーブル取り回しが良い感じです。
P6281522

Raspberry Pi GPIOの電流制限に引っかからないように
IOポート一つに付きLEDを1個駆動します。(計2個)

中身の基板を流用したかったため表面実装部品等は全て取り去り
LEDを無理やり実装の上、ホットボンドで固定しました。

P6281520

サウンドを再生しLEDを点滅させる

次回記述しますが snmptrapd より下記スクリプトをキックする事で挙動を実現しています。

失敗談

PythonでのRaspberry Pi GPIO制御用ライブラリ読み込みにお気をつけ下さい!
気づくのに丸1日掛かってしまいましたが
Raspberry Pi なので RPi <- iだけ小文字でした... orz

処理の中心部分のみ記載しました、詳細はgithubへどうぞ
https://github.com/tktk19/Patlam-pi/blob/master/bin/trap_receive.py

class Alart():
    def __init__(self):
        # GPIOの設定
        GPIO.setwarnings(False)
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(23, GPIO.OUT)
        GPIO.setup(24, GPIO.OUT)

    def __sound(self):
        # サウンド再生コマンドをバックグラウンドで実行します
        sound_file = os.path.join(patlam_pi.app.config['SOUNDDATA'], "ALARM.WAV")
        cmd = "/usr/bin/aplay " + sound_file + " &"
        os.system(cmd)

    def __light(self):
        __led_blink_count = patlam_pi.get_setting('LEDBlink')
        i = 0
        while i < int(__led_blink_count):
            # LED2つを0.5秒間隔でUI設定回数分点滅させます
            GPIO.output(23, True)
            GPIO.output(24, True)
            time.sleep(0.5)
            GPIO.output(23, False)
            GPIO.output(24, False)
            time.sleep(0.5)
            i+=1

    def fire(self):
        self.__sound()
        self.__light()

if __name__ == '__main__':
    alart = Alart()
    alart.fire()

ソース

作成したプログラム及び、Raspberry Piの配線図、Raspbianへ実施した設定は下記を参照下さい。
https://github.com/tktk19/Patlam-pi

ムービー

8/25更新・掲載致します。

Raspi_Colour_R-207x250

投稿者プロフィール

takashi
Japan AWS Ambassadors 2023, 2024
開発会社での ASP型WEBサービス企画 / 開発 / サーバ運用 を経て
2010年よりスカイアーチネットワークスに在籍しております

機械化/効率化/システム構築を軸に人に喜んで頂ける物作りが大好きです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

ABOUTこの記事をかいた人

Japan AWS Ambassadors 2023, 2024 開発会社での ASP型WEBサービス企画 / 開発 / サーバ運用 を経て 2010年よりスカイアーチネットワークスに在籍しております 機械化/効率化/システム構築を軸に人に喜んで頂ける物作りが大好きです。