This is a wake-up light that simulates the sunrise by gradually increasing the brightness of its LED light during a configurable period of time before the alarm time.
These wake-up lights are produced by a number of manufacturers, but here we are building our own with a Raspberry Pi, a handfull of electronic components, the programming language Elixir and Nerves, an Elixir framework for developing software for embedded systems.
This project explores how Elixir/Erlang OTP can be used to develop robust and thoroughly tested embedded systems. The project description consists of three parts: part one explains the circuit diagram and the physical construction, part two talks about the architecture of the firmware software and in part three i explain how we can implement automated tests that verify our software specification.