The main objective of this project is to develop a device able to detect and characterize earthquakes. Our goal is to send the collected data to a Human Machine Interface on a web application. This exercise is part of the Embedded Systems course at the graduate engineering school, Polytech Sorbonne. The main actors in this project are Mr. Yann Douze, head of the speciality and sponsor of the project, as well as Mr. Julien Thiesson and Mr. Ludovic Bodet, researchers at UMR METIS. Both Mr Thiesson and Mr Bodet provided us with support and expertise throughout the project.Motivations
Earthquakes are among the most devastating natural disasters, casualties peak up to 300,000 people a year. It is therefore very important to be able to detect earthquakes as quickly as possible when they occur, but also to be able to study them by collecting as much information as possible. Around 100 stations in France are dedicated to earthquake detection, but their measurements must be analyzed before confirmation, which is only done on working days. We can therefore say that earthquake detection is not done in real time in France. Our project, named EarthPod, is capable of reacting very quickly when a tremor occurs. It then characterizes the disturbance and analyzes its level of dangerousness by placing it in a category (Calm - Weak - Medium - Strong). In addition, our system measures the ground acceleration during the shaking, and returns the average acceleration. We could therefore collaborate with scientific laboratories specializing in the study of earthquakes, or geological activities in general, to enable them to benefit from the data collected.Hardware configuration
Our system is supported by two separate printed circuits. We have on the left the circuit managing the power supply, and on the right the one allowing to manage the controller and our different sensors. The two circuits are connected by wires providing power and battery level.Software Behaviour
The system behaviour is quite simple : as long as it does not detect a jolt, the system remains asleep, it saves its energy. When a vibration occurs, our ST059 sensor sends an interrupt that wakes up the central controller, which triggers a series of 6 measurements of 10 seconds each. The purpose of these measurements is to determine the averages of the vibrations' intensity during measurement time. After each measurement, we send the results to our platform so that we can format the assessments made. After 60 seconds, the system returns to sleep mode.Printed Circuit Board (PCB)
We designed two PCBs thanks to the Kicad software. One for the power supply and one for the controller and the sensors.
In order to fulfil that goal, there are a few steps to follow.
The first thing to do is to create the circuit diagram using Eeschema. Many libraries are available online. However, some of the components we use are not available. The link to the components we created can be found below. Secondly, the components need to be associated with a footprint (the size and shape of the component). Once again we had to create some of the footprints. Then comes the tricky part of the job : using PCB view to root our diagram. During this part, you need to place the components and link them.
If you do not wish to do all that, we provide you the gerber files needed to print the two boards. Beware, if you choose that option, note that the thinner paths used are 5 mm's long and the board is engraved on one side only.Sigfox Backend
To send the data to the Ubidots platform, the EarthPod uses a Sigfox module with a patch antenna. However, the transmission is not direct and every message needs to be rerouted to the appropriate address. To do that, we use the Backend Sigfox. It allows us to write a “call-back” function where we indicate the URL of our platform. We also use the data sent by the device to write a JSON message specifying each value’s name. The first picture details how we configured our callback.
DATA UPLINK URL : we transmit data using the URL of the destined platform,
Custom payload config : we indicate the size and the type of our custom variables, we use the POST method since we're sending a message and finally, we write a JSON file containing each value.
The call-back is triggered every time the EarthPod sends its figures and what you see in the second picture is the result of the call-back. First, we have the status code 200 OK to confirm that the transmission was successful and the “1 second” to tell us the time it took. We then have the JSON file sent to the Ubidots platform with the header containing the HTTP method used, the URL, the length of the message and the content type, JSON and finally, the data between brackets, where we can see the values and their associated names.Ubidots platform
On the Ubidots platform, we display the information we collected. We have at the top, in orange, the average intensity of the tremors measured by the MMA sensor as a function of time, and at the bottom, in blue, the same measurement but collected by the piezoelectric sensor.
On the top right, an indicator (here in green) changes its color depending on the intensity of the measured earthquake (gray - green - yellow - red), and on the bottom right, the slider changes position in real time with the values returned by the MMA sensor.The future of our project
Our system is easily reproducible at a reasonable price. It is therefore possible to produce it in large quantities in order to gather as many data as possible in a given area, giving us a precise map of vibrations at any moment.Special Thanks
Thanks to Mr. Viateur, Mr. Douze, Mr. Larja, Mr. Thiesson and Mr. Bodet for the time they devoted to us and the advice they gave all along this project.