Four Months ago, I had my bike stolen. If you've ever experienced this, it really does suck. I spent a while looking at different ways to attack the problem, but most of my efforts were focused on something that attached to the bike. There are many problems with this, mainly dealing with how to power it.
I came to the realization that instead of making a better bike lock, it would be more effective to make a better bike rack.
What it does
Our bike rack has two main components that the user interacts with: a quarter inch cable and a Adafruit TFT LCD touch screen. When a user wants to lock his or her bike, they use their normal lock, and then they take our cable attached to the rack and loop it through their frame before plugging it back into the rack. Our rack then establishes a connection through this cable and starts monitoring it. The user enters a 4 digit PIN code, followed by a phone number and can go on their way.
In the event that a thief tries to steal the bike, they will have to cut through the cable or tamper with it in some way, which triggers several protocols simultaneously. First, alarms and lights get triggered in the rack, hopefully scaring the thief away. Next, building security is notified by a simple relay and, finally, a text is sent to the bike's owner through Twilio alerting them of suspicious activity. The Raspberry Pi is connected to a webcam, which, at the moment of disruption, takes a picture of the wannabe bike crook.
If no bike bandits come around, the system can be deactivated with the PIN, and the user can go on their merry way.
How we built it
We mocked up a full size rack for one bike using the lasercutters available. We then created different parts of the design on a raspberry pi, an Arduino Mini, and an Arduino Leonardo. The Leonardo handles the touch screen keypad, the Mini monitors the cable for a break or any tampering, and the raspberry pi handles the twilio API calls.
Challenges we ran into
Initially, we planned to utilize some ESP8266s we had bought online. Or so we thought. Turns out, the knockoffs we ordered from amazon were not even close to the same product, though they looked almost identical. They were actually bluetooth modules which were much less useful to us, so we proceeded with Bike tRack using a Raspberry Pi and Wifi dongle.
Another challenge we ran into was interfacing the keypad/arduino with the Pi. Getting serial across was never as easy as we hoped it to be.
Accomplishments that we are proud of
We created a complex circuit to not only monitor breakages in the cable, but was also able to monitor any tampering that might change the resistance. Using a Wheatstone Bridge and differential amplifier, we were able to monitor very slight changes in resistance of the lock cable and amplify these very small but sudden changes. This means that even a smart thief couldn't work through the system.
What we learned
Touch screens can be flaky, the Raspberry Pi can only supply a very small amount of current, and Arduinos don't work well as I2C slaves with too much code overhead.