Internet of Things: a smart safe box for everyday use
To develop firmware for a smart home safe implementing lock management and fingerprint scanner management;
To integrate the home safe system with Microsoft IoT Hub;
To develop a mobile application for managing the home safe.
By the time our client came to us, they had already designed a circuit board for their domestic safe and drawn mockups for the mobile application. The backbone was also ready.
Our task was to develop firmware.
We started designing quite an abstract firmware layer which enabled us to apply it in other projects of our client. Later this approach helped us to significantly reduce the time needed for the development of new solutions.
In addition, we have created a utility for automating writing the firmware to the boards during manufacturing.
To ensure the reliability of the solution we have also created special firmware for component testing of the main units of the safe at the factory.
After three months, the first working firmware prototype was ready, and after another three months, the first safe was released.
SoC: Espressif ESP32
Programming languages used: C++ for the firmware development, Golang for the provisioning of the utility, C# Xamarin for the mobile application development.
The functionality that we have developed:
Interaction with the safe via Bluetooth (BLE);
Fingerprint scanner support, support of the locking sensor, reset button support;
Support of a Hardware Secure Module (HSM) ATECC508A microchip for storing certificates and keys;
Integration with Azure IoT Hub via MQTT and authentication in Azure using an HSM chip;
Support of an Over-the-Air update via the Mender service;
Secure connection with the safe via BLE using certificates.
The outsourcing team consisted of two Embedded Software Developers, one Xamarin Developer, and one QA.