I tried to work around the limitations of the ESP8266 but I soon realized that one Core isn't going to cut it.
My plans on how to use the ESP8266:
• Battery Charging/Monitoring for 5 minutes
• Switching OFF the charging circuit and the balance resistors
• Establish an connection to the Broker over WiFi or Cellular Service
• Publish the six cell voltages
• Disconnect from the Broker
• Switching ON the charging circuit and the balance resistors (if needed)
This process would leave the cells "unatened" during the publishing which I don't really feel comfortable with so I decided to change the MCU to an ESP32.
The charging circuit will still be switchable in case of an emergency (Overcharged cell)
Using the ESP32 the structure will look something like this:
• Constantly charging/monitoring the Cells (Core 1)
• Waking Core 0 up every 5 minutes
• Establishing a connection with the broker using Core 0 (Core 1 still running and monitoring the cells)
• Core 0 publishes the cell values
• Core 0 disconnects from the Broker (You know what Core 1 is doing here)
• Core 0 shuts down to save energy
During the whole connecting/publishing/disconnecting of Core 0, Core 1 independently monitors the cells so there isn't a single time where they are unattended.
I'll use the ESP32-Wroom Module, at this point I'm not sure if I'm going to use the BLE capabilities...