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

ラズパイこと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からも操作できるようにしているので、そのうち紹介します。

 

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

コメント