Introduction: Orienteering Race Bracelet
Have you ever try to go to the next level of orienteering ? Have all the information needed in hand ? Here you'll see how we improved a great activity with technology.
We are going to create a bracelet of orientation that will give you a lot of information, and allows you a lot of functionnality, like :
- The temperature and the humidity of the weather
- The compass
- The position where you are with GPS information
- The detection of any fall
- A RFID lector
- A SOS button
- Send all datas to the cloud
All you have to do is follow this tutorial step by step, so let's get started !
Note : This project has been held by an Embedded system specualization from Polytech Paris-UPMC.
Step 1: Material Needed
This is the list of material you need to get to build this instrument :
- GPS Groove
- Regulator Pololu Regulator U1V11F5
- Converter 0,5V -> 5V
- RFID Marin H4102
- Accelerometer ADXL335
- Compass : 3 axis module HMC5883L
- LCD screen : gotronic 31066
- DHT11: Temperature and humidity sensor
- Button for SOS
- Sigfox Module
- Battery support + battery LR06 1.2v 2000 mAh
- Microcontroller : MBED Board LPC1768
Now as we have all our furnitures, we can go to the next step.
Step 2: Programming DHT11 Sensor
1. Put a 4K7 Resistor between VCC and the data pin of the DHT11
2. Link the green cable to the Pin where you want to get data (here it is D4 pin of NUCLEO L476RG)
3. The Board should ne connected to 3V3 alimentation (Red) and the ground (Black)
4; Use a serial connection on the pin A0 of the NUCLEO L476RG to see the data
5. Use the MBED environment to compile the code (Cf. photo)
The complete main.c is available on attachment file
Step 3: Programming the HMC5883L Sensor
1. For the HMC5883L you can take the same alimentation than before.
2. On the board NUCLEOL476RG, you have two Pin named SCL and SDA
3. Link the SCL of the HMC5883L to the SCL pin of the NUCLEO Board.
4. Link the SDA of the HMC5883L to the SCL pin of the NUCLEO Board.
The complete main.cpp is available on attachment file.
Step 4: Programming the Accelerometer ADXL335
1. Like the steps before, you can use the same alimentation (3V3 and ground).
2. On MBED interface, use three different input declared as "analogin"
3. Call them InputX, InputY, and InputZ.
4. Then associate them with three pin of your choice (here we use respectively use PC_0, PC_1, and PB_1)
A0 Pin still the port where all the data are transmitting.
The complete main.cpp is available on attachment file
Step 5: Programming the RFID Tag
1. Use the same alimentation
2. On the microcontroller, use two PIN available for connect the RX/TX RFID sensor (here it is D8 and D9 on the NUCLEO L476RG)
3. On MBED, don't forget to declare PINs (here it is PA_9 & PA_10)
The complete main.cpp is available on attachment file
Step 6: Programming the GPS Groove
1. You can use the same alimentation here (3V3 and Ground)
2. Use only the transmission of the GPS and connect it on the microcontroller.
3. Then you have to cut the data for using relevant data, like DMS and the time.
The complete main.cpp is available on the attachment file.
Step 7: Sending Data on Actoboard
1. For all variables use for Actoboard, we have to convert it all in "int" type.
2. On the MBED compiler, use the following characters on a "printf": "AT$SS : %x, name of the variable you want to send on actoboard".
3. The variable need to be in Hexadecimal form, like XX. A value < FF (255 in decimal) doesn't match, that's why we use only the first three characters for the RFID.
4. Create an account on Actoboard.
Step 8: Sigfox Module
1. Connect the sgfox module on the microcontroller.
2. Use the actoboard pass and the corresponding modem for receive datas on actoboard, thanks to the sigfox module.
Step 9: Sending Data on Cloud
1. Create a Bluemix account and create a NodeRed application "Bracelet" on the cloud by using Cloudant configuration.
2. Connect the Actoboard data to the NodeRed application on the Cloud via the Actoboard URL and POST it.
3. Implement the NodeRed application with the collected data sensors received by actoboard and sent to the NodeRed application.
4.Create a item to display the received data for all the sensors. for example "Database°1".
5. Configure a Geospatial item to display the GPS coordinates on the application map by using JSON programming language.
Step 10: Main.cpp
Here is the main.cpp + the gps.h which is make by us because the function GPS was too long.