ある日、唐突にキンコンチャイムを買いました。
理由は2つほどあるようでないのですが、ケツATSを見てて「ATSのジリリリリの後のキンコンキンコンがこれに似てるよなあっ」て思っていたのと、会社のサーバールームで作業していると人が入ってきた時に気づかなくてわりとビビるので何かしらでなんとかしたいと言うアレがあったというわけで、前者の方は圧倒的にどうでもいいです。
んで、届いた日にちょっと遊んでたんですが、どうも直結だとダメっぽく、そういえばソレノイドは逆起電力がどうとかでダメなんだったということが分かったのでしばらく放置していたのでした。
というか、接続した瞬間火花飛ぶし怖いなと。押しボタンもただショートするだけだし、アレボタンのところで毎度火花散ってたのかなと思うとなかなかアレですな。わからんけど。
鳴らない……( ՞ةڼ◔)
3v3につなぐとなるんだけど、GPIOはダメっぽい。 pic.twitter.com/jdmZxifYOZ
— あっきぃ (@Akkiesoft) 2016, 1月 13
ツッコミも頂いたんだけど、
@Akkiesoft あんまムチャするとRPiのCPUが壊れますよ。
— TSUBOI Yoshihiro (@ytsuboi) 2016, 1月 13
こっちはなんでやねんと。
@Akkiesoft なぜejectで押さないんですか!
— TSUBOI Yoshihiro (@ytsuboi) 2016, 1月 13
時は流れてついさっき、ようやくリレーモジュールを組み立てて鳴らせるようにしました。
自作リレーモジュール。リレーとダイオードは遠い昔から持ってたけどいよいよ観念したと言う感じがありますな。
前に買ったシール基板も初めて使用。基板との接着にボンドか両面テープが必要という点に気づいてなくて、とりあえずノー接着にしたら、ピンヘッダがぐらついたり浮くと言う問題が発生したので後日なんとかしよう……。
後はスクリプトを用意して鳴らすだけ。なお、ピンポンの鐘の部分にはティッシュを挟んで小音にしたとはいえ、深夜1時過ぎです。完全に近所迷惑です、本当にありがとうございました。
そして、「会社のサーバールームで作業していると人が入ってきた時」を検知するのは赤外線センサーを使います。これも前にdx.comでぽちってちょっと遊んだ後放置していたのを発掘しました。
ここまでの内容を実現するスクリプト。これ、なんでもいいから上げておかないと、SDカードが飛んだ時につらい(前に作った謎ボタン用のスクリプトが2度吹っ飛んでいて今も手元になくまた書かないといけない状態)。
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setup(11, GPIO.OUT) GPIO.setup(7, GPIO.IN) try: while True: if GPIO.input(7) == 1: print("pingpong!!") GPIO.output(11,True) time.sleep(0.5) GPIO.output(11,False) time.sleep(10) else: print("wait...") except(KeyboardInterrupt): print("uiiin") GPIO.cleanup()
電源は普通に乾電池にしてるけど、もしかしたらRPiから取れるのかも?(電力足りるんかな)。