ESP8266でつくるスマートロック [IoTシリーズその1]

こんにちは! 今回から、IoTシリーズというものを作りまして、この半年で作ってきたIoTデバイスたちを紹介していこうと思います。 で、今回はその第1弾ということで「ESP8266でつくるスマートロック」を紹介します。 実は、すでに作った実物は改良を加えて違うものへと進化してしまったのでないのですが、写真が存在しているのでそちらを利用して紹介します。

smartlock0

準備するもの

ESP8266の開発ボード × 1

SWITCHSCIENCEさんが販売しているこれが一番作りやすいです。
https://www.switch-science.com/catalog/2652/

ジャンパーケーブル 数本

プライム発送で品質もよく届くのも速いのですが高いです。商品が届くまで時間がかかりますが、中華製のもっと安いやつもあります。
http://amzn.to/2d7mkqA プライム発送の方
http://amzn.to/2cdUiEH 安い方

サーボモータ SG92R × 1

SG90でも大丈夫だとは思いますが、私はこれで作りました。判断は自己責任でお願いします。
http://amzn.to/2cdUofH

ユニバーサルアームセット × 1

これじゃなくてもいいんですが、ネジとビスで作れるので作りやすいです
http://amzn.to/2cdSQSM

タクトスイッチ × 1

なくても全く問題ないです。しかし、玄関で鍵に手が伸ばせる状況にあっても直接開け閉めできないのであったほうが便利です。

http://amzn.to/2cdV70u

ハードの作り方

鍵を開閉する部分

ユニバーサルアームを使ってこのように作ってみました。
smartlock_base_1
土台は綿棒の蓋を使っているのですが、ドアにくっつきさえすればなんでもいいです。 タクトスイッチが写ってないですが、上の方につけておけば大丈夫です。88899900その際はジャンパーケーブルを使って配線の延長をしておいてくださいね。ちなみにタクトスイッチの構造と配線はこちらを参考にどうぞ!
http://raspi.seesaa.net/article/418174651.html 上記のサイトでの「配線する」という項目の中でGPIO25と書いてある配線を開発ボード側の何番ピンかにさしてもらえれば大丈夫です。

開発ボード側

サーボモータ、タクトスイッチともにただ線をさすだけです。 配線方法はこのサイトを参考にどうぞ。
http://marupeke296.com/EL_Ard_No9_ServoMotor.html
一応書いておくと、

サーボモータ
茶色GND
赤色5V
オレンジ2番
タクトスイッチ
どちらか片方3.3V
もう一方GNDと4番(途中で回路を挟んでください)

これで完成です。

ソフト側

ソフト側まずは、ArduinoIDEをインストールします。
https://www.arduino.cc/en/Main/Software
arduino_download
インストール後、ESP8266のボードをインストールします。
arduino_setting1Arduinoの環境設定から追加のボードマネージャーのURLに 「http://arduino.esp8266.com/stable/package_esp8266com_index.json」を追記します。
arduino_setting2
arduino_setting3
そして、インストール。

GitHubにプログラムを上げておきました。
https://github.com/0eta0/ESP8266_SmartLock.git
ダウンロード後、[Key.ino]ファイルを開いて、SSIDやパスワード、動作角度など適宜編集し開発ボードに書き込んでください。

動作確認

Arduino側に電源供給をすると、シリアルモニタに接続状態や接続できた場合はIPアドレスが表示されます。

・「IPアドレス/lock」をブラウザに打ち込んでみてください。

例:IPアドレスが192.168.0.1の場合
192.168.0.1/lock
と入力。

・タクトスイッチを押してみてください。

両方ともにサーボモータがキュイと動けば動作確認完了です。

smartlock_do

さらに拡張もできる!

今回はタクトスイッチのみでしたが開閉状態を示すために緑と赤のLEDを設置するとさらにスマートロックとしての機能をアップさせられます。
また、RasberrypiとHomeBridgeを使うことによって、Siriでコントロールすることも可能です。

そして冒頭でもお伝えしましたが、現在私が使っているものはRasberryPiと連携させドアの開閉だけでない機能をつけています。
それについてはのちのち書きたいと思います!

では、ありがとうございました!

-> IoTシリーズのまとめ

1 Comment

匿名

僕はものすごい初心者でプログラミングの自分で設定する場所がいまいちわかりません…
よければ変える場所を教えていただきたいです…

返信する

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください