Main Content

ESP32 & Cellular IoT CI Build Status Light

Monitor your CI builds with the blues wireless Notecard and an ESP32 Feather!

I’ve been a software engineer for over twenty years, and one of the things that has always fascinated me is testing. Unit testing, integration testing, TDD, BDD, automated testing, CI tools: all of it gives me the warm fuzzies. A solid testing approach gives an engineering team the confidence that a product works as it should, and a safety net to refactor and evolve a codebase without fear of breaking everything.

When I joined blues wireless last year, one of the tasks I took on was maintenance of the open source libraries and SDKs in our GitHub organization. We have libraries for using the Notecard (our core hardware product) with Arduino, C/C++, Go, and my personal favorite language, Python.

I figured there was no better way to jump into maintaining a new library than to write some tests. And since I’m a sucker for new hardware projects, I decided to use the blues wireless Notecard to create an IoT status light to visually display the results of test runs and CI builds.

In this article, I’ll show you how I:

Assembled the status light with the Notecard, a Notecarrier, an ESP32 Feather, Relay and 24V Light Stack.
Used an ESP32 and the blues wireless Feather Starter Kit to talk to the Notecard.
Sent messages (called “Notes” in the blues wireless ecosystem) to the Notecard through Notehub.io from a GitHub Actions Workflow tied to the note-python project.
Used an interrupt to inform the ESP32 of a new Note on the Notecard and set the appropriate color on the light stack based on the contents of the Note.
The complete source for this project, including ESP32 firmware and Workflow files for GitHub Actions are in the notecard-build-monitor GitHub repo.

The hardware I chose for this project is the blues wireless Notecard. The Notecard is a cellular and GPS-enabled device-to-cloud data-pump that comes with 500 MB of data and 10 years of cellular service for $49. No activation charges, and no monthly fees.

The Notecard is a small 30 by 34 mm SoM that’s ready to embed in a custom project via its m.2 connector. But blues also provides a series of expansion boards, called Notecarriers, that include an m.2 socket for the Notecard and a number of other features for prototyping. For this project, I used the Notecarrier-AF, which has onboard cellular and GPS antennas, a LiPo battery port, Grove and Qwiic connectors, and a Feather-compatible header socket, making it perfect for this project.

On the cloud side, the Notecard is preconfigured to securely talk to Notehub.io, the blues wireless service that enables secure device-to-cloud data flow. Notecards are assigned to a project in Notehub.io, which then sync data into those projects for routing to your cloud application. Notehub.io also allows the Notecard to function as a bi-directional device that can receive data in addition to publishing data.”

Link to article