Nerves app that sends a heartbeat to https://io.adafruit.io to let me know if the freezer loses power.
This app is designed as a poncho project, meaning the
components of the app are linked together using path-based dependencies instead
of the umbrella app's app/<app_name>
folder structure.
The project is made up of the following libraries:
freezer_eye_fw
: Nerves firmware that runs the freezer_eye applicationfreezer_eye
: Main application logic of freezer_eye.fe_reporting
: Internal application that manages how freezer_eye interacts with the chosen reporting service. The default implementation connects to io.adafruit.com, but can be easily migrated to another service.adafruit_io_http_client
: This is a basic API client for the Adafruit IO HTTP API.
There is also an integration_tester
project which tests
the full application, mocking the outer boundaries of the application only as
needed. This gets run on the CI pipeline as well.
The dependency tree looks like this:
freezer_eye_fw
└── freezer_eye (../freezer_eye)
├── fe_test_helpers (../fe_test_helpers)
└── fe_reporting (../fe_reporting)
└── adafruit_io_http_client (../adafruit_io_http_client)