We, Benoot Sven, Staelens Lennert and Dujardin Laurens, had to make a project for school. We had to work together with a student from IPO (Industrial Product Design). He came up with the idea to make a smart motorcycle helmet. He made the design of the helmet and we had to make an application to work with this smart-helmet. So we started to do...
The parts we needed for this project are:
- a Arduino Uno
- jumper wires
- Bluetooth module (low energy not compatible)
You can check it out in the BoM that i linked down here. For the rest of the instructable, i'll be explaining you how you can recreate this project.
Step 1: Product Information
The helmet is build for motorbike riders who wants to improve their experience. The app provides a more enjoyable experience both on and off the motorcycle. The app exists out of functions you can use with your helmet, but also a kind of game-ification which makes it real nicer to motorcycle.
Step 2: Fritzing
So, first of all we received a Fritzing scheme from the IPO student, because you have to know how your parts work properly.
On these pictures you can see which pin of the part, should be connected to which pin on the Arduino UNO. If you let someone check your fritzing scheme, who knows alot about this subject, you won't make any crucial mistakes which can be fatal for your project.
Step 3: Normalized Database Structure
For the normalized database structure, you first of all have to make a preliminary study. Here you can brainstorm on what data you need and on how your project will be working.
After u did the preliminary study, you can go on making the normalized database structure itself. First of all you need an User table to store the accounts that are made onto the app. Now you can connect all other tables to the User table, so you can store account specific items. The account specific items in this app are a Bucketlist, Friends and Pins you can place on the map.
Step 4: Azure Functions
In our application we use Azure Functions to make connection with the database. With azure functions you can get all the data out of the database and also insert data into the database. We used this function alot, cause it is super handy and it is not that hard to write (if you have a little foreknowledge ofcourse). Some examples of azure functions we used are a CheckLogin, this checks if the value you entered in the login page (username and password) are correct to the value in the database, if not, you can not log in. Example of the code you can see above. Another example of azure functions we used is to add a pin, you want to display on the map in the app, in the database. Example of the code, you can see above.
Step 5: Application
The biggest part of this project was to make the app. Above you can see all screens of the app in their order of how to acces them. The login page, is as I said before connected to the database. You can only log in if your username and password are in the database. The next screen is the bluetooth page, here you can make connection with the bluetooth module that is inside the helmet. you can also skip the bluetooth page, but this way you can't acces all the screens on the overview page, some of them dissapear. On the overview page you can acces all other pages, like the map page, friends page, bucket page, light page, speeds page and directions page. By looking at all the screenshots you can see what you can do on these page, for example on the light page you can turn on the lights of the motorhelmet. At the directions page you can receive directions from where you want to where you want. Also, the output you get on the directions page, is also shown on the little OLED that is attached to the helmet.
Step 6: End Product
Now the app is connected to the helmet and the product is fully working. Here are some images of how it looks like. Hope you enjoyed reading!
I hope everything was clear and good and that this post helped u alot.
Have a good time recreating my project!
Members of this project:
- Benoot Sven
- Staelens Lennert
- Dujardin Laurens
Studying New Media and Communication Technology at HOWEST Kortrijk, Belgium.