Our two sub-groups have finally gathered to make a IoT smart locker, what follows is the summary of our two initial meetings and our division of labor so far. What we want is a lock that can be interacted with by either an online app or a RFID of for example a DTU student card, to lock the cabinet for X hours. The state of the locker should then be displayed on an OLED user interface, that idles on a weather forecast.
User scenario:
The user approaches the open locker to drop off an item. She is greeted by a green light next to the little OLED display, that informs her of two options for identifying herself:
Either she can scan the QR code on the locker, to be taken to an app that allows her to enter her email and a password of her choice, or she can swipe her student ID card - or any RFID card - to the scanner, before closing the door of the locker.
The OLED display will remind the user of the limited time of the service, displaying the time at which the locker will automatically open for a few minutes, so she is reminded to retrieve her belongings before that.
Now, when she does return, she can unlock the locker by her method of choosing. Either re-swiping the card, or unlocking through the app. If the user chooses the app option, the janitors key is the only RFID chip that will be approved by the locker.
Translation into functionality:
To get things going, we met up on Zoom to make a general sketch of the functionality we need, so we could start work on the individual sub-features, with an idea of what we need from each other to make everything work together in the end. We wanted an idea of what interface variables that will tie together, in an attempt to sidestep major headaches down the road.
On the subject of headaches: Having discovered that our lock is unworkable, either due to a power supply with insufficient amperage, or possibly due to an insufficient relay(?) we are forced to black-box this part of the system for now - replacing it with an LED that goes red or green to symbolize the locked and unlocked state.
Pieces of the puzzle:
This leaves us with three distinct pieces of functionality needed for a full picture:
First, we need an OLED display that apart from displaying the weather forecast on idle, is capable of giving the user prompts for usage as well as feedback, assuring the user that her things are working, or if not, why not. The weather forecast code from previous nodeRed exercises are adapted for the idle screen, using the NodeMCU module.
Second, we need an online authentication system for working the lock. This is achieved through a web app facilitated by the nodeRed connection, we need the page to display the state of the locker as well as provide an option to lock/unlock it with a password of the users choosing. The user will have the option to receive an email reminder of the reservation, duration and locker number. Once the system has the necessary information, a "locked" state will be sent to the arduino, that instructs the - for now hypothetical - lock to do its thing.
Third, an RFID reader will be instructed to listen for UID's when the locker is not in use. Recieving a card, it will initiate the locked state and remember the card. When the remembered card or the maintenance chip key is presented within the reservation period, the locker will open.
Additionally, we would like a button built into the door frame, that checks whether or not the door is open to avoid an open-door reservation by an absent minded user.
Progress has been made on all three core features, new posts coming soon!