DTU

GRUPPE6

41030 MECHATRONICS ENGINEERING DESIGN

High level understanding of the locker

An app has been developed to integrate the locker in the IoT. Nodred, MQTT and Arduino has been used to make a functioning prototype

It all works by sending information back and forth between the MCU and Nodered to keep them both "in the know" about what is going on. Mostly this is used to make sure one form of entry will be disabled by the other. When the user decides on which form of entry they will use they will communicate. Fx, if the user chooses to use the NFC sensor on the front of the locker, the NodeMCU will send a command, via MQTT, to the Nodered telling it that the locker has been RFID-locked. This is now displayed in the app so that future users can see that the locker is occupied.

If the user chooses to lock the locker using NodeRed, the MCU is notified, via MQTT, that the locker has been locked using Nodered. This will disable the NFC sensor on the device until the user logs into nodered again.

Furthermore some security features have been added so the locker wont remain closed forever. A janitor can come and open the door with a hardcoded NFC tag at any time.

If the door is not locked with either the NFC tag or Nodered the locker can be closed because of the secure fail mechanism of the lock. To combat this, a button has been put on the inside of the locker to detect if the locker has been physically shut or not. If the button detects a shut locker, and no current form of entry by an user, it will unlock the door.

Because of this button it is also possible to remind users to close the locker before leaving. While using the app, if the user fails to close the locker, the app will display a message reminding them to do it.

As a final failsafe a timer has been added. Whenever the locker is locked, regardless of the method used, a timer will begin counting down for 6 hours. After these 6 hours the locker will open and reset. This will reduce the effect of malicious use.

The MQTT, NodeRed and Arduino stack has been very helpful in developing a functioning prototype with an easy interface and UI. The powerful nature of JSON and C++ has been very helpful during development and seems very capable of controlling more advanced systems.