I think I’ve got the hardware side sorted out for building an ESP8266 that monitors voltage output of a solar panel, so it’s time to dive into the software side. I want to log this data into InfluxDB as a learning exercise, and the list of client libraries included a pointer to a GitHub repository for an InfluxDB client library for ESP8266 and ESP32 running on their Arduino core.
Arduino is not exactly the most fully featured development environment, so I’ve been doing my Arduino development using PlatformIO plugin of Visual Studio Code. However, this is the first time I’ve had to manually add a third-party library and it’s not the same as Arduino’s Library Manager so I had to go online for a little help like this forum thread. I learned I should go to https://registry.platformio.org/ and search for the desired library. Searching on “InfluxDB” resulted in several results, one of which is the same client library I found earlier but now with instructions on how to install into PlatformIO.
After compiling a simple test sketch, my serial output monitor returned gibberish. The key here is that baud rate must match between my
platformio.ini configuration file:
monitor_speed = 115200
And my serial output initialization code in
setup() function of my sketch:
Another configuration issue concern information necessary to connect to my home WiFi and my InfluxDB server. This little sketch needs that information to run, but I don’t want to include them in my source code since I intended to upload this to GitHub in a publicly accessible repository. I found a solution on StackOverflow: put my secret information in a separate
secrets.h file. After I committed a basic version without any actual information, use the command
git update-index --skip-worktree secrets.h to remove it from further Git activity. After that point, I could edit
secrets.h and Git would not care to upload that information leaving my local secrets local, which is what I want.
Once all of these setup details were taken care of, I could dive into code and learn some valuable lessons out of the experience.
[Source code for this project is publicly accessible on GitHub]