AIに抗う

Aiなんかに負けてたまるか

【ラズパイ】スマートロックを自作してみた

スポンサーリンク

ラズパイことraspberry piで、スマートロックを作ってみました。

経緯

自宅の鍵を開けるときに鍵を出すのがめんどくさい。ググると1万円ぐらいで購入できることがわかる。ちょっと高いな…。よし作ろう。

 

費用

raspberry pi 3B(中古) 2500円

工作キット中古(ジャンパー線、モーターなど) 2400円

ダンプラ(プラスチックダンボール) 500円

その他(工具等) 2000円

 合計 7400円(結構かかってる…)

 

ハード

構想設計して→試作して…などなどありましたが、完成品はこちらです。

①まずは土台を両面テープで貼り付けて

f:id:developer-sosa:20200718134516j:plain

スマートロック①

 ②つまみの部分を長くして

f:id:developer-sosa:20200718134736j:plain

スマートロック②

③ラズパイ・モーターを設置

f:id:developer-sosa:20200718135019j:plain

スマートロック③

動いている動画はこちらです。

youtu.be

 

ソフト

Pythonで 実装しました。

 

~
import time,RPi.GPIO as GPIO

bot = 2.5
mid = 7.3
top = 12.0
angle = [bot,mid,top]

def set_angle(arg):
    return angle[arg]

def drive(arg):
    GPIO.setmode(GPIO.BCM)
    gp_out = 2 #SG90(モーター)の黄色を刺したピン
    GPIO.setup(gp_out, GPIO.OUT)
    motor = GPIO.PWM(gp_out, 50)
    motor.start(0.0)

    angle = set_angle(arg)
    motor.ChangeDutyCycle(angle)
    time.sleep(0.5)

    GPIO.cleanup()

def unlock():
    try:
        #unLock位置へ
        drive(0)

        #Home位置へ
        drive(1)
    except Exception as e:
        print("!!!エラーが発生しました!!!\n" + str(e))

def lock():
    try:
        #Lock位置へ
        drive(2)

        #Home位置へ
        drive(1)
    except Exception as e:
        print("!!!下記エラーが発生しました!!!\n" + str(e))
~

~解説~

 GPIO.setmode(GPIO.BCM) ★お約束

 gp_out = 2 #SG90(モーター)の黄色を刺したピン

 GPIO.setup(gp_out, GPIO.OUT) ★お約束

 motor = GPIO.PWM(gp_out, 50) 

 motor.start(0.0) ★お約束

 angle = set_angle(arg)

 motor.ChangeDutyCycle(angle) ★モーターを指定した角度へ駆動させる

 time.sleep(0.5)

 GPIO.cleanup()  ★お約束

 

テンキーとの連携

実際の運用では下の動画のように、テンキーを玄関のドアにくっつけて、暗証番号認証しています。

youtu.be

まとめ

結果としてはそれなりに時間と労力が掛かってしまったので、とにかく自宅の鍵をスマートロック化したい方は、市販の物を買いましょう。

個人的にはいいお勉強になったので、よしとします。

現在は暗証番号認証だけでなく、Webからも操作できるようにしているので、そのうち紹介します。

 

脆いから、木造化を検討中…

 

お問い合わせ