[レジなし無人販売冷蔵庫] 磁気ロックとリレーモジュールでドアをロックする
1 はじめに
CX事業本部の平内(SIN)です。
Amazon Web Services ブログでは、「レジなし無人販売冷蔵庫を構築についての記事」が公開されています。
レジなし無人販売冷蔵庫を構築できる、This is my Smart Cooler プログラムを公開しました
こちらでは、「お客様自らがレジなし無人販売冷蔵庫を迅速に構築し学習や体験ができる This is my Smart Cooler プログラムを発表します。」ということで、そのレシピがGithubで公開されています。
レジ無し無人販売冷蔵庫 構築レシピ
「これを真似てみたい」ということで、ここまで作業を進めています。
今回は、電磁ロックとリレーモジュールについて確認してみました。
2 磁気ロック
使用しているのは、電気磁気ロック 60KG / 132lb NC 12V ドアエントリーアクセス制御システム用です。
Lock側から出ている赤黒の配線に、12Vを加えると、2つが接続します。
Plate側に、白い突起があるので、それをうまく接合させないと、しっかりと接続されないので、設置時には注意が必要そうです。
動作を確認している様子です。
3 リレーモジュール
下記は、二次側の抵抗を測定しながら、一次側を操作して動作を確認しているようすです。
二次側は、1つのリレーに対して3つの端子がありますが、真ん中を起点として、一次側をアースに落とした時に、ONになるかOFFになるかの違いがあります。今回は、2番目と3番目に接続してみました。
参考:https://tosadenshi.co.jp/pdf/relay_module.pdf
一次側では、VCCとGNDで5Vの電源を取り、制御したいリレー用の端子(IN1〜IN4)を短絡させることで動作させます。
なお、右側のJD-VCCとVCCの端子はジャンパーが必要です。
4 取り付け
磁気ロックは、冷蔵庫の下部に取り付けています。
Plate側は、しっかり接続できるように位置と高さの調整が必要です。
扉を締めた状態です。
5 コード
リレーを制御するコードは、簡単です。 ※ 制御ピンは、プルアップされている想定です。
import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) class SolenoidLock(): def __init__(self): self.__pin = 23 GPIO.setup(self.__pin, GPIO.OUT) self.lock() def lock(self): GPIO.output(self.__pin, GPIO.LOW) def unlock(self): GPIO.output(self.__pin, GPIO.HIGH)
6 最後に
電磁ロックの取り付けは、結構難しかったです。試行錯誤しましたが、小綺麗に纏めることはできませんでした。
「レジなし無人販売冷蔵庫」作成の作業の中で、これが一番難しいかも知れません・・・
後で気が付きましたが、リレーの使い方は、逆でした。常時ロック状態で、一時的にアンロックにするべきでした。(リレーモジュールの2次側端子の1番目と2番目を使用する)