While IoT projects were buzzing all around, I decided to make one and came up with Nucleus.It's a Smart lock based on Internet of things(IoT) built on Arduino uno and Ethernet shield.It can be accessed by a Key and internet through Software interface built in Java.There are many Electronic locks available in Market ,but they are Expensive as they use Fingerprints, RFID card, Keypad (Password) as Key. I've used an I2C EEPROM as key which hardly costs 15 Cents resulting in an Inexpensive Key.Thus Nucleus can be Inexpensive as compared to other Electronics locks.As Nucleus is IoT lock,you can access it anywhere in the world if you are online.I will also develop Mobile apps to access the Nucleus though Mobile.Thanks to Thingspeak.com for providing free IoT services.Here's a snapshot of my project..
Let's see what the project is made up of..
Image source: www.arduino.cc
Arduino Uno is do-it-yourself kit with AVR Atmega328P Microcontroller which can be programmed through IDE provided by Arduino and Codebender. Its simple to use as there are many Libraries available online useful to interface different sensors and devices to Ardiono Uno.Learn more here.
Ethernet shield is built on Winzet W5100 which provides a network (IP) stack capable of both TCP and UDP. It connects Arduino Uno to internet.I've used a MEGA Compatible Ethernet shield in Nucleus which is similar to Arduino's Ethernet Shield. In Nucleus,Arduino Uno interfaced with Ethernet shield acts as Webclient.The Ethernet shield also has SD card slot to store and retrieve data from Micro SD card.
I've used IC 24C32 as key.It is a Serial CMOS EEPROM that uses I2C Protocol to communicate with Micro-controller.It's a 8 Pin DIP IC. There is a post in Arduino Play ground regarding interfacing 24C32 with Arduino Uno.
L293D is motor driver IC .I've used it to connect Motor to Arduino Uno.It's a 16-pin DIP IC.It has capability to control two Motors at time. Engineer's Garage has got nice post regarding L293D.It has internal buffers which protect the circuit from back EMF of motor and avoid power loading.
Apart from the above parts, I've used a Geared Motor, Buttons, LED's , Connecting wires and Breadboard.
Nucleus can be unlocked/locked by Multiple Authorized Keys and Software over Internet.
Owner can Add or Remove Keys through Software.
The Software displays logs regarding the access of lock.
The Software show the status of Key add request.
Circuit designed in fritzingActual Circuit:
I have illustrated the working of Nucleus below.
Locking/Unlocking with Key
Nucleus can be Personally accessed with a key.The key is a 8 pin IC.Its part number is 24C32 and it's a I2C EEPROM .The key is first inserted in breadboard for Authentication and if passed,Nucleus can be Locked/Unlocked,else rejected.The LEDs help to indicate the status of Nucleus.Blinking of Blue LED indicates that Nucleus is online.Blinking of Green LED indicates the the Locking/Unlocking of Nucleus and Red Led indicates the Rejection of Key.I have Illustrated the process of Locking/Unlocking the Nucleus with a key in following video.
Locking/Unlocking Through Software
Nucleus can be Accessed remotely through its Software over internet.This is the part where IoT comes in action.With the power of internet,You can access and know the status of nucleus from any corner of world.Its means that you can Lock and Unlock your Nucleus from any where in the world if you have it at your home.The Software has many more features like Logs,Adding New keys etc.In the following video,I've show the access of Nucleus through Software over Internet.
Adding a New Key
You can add new keys to Nucleus.This is another Powerful feature of Nucleus which Differentiates it from Conventional Locks.If you want your friends or relatives to be able to access your Nucleus with their Lock,Simply Add new key in Software and then insert their key in Nucleus and its get added.Now they can Lock/Unlock your Nucleus with their key.Maximum five keys can be assigned to Nucleus.I've illustrated this process in following video.
Removing a Key
If you want to Invalidate or remove one of assigned keys,just go to keys tab and click on the key you want to remove.it then gets removed and that key will no longer be able to access Nucleus unless it's added again.You cannot remove all the keys, atleast one key must be assigned to Nucleus.I've illustrated the complete process in following video
The Software displays the logs in Logs tab.Here you can see the details regarding the access of Nucleus.The details include the Time of Locking / Unlocking and the Mode i.e Key or Software.You can also jump to particular date and see the details of that day.I've Illustrated this in following video where I've show a update to logs when Nucleus is Unlocked Through software.I've also show how to view details of particular date in past.
Anti-Clone Technology is employed to minimize the use of cloned keys.Whenever a Authentic key is inserted in Nucleus,a new Session Id Pin is stored in that Key.That key can access nucleus next time only if the previous Session Id matches the one stored in key.Then a new Session Id is stored in key.Now if someone tries to clone the key,he/she can copy only present data in cloned-key,and if it is used in future to access Nucleus,most probably,it will not contain the new Session Id required and will not be able to access Nucleus.This is how Anti-Clone technology works.
Nucleus-The Smart Lock is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.