This is the first post of a 3-part series about reading out an SMA solar inverter over Bluetooth and displaying some readings every few seconds. Long-time readers may remember the Solar at last weblog post from several years ago and the SMA Relay, based on a JeeNode v6. The Bluetooth readout code was derived from Stuart Pittaway’s Nanode SMA PV Monitor code.
This project is for a friend who’s birthday is coming up shortly, and who has the same SMA 5000TL inverter as I do – although it can probably be used with other models.
Here is the gadget, powered off 5V USB:
There’s no RF relay in this unit, although I may build a second one for use at JeeLabs, with an RFM69 instead of the LCD.
There are many sides to this project, i.e.
- µC choice: I’ll be using a low-cost STM32F103 board from AliExpress
- 2×16 character LCD, which is a bit old-school, but hey, it works…
- Bluetooth: I’ve selected a simple “HC05” unit, from eBay
- actual hardware connections
- talking to BT via the 2nd UART
- packet protocol encoding/decoding
- setting up permanent BT pairing
- formatted number display
- enabling the hardware watchdog
- automatic start on power-up
- a 3D-printed enclosure
The STM32F103C8 board in this unit is this one, but a Blue Pill would work just as well:
There’s a micro-USB socket on the bottom, but it can only be used for power (doh!) – the USB pins do not seem to be connected. So a USB-to-serial adapter will have to be used during development – no big deal.
The communication over Bluetooth uses the Serial Port Profile (SPP), but there’s a fairly obnoxious packet format on top, which needs to be generated before sending and decoded upon reception.
Here’s the basic packet structure:
Read more: SMA Solar readout