The aim of this thesis is to design and implement an embedded system in order to detect and store information on the cloud about the location of the user carrying the device and, later, to use such geolocation data to obtain a heatmap of the displacements, that is, a graphical representation of the data in which the individual values are represented by colors. Specifically, a T-Beam ESP32 card equipped with integrated GPS and Wi-Fi modules is used. The data collected by this device is stored on the cloud through the features provided by the Measurify API. At this point, the samples can be viewed through a mobile device application created using the Flutter framework. Before that, you need to authenticate to Measurify so that it is actually possible to communicate with the cloud and take the stored samples. The application includes several screens with which it is possible to perform multiple actions, including selecting the date that will be used to filter the samples, view the heatmap of the movements and analyze some statistics, obtained through local computation, on the geolocation data.
To setup the embedded system, the following steps need to be followed:
- Install Arduino IDE.
- Inside the IDE settings, in: "File --> Settings --> Additional Boards Manager URLs" Specify the following libraries to make the IDE work with ESP32 boards: https://dl.espressif.com/dl/package_esp32_index.json
- Install the following libraries:
- WiFi
- HTTPClient
- TinyGPS++
- ArduinoJson
- Now the sketch is ready to be compiled and executed by the board.
To setup the mobile device, the following steps need to be followed:
- Install AndroidStudio IDE.
- Install the Flutter plugin.
- Create an empty Flutter project.
- Inside the "lib" folder place the code in the repository.
- Replace the pubspect.yaml file.
- Replace the AndroidManifest.xml file inside "android/app/scr/main".
- Now the client application is ready to be debugged on a device.