OrientIO : Connected Device for Orienteering
by EmmanuelS64 in Circuits > Gadgets
638 Views, 1 Favorites, 0 Comments
OrientIO : Connected Device for Orienteering
The purpose of this project is to make an orienteering bracelet, for an orienteering race.
Each group of project has 3 or 4 students.
There is a hardware part and a software.
Components
1 RFID sensor compatible with Marin H4102
1 accelerometer with fall detection system : three axes MMA8451
1 magnetometer : three axes SEN-12670
1 LCD display : monochromator display LCD RS801-1595
1 temperature and humidity sensor :HTU21D
1 ON/OFF switch
1 Sigfox module TD1208
1 1.2V battery (2000mAh)
1 battery holder
1 micro controleur (if you want)
1 GPS
1 Voltage regulator : Polulu 3.3V U1V11F3
and some switches for the human-computer interaction
You can use the micro controleur of the Sigfox or buy an other. We have choose to work on the micro controleur of the Sigfox module
Unit Test and PCB
In our project we decided to make several steps to be sure that everything will work together. First of all, we made an unit test for each component, to understand how everything works one by one.
Then we started to slowly integrate every component on a LABDEC board to make a global test between all the component.
During our test we realize that some component didn’t work together like the GPS device and the RFID tag reader, in order to correct this, we put a transistor between the TX communication of the RFID taf reader to shut down the communication when we are using the GPS device.
And finally, we have been able to implement all the component together on a LABDEC board. Everything worked together, we had the GPS device, the temperature and humidity sensor, the LCD screen, the magnetometer, the accelerometer and the RFID tag reader.
Before we finished the final test, we made a PCB card to implement everything on one card, instead of having a LABDEC board which is less convenient to carry. We did the PCB card with the KICAD software, after printing the card we wired all the component on the PCB board, on these pictures you can see red wire which is the top view of the PCB card, and the green wires is the bottom part of the PCB card, you also have a view of the schematic. And we made our final test.
State Machine
You can find, as follow, the state machine that we implemented in our bracelet. As we want to make a power saver bracelet, most of the time the baracelet is sleeping. We got 3 interrputs , 2 buttons, one for sending a SOS message with GPS coordinates, one in order to get ID from different rfid tags, and the third interrupt is generate by the accelerometer when it detects a double tap, it allows the user to display temperature, humidity and position for 10 seconds.
TD1208 Programming Process
We choose the TD1208 as our µC, we follow the tutorial of Telecom Design in order to get eclipse with the different libraries to develop on this device. As we didn't had any Jtag/SWD cable only a FTDI bus we were froced to use the Serial communication to program it with a little software named TDLoader. The problem with this programming process is that the serial communication is a little bit unstable and if only one bit is lost during communication the TD1208 get bricked and unusable. After some researches we saw that we can erase the memory and reflash it trough the a SWD port using a rapsberry pi (link here) .
The Cloud
In parallel of all these hardware and software work, we made on AWS web site a cloud. We followed this tutorial :
The first link to follow : http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest...
Then, when you finish this tutorial click on the second link : Tutorial: Create a Web Server and an Amazon RDS Database, read it and click on Step 1: Create an RDS DB Instance. Follow the instructions and link your Amazon RDS Database with your local base MySQL Workbench that you have created. For that follow this tutorial : https://aws.amazon.com/fr/getting-started/tutoria... Finally, go to Step 2: Create an EC2 Instance and Install a Web Server . It’s the end of the web page of step1
When, you finish all these tutorials you have finish the part of the AWS cloud.
Sending Sigfox Messages to AWS Backend
Now that the AWS is setted up and can host a full-fledged web server and database, we can use it to store our Sigfox messages.
In order to acomplish it we have to use Actoboard, the service used by Telecom Design Sigfox chips to harvest SigFox messages sent from the device (the TD1208). Actoboard act as a switchman as he decode and send to our backend the data. Here a schema to explain it's functionnalities.
To set up the forwarding in Actoboard you have change the Forwarding URL in settings and put there the DNS of your E2C VM.
The Web Site
And Finaly,
Once you are able to send messages from the Sigfox module to your backend you can program your server in order to receive thoose messages and be able to use the data that you store in the database.
While we let you free in your database construction we will provide you an insight of how we build our web app.
We build a frontend app with the help of Angular JS framework. That frontend connect to an API written in PHP (not the best choice but one of fastest to develope). The api have multiple endpoints one of witch is used to send data from Actoboard to the database and others used to serve data to the frontend. Here is a schemas of communication between the backend and the frontend and the Sigfox module.
We have and example for you of our app right here: