IoT Central Homepage
Device Page: Condition Monitoring
Workflow of Project
The inspiration for the project is the open market opportunity for a new method of transportation: Bike Sharing! Both Ian and Sirada are from Vancouver, a city abundant with bike lanes which is situated in a mild temperate climate, enabling biking to be a viable mode of transporation yearlong. CryptoBike plans to capitalize on this opportunity by offering a secure IoT solution to the bike sharing market.
What it does
CryptoBike is a service that allows bike owners to rent out their bikes remotely by attaching a simple device to their bike lock. The owners and borrowers interact through a Web Application that allows them to communicte pricing, duration of bike loan etc. A dynamic RFID code is sent to the borrower from the owner after cryptographical encryption. The bike is also equiped with condition and location monitoring sensors that reports information to the owner through the IoT.
How we built it
The web app is hosted on Microsoft Azure and is built on Node.js and Azure SQL Database. The IoT bike lock attachment is built with an Arduino Uno and RC522-RFID which interfaces with a Raspberry Pi connected to the cloud as well as the Microsoft Azure MXChip IoT DevKit which interfactes with the cloud.
Challenges we ran into
Communication between the 3 different boards were quite difficult to configure considering they are produced by 3 different companies. The set up for the DevKit was a little difficult due to the WiFi limitations. In addition, we were unfamiliar with Node.js and had to develop an understanding of the Azure stack in a very constrained period of time.
Accomplishments that we're proud of
Accomplishing a multi-stage connection with the RFID->Arduino->Pi->Cloud Server.
What we learned
Learnt a lot about integrated hardware and firmware with software and the connectivity technologies behind the integration.
What's next for CryptoBike
Implementing a payment API that allows prices to be dynamic and calculated depending on usage time. Developing bike module that pings CryptoLock at regular intervals and emits alarm if: -loses connection for 3 consecutive pings (prevents bike from being separated from lock) -CryptoLock returns ping informing it has been tampered with or broken (alarm would be transferred from CryptoLock to bike module)