The Elixir programming language has become a go-to tool for creating
reliable, fault-tolerant, and robust server-side applications. Thanks to
Nerves, those same exact benefits can be realized in embedded
applications. This book will teach you how to structure, build, and
deploy production grade Nerves applications to network-enabled devices.
The weather station sensor hub project that you will be embarking upon
will show you how to create a full stack IoT solution in record time.
You will build everything from the embedded Nerves device to the Phoenix
backend and even the Grafana time-series data visualizations.
Elixir as a programming language has found its way into many different
software domains, largely in part to the rock-solid foundation of the
Erlang virtual machine. Thanks to the Nerves framework, Elixir has also
found success in the world of embedded systems and IoT. Having access to
all of the Elixir and OTP constructs such as concurrency, supervision,
and immutability makes for a powerful IoT recipe. Find out how to create
fault-tolerant, reliable, and robust embedded applications using the
Nerves framework.
Build and deploy a production-grade weather station sensor hub using
Elixir and Nerves, all while leveraging the best practices established
by the Nerves community for structuring and organizing Nerves
applications. Capture all of your weather station sensor data using
Phoenix and Ecto in a lightweight server-side application. Efficiently
store and retrieve the time-series weather data collected by your device
using TimescaleDB (the Postgres extension for time-series data).
Finally, complete the full stack IoT solution by using Grafana to
visualize all of your time-series weather station data. Discover how to
create software solutions where the underlying technologies and
techniques are applicable to all layers of the project.
Take your project from idea to production ready in record time with
Elixir and Nerves.
What You Need:
To complete the Nerves weather station project in this book, you will
need the following:
A Linux, MacOS, or Windows computer to build and deploy Nerves firmware
images
A Raspberry Pi Zero W or any other Nerves supported target (https:
//hexdocs.pm/nerves/targets.html#supported-targets-and-systems)
A VEML6030 light sensor
An BME680 environmental sensor
An SGP30 air quality sensor
Qwiic connect cables for weather sensors