Health Monitor & Sensor Pairing is an Android application that scan codes (Code-39 & QR-code), using Google ML-Kit, printed on a monitor/tracker and two sensor devices, and then connect and communicate with tracker using BLE (Bluetooth Low Energy) protocol. It also store and maintain history of scanned code values and connection status locally using Android’s Room Persistence library.
Core objective was to facilitate the pairing between health monitor/tracker and two sensor devices.
Health monitor/tracker is a device with integrated BLE and WiFi modules. It can communicate with other devices using any of the supported protocols from other device. And sensors are chips that can be attached or paste on someone’s body or muscle to read and transmit data to another device using WiFi.
Our client needed a way to communicate or pass MAC addresses of two sensors to the tracker.
Our proposed solution was to create an Android application with ability of Barcode Scanning and BLE connectivity & communication.
Most of the latest Android devices come with integrated BLE modules these days. And Android OS also support and provide APIs for using BLE features in any Android application.
As Android OS don’t support any built-in library or API for barcode scanning yet. Therefore, we have no option but to use a third party library for barcode scanning. At the start of implementation we have two options for this.
We decided to go with Firebase ML-Kit because of some other cloud based features. But, later when client decided to not integrate any cloud based feature or functionality. We decided to move to Google’s ML-Kit, instead of Zxing library, which was released by Google when we were almost 70% done with our development.
As a result we successfully created and delivered an Android application that can scan any barcode, specifically Code-39 printed on tracker and QR-code printed on sensors. This application can also connect with tracker using BLE protocol and tracker code as part of UUID. It can then transmit codes or MAC addresses of two sensors to the tracker after successfully establishing a BLE connection. Tracker can connect with sensors using transmitted MAC addresses and update our application about status of both connections.
All scanned codes and connection statuses automatically get saved to local on-device storage using Android Room library.
We also provided an extra screen as fall back approach to manually enter barcodes. Because, there can be many reasons and scenarios where application users might not be able to scan barcodes, but still want to connect with tracker and transmit sensor mac addresses. This simple screen will help them in doing so.
Here is a small demonstration of working application as a recorded video.
You can contact me here for any demonstration of actual application or if you will need my services to develop any other Android, iOS or React Native application for you or your company. Or you can hire me on UpWork or Fiver.