スマートホームに向けて32:スマートロックを使わない NFC

スマートロックのようやく、iFTTTで問題無く利用できてきたが
妻の要望、物理キーを使わないようにしたい。

SuicaでSESAME(セサミ)を解錠 【ラズパイ】
https://jp.candyhouse.co/blogs/how-to/suica%E3%81%A7%E3%82%BB%E3%82%B5%E3%83%9F%E3%82%92%E8%A7%A3%E9%8C%A0-with-%E3%83%A9%E3%82%BA%E3%83%91%E3%82%A4

これは、結構素晴らしい。これを、参考に妄想していたが
利用していると、結構遅延が有ることが増えてきた。
というのも、IFTTTアプリバックグランドで稼働してない場合は
15分毎らしく
ドアの施錠に向いてない。
スリープでなければ問題ない。
家の近くで、スマートフォンがスリープで無い事が求められる。

IFTTTのLine ビーコンも想定できるが、やっぱりカードなどで施錠したい。
そこでだ、ラズパイは、稼働には、1A-2.4A程度のACアダプタと非常に高度なモジュールを利用する。
電力もさることながら、設置も苦労する。
ラズペリーパイ、NFCリーダのRC-S380が必須となる。
これだけでも、1万円はくだらない。
その上、スイカが必要となる。
NFCが、sonyだからであるが
敷居が非常に高いため、別な製品を選択した。
とりあえず、探し出して注文した製品がようやく到着した。

基本的には、ピンコンパチなので良いが、ドライバーの相性からCP2102を選択。
CH340 は、面倒だと聞いたので今回は選択しなかった。

ESP8266 NodeMCU CP2102

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

<ESP>NODEMCU ESP8266(CP2102)V3 互換品<icd-055>
価格:1230円(税込、送料別) (2019/6/29時点)


楽天で購入

 

それと、NFC モジュール RC522
カードとキーホルダーが付いたもの
これで、2つは、利用できる。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Mifare RC522モジュールRFIDリーダー
価格:1833円(税込、送料別) (2019/6/29時点)


楽天で購入

 

ブレッドボード
組み立てチェックに最適なので
最小で構わない

 

 

ブレッドボード・ジャンパーワイヤー
どこにでも使えるので購入する。
設置について考察しながら後に考えようと思う。
要は、現実可能かどうか程度をチェック

これで完了だ。
合計、1000円ほどだった。
それに、物理キーの増設や、タグシールなどにも応用したくて

これと、

利用できそうな製品を購入。
モジュールが、汎用なので、汎用製品だけ利用できると考えたほうが良い。

まず準備
モジュールに、プログラム送るソフト
Arduino IDE
https://www.arduino.cc/en/Main/Software#
SnapCrab_NoName_2019-6-28_22-46-46_No-00

無難な、Windows Installer, for Windows XP and upを導入。
SnapCrab_NoName_2019-6-28_22-46-56_No-00

このソフトは、無料だが、寄付はウェルカムなので協力しましょう。

ダウンロード後、インストール。
SnapCrab_NoName_2019-6-28_22-49-32_No-00

次に、モジュールとボードと書き込みドライバーが登録されてい無いのでそれぞれ導入する。
ライブラリマネージャで、mfrc522をフィルタするとインストールが出るのでインストール
SnapCrab_NoName_2019-6-28_22-56-9_No-00

ボードは、ツールー環境設定に
http://arduino.esp8266.com/stable/package_esp8266com_index.json
を入れる。
書き込みドライバーも入れておく。
http://digistump.com/package_digistump_index.json
次に、ツール-ボードマネージャでNodeMCU 1.0を選択。
これで準備完了。
後は、配線だ。
001

後は、スケッチ(ソース)に以下を入力
——————————————————————————-

#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN         3          // Configurable, see typical pin layout above
#define SS_PIN          4         // Configurable, see typical pin layout above

MFRC522 mfrc522(SS_PIN, RST_PIN);  // Create MFRC522 instance

void setup() {
Serial.begin(9600);   // Initialize serial communications with the PC
while (!Serial);    // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
SPI.begin();      // Init SPI bus
mfrc522.PCD_Init();   // Init MFRC522
delay(4);       // Optional delay. Some board do need more time after init to be ready, see Readme
mfrc522.PCD_DumpVersionToSerial();  // Show details of PCD – MFRC522 Card Reader details
Serial.println(F(“Scan PICC to see UID, SAK, type, and data blocks…”));
}

void loop() {
// Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle.
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}

// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}

// Dump debug info about the card; PICC_HaltA() is automatically called
mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}


次に、検証、コンパイルしてから、次に書き込み。
P_20190629_010249 P_20190629_010304 P_20190629_010317

こんな感じで接続して、書き込む。
正常に書き込まれればエラーが発生しない。
ツールのシリアルプモニターを見ながら、タグを当てると表示されるので成功だ、

SnapCrab_NoName_2019-6-29_2-11-31_No-00 SnapCrab_NoName_2019-6-29_2-13-3_No-00

open TAGも、読み取れるも確認できた。

ようやく完成までこぎつけた。
あとは、webサービスだけ