At the beginning of the project, I was thinking of connecting a touchscreen display as a human-machine interface, which is a typical solution used by many.
But immediately I asked myself: how many times does the user of a BMS need to look at the display to check the status of the battery cells?
Wouldn't it be better to think of an occasional interface, to be used only when needed, occupying the necessary resources only on these few occasions?
This is why I thought of an application on a smartphone: who doesn't have a smartphone?
After a lot of online research, I decided to use Mit App Inventor, an open source online application.
Developing a smartphone application was the absolute novelty for me in this project.
I spent a lot of time learning the various programming rules and especially data exchange with Arduino.
The main difficulties I had to overcome were 2:
1. The management of unwanted characters that often pass through the Bluetooth network which forced me to use char control instructions
2. The compilation process of the Mit App Inventor project.
A typical mistake that beginners (like me) make is to use too many programming blocks: this crashes the project at compile time.
Researching through the Mit App inventor community, I learned to significantly reduce blocks using the Lists of objects, calling each of them through the For Loop.
This solved the problem!
I had also to work a lot on the graphic look. I thought of a layout that could be simple and practical, with a few pages containing only the information necessary for the user ... I hope I succeeded …