Develop an embedded software for stm32l4 microcontroller connected to a cellular module SIM808 to connect to internet and get the GPS position information.
The software project must be developed on Keil uVision5 or System Workbench for STM32. And most be based on the X-CUBE-AWS from STMicroelectronics.
The final objective of the project is to send the position information of the device to Amazon AWS Cloud IoT server using MQTT protocol. The connection must be done via the cellular network using the SIM808 (SIMCOM) module. The data must be published to a topic that should be specify in a mqtt setup file, along with the device unique ID, server address. And a separate file with the security certificates (an example file will be provided).
The device also will use the shadow service to send and receive the sample time for the readings in seconds on the range from 30s up to 3600s, and send the GPS satellite signal information, the cellular signal level, and battery level (obtained from the microcontroller ADC connected to the output of a resistive voltage divider that is connected to the system battery).
The configuration for the cellular APN should be done automatically by retrieving the network configuration or using a command shell that connects using the virtual serial port over the USB port of the microcontroller. The parameters should be store on the microcontroller flash memory.
For debugging a UART port will be used as is configured in X-CUBE-AWS.
When the device is not getting the GPS data and is not communicating with the AWS-iot, the cellular module must be turn off and the microcontroller most go to stop mode and the RTC signal will make it run again when the sample time is meet.
The RTC date and time must be set using SNTP.
The peripheric configuration must be done using the STMicroelectronics X-Cube-Mx software and the corresponding. ioc file must be included on the project files. Also, al the microcontroller peripheric must be controlled only by the X-CUBE HAL drivers.