Introduction: IoT : Androino Doorlock
Do you ever leave your key under doormat or other hidden place so another family member can open the door?
or when you arrive at your office and realize your door hasn't been locked.
what if another person open your door using the key that you leave.
That's not safe.
Androino Doorlock have the solution.
you can lock and unlock your door using RFID card or your Android.
Just install the app in your android, so you can check your door condition and you can lock or unlock your door whenever and wherever you are.
what you need is:
Hardware:
- NodeMCU v3 Lolin (ESP8266 module)
- RC522 (RFID module)
- Relay module
- Selenoid Doorlock
- Power Supply 12V
- LM2596 (DC-DC converter module)
- Jumper Cable
- USB to microUSB cable
- Android Smartphone
Software:
- Arduino
- NodeMCU Flasher Master
- Notepad ++
- FileZilla
- Browser
Step 1: Connect and Flash NodeMCU V3
If you already install driver and flashing NodeMCU just skip this step, otherwise you should read this step to get things ready.
If you are using NodeMCU v3, you must install CH340 Driver.
Open link and click download, you should get zip file. Extract file and run the setup.exe and simply click install.
Check your device manager to assure your NodeMCU is connected.
After you can see NodeMCU in device manager download NodeMCU Flasher Master from GitHub.
Open NodeMCU Flasher Master, set the NodeMCU port and just click flash.
Step 2: Wiring
Connect NodeMCU with RC522 module.
RC522======>NodeMCU
SS======>GPIO16
SCK======>GPIO14
MOSI======>GPIO13
RST======>RST
VCC======>3.3
GND======>GND
i have read so many tutorial about how to connect RC522 to NodeMCU. Many of them connect RST pin of RC522 to to GPIO pin, but after i try RFID wont read any card, so i move the jumper to RST rather than GPIO pin.
After that connect relay module to another available GPIO in this case i use GPIO5.
Step 3: Get Your Own Domain
In this tutorial i use 000webhost as a server for Androino Doorlock.
If you already have your own domain you can also use your domain as a server.
Download Notepad++ and write this code
<? php $var1=$_GET["variable1"]; $api=$_GET["api_key"]; $api_key_var="ZXC321ASD"; if(!strcmp($api_key_var,$api)) { $fileContent ="Variable1=".$var1."\r"; $fileStatus= file_put_contents('web.html',$fileContent); if($fileStatus!=false) { echo "Success: data written to file \n\r"; } else { echo "Fail: try again \n\r"; } } else { echo "Fail: wrong api key \n\r"; } ? >
Then save it to YourFileName.php.
After that open FileZilla then login to the server, then upload YourFileName.php to your website.
The API key is up to you, i just randomly write the API key.
$var1=$_GET["variable1"]; this syntax is to get value from entered link
the program will search what value after text variable1 and store it to variable "var1".
this program is case sensitive.
example:
if we enter this link in our browser
yourweb.com/YourFileName.php?variable1=100 -----> var1 value is 100.
yourweb.com/YourFileName.php?variable1=3 -----> var1 value is 3.
yourweb.com/YourFileName.php?variablE1=100 -----> var1 value is empty.
-------------------------------------------------------------------------------------------------------
after variable var1 get the value, then php file will generate file in this case web.html
you should see web.html in your FileZilla if the file succesfully generated.
the content of web.html is depend from this syntax:
$fileContent ="Variable1=".$var1."\r";
so if you call this link yourweb.com/YourFileName.php?variable1=3
then this link yourweb.com/web.html
your should see Variable1=3
Step 4: AppInventor
Open AppInventor, Make new project and write name of your project (this will be your app name).
after you create project you will see designer page, all you need is:
- Label x2
- Button x1
- Canvas x1
- ImageSprite x2
- Web x2
- Clock x1
After that upload lock and unlock image, you can download from file below.
Designer setting:
- Canvas
- Width : 100 %
- Height : 50%
- Image Sprite
- X: 50
- Y: 0
Then go to block and follow the picture above.
Attachments
Step 5: Program + Testing
Make sure you has downloaded ESP8266 Board and RC522 library.
i use NodeMCU 1.0 (ESP-12E Module), 80Mhz, 115200, 4M.
download the program below and upload it to NodeMCU.
Thanks for your attention.
write in the comment if you want to ask.
Vote Me... :)