This uses Arduino Uno Digital pins 3 and 4. It also uses the 3V and GND pins on the arduino. We have successfully connected the fingerprint sensor and are using the included Adafruit Finger Print Sensor Library. The library comes with demo code that has enrolling a fingerprint and verifying the a fingerprint or identifying it as unknown.
Currently halfway through writing code to have methods that execute depending on the fingerprint read: (if enrolled, and a good candidate, if enrolled and a restricted candidate, or if not enrolled). The code is still being written.
Mini Push Pull Solenoid
Will be using an digital output pin. In a resting state, the pin would be set to HIGH so that the pin would be retracted and the button not pushed, then when a valid signal is received, the pin would be set to LOW briefly so that the button could be pushed.
All of this can be done with the default library because it is fairly simple.
After running some tests with code and connected to the breadboard, we have concluded that we need to scrap this piece of hardware and find something new. The solenoid's spring is not strong enough to push anything we want to push. We expected the solenoid to be a controlled force, which it isn't. It's an inductor that transforms the electric energy of the circuit into potential energy built up in the spring. In this case, it is not sufficient for our needs. We will either need a stronger solenoid or a motor.
Arduino w/ Wifi
Have not learned all of the possible utilities of Arduino w/ Wifi as of 4/11/18 when writing the report. Still thinking of unique and and creative ways of utilizing communication with website or app(emails, notifications, etc).
LCD/Neopixel Ring
Would be using the digital output pin as well as receiving power from the arduino's 5v pin. From this pin, we will be controlling the color and which LEDs we want on at any given time. The goal is to have the color vary based on the status of the device, for example, blue would mean that an action is in progress, green would mean that a valid fingerprint has been read and red can indicate that an invalid input was received.
For this, we will be using the adafruit library that we used in class. A lot of the code we will be using for this part of the project will be recycled code, the only difference is what triggers the display of light.
We have been able to get the neopixel to look the way we intended. The only thing we haven't tried yet is triggering specific light patterns based on responses from the Fingerprint sensor, but we will be doing that next week when we start putting things together.
WEEKs OF April 13TH - APRIL 26TH
COMPLETED:
Fingerprint sensing on Arduino side
Able to accurately read fingerprints enrolled on the on-board memory of the Adafruit Finger Print Sensor
Deny fingerprints not enrolled on the on-board memory
Uses modified code from the Adafruit Library
Hardware for Pushing the Button
After discussion, switched from a solenoid to a servo motor that seems like it would likely be suitable for project
Able to use a transistor to short the power on circuit of a device if necessary
Sketch to Communicate between Components
Able to trigger the servo using a verified fingerprint read from the finger print sensor
Has corresponding UI from LED NeoPixel to show status of fingerprint reading
NEED TO DO:
3D Printing:(One week after consulting with instructors)
Design and produce appropriate 3d printed items for project:
Attachment for servo to better push a button
A case to house our unit to be attached to the device intended to be powered on ( A PC)
Wi-fi:(One week in time to debug before presentation)
Have the Arduino communicate with a cloud service to potentially update a website or send an email.
Use Blynk to send signal to Arduino and vice versa to allow for mobile and remote control
If time permits: Communication with Distance Sensor
Utilize a distance sensor maybe in certain time spans (12PM-7PM) When we know we will definitely use the PC to auto turn it on then
Roadblocks and tips
Solenoid not being able to push our button
Shortly after starting to use the solenoid, we realized that we would have to scrap the idea of using a solenoid to push a button because the one that we had was not able to apply sufficient force to push a button
The only solution for this problem we could think of was replacing the solenoid pusher with a servo and a 3D printed part
A tip we learned from this is that when wanting to exert a force, it is usually better to use a servo or motor. A solenoid should be used when wanting to have a pulling force.
media:
IMG_0671.MOV
(use enrolled thumb twice, then switch to un-enrolled thumb)
Full setup (Bad state)
IMG_4361.MOV
(sensor detecting a non-enrolled finger and showing it with NP ring)