A toolbox of Arduino libraries for ESP8266 projects
After building several ESP8266 devices (math toys, a weather station, a Geiger counter, an RSS reader), I noticed every project re-needed the same small pieces: string handling, buzzer beeps, backlight dimming, WiFi connection, a boot splash. So I collected them into one repository of small, self-contained Arduino libraries: ESP8266-Functions-Common.
The libraries, one line each
- StringHelpers — Arduino
String→char*conversion for the many display and serial APIs that refuseString. Sounds trivial; saves a debugging session every time. - AlarmBeeper — short/long/off/pattern beeps on a buzzer, supporting both wiring polarities. Pattern playback is non-blocking, so the main loop keeps running while the buzzer plays.
- MathQuizGenerator — the question generator from the math toy series, extracted and reusable.
- BacklightController — ambient-light auto-dimming with hysteresis.
- WiFiMultiConnect — multi-network WiFi credentials with fallback, plus a WiFiManager portal mode so a device can be configured from a phone without re-flashing.
- WeatherDisplayHelpers — mapping weather condition codes to drawn icons.
- DeviceFleetClient — reports device status to a fleet server (with an
iot.txt.exampleconfig file to copy). - BootSplashBitmap — draws an XBM bitmap at boot; pairs with the GarfieldXBM icon pack.
Why "one library per folder" matters
Each library has its own README.md, library.properties and
src/. In the Arduino IDE you can install just the ones you need, and each carries
its own version number. The alternative — one giant "utils" library — works until you want to
use one function and inherit ten dependencies.
Who uses this
Nearly every ESP8266 repository on my GitHub vendors these libraries — that is what "vendoring" means: copying the library source into the project so it builds standalone. The trade-off (updates do not propagate automatically) is worth it for devices that must compile years later.