Using the Arduino compatible Maixduino with Seeed’s Grove connectors and code to build a multi-factor user authentication system.
Currently the project uses speech recognition, gesture recognition and an RFID tag. Later I intend to add face detection so the authentication sequence only starts when someone is in front of the device.
The system works as follows:
- System activated by movement sensor
- Waits for gesture sequence from gesture sensor
- If gesture correct, waits for voice password
- If voice correct, waits for RFID tag number
- If RFID tag is correct, the system grants access
Seeed sent me the Maixduino with the shield and a PIR sensor, motion sensor and RFID reader for this project. The Maixduino comes with a camera, microphone and an LCD panel. I was impressed with how easy the Grove connectors make it to quickly assemble a project like this. The quality of the documentation and code samples on Seeed’s website for this system is much higher than I’m used to seeing from other electronics suppliers.
I used the Arduino IDE for this project. Installation instructions to add the Maixduino to the IDE are here: https://maixduino.sipeed.com/en/get_started/install.html
If you want to use the speech recognition with your own words there is an example sketch at File > Examples > Examples for Sipeed > get_voice_model. Upload this sketch and open the serial monitor. Follow the instructions to speak and then copy and paste the code into the voice_model.h file. You can see which section of code to paste in this video: https://youtu.be/i5DQSper7GA?t=46
At moment there appears to be a bug somewhere in the speech and LCD libraries that slows down the display to a crawl when this part has run. You can see this in the video below:
The code is available from here: https://github.com/robotzero1/maixduino-multiauth