https://www.youtube.com/watch?v=BatvEJg5Vsg&feature=youtu.be
A part of our project will be built with Elixir's Nerves Library: https://www.nerves-project.org/
A relatively new open source project for building embedded systems using Elixir.
Here are some example projects built with nerves:
FarmBot | Open-Source CNC Farming
IoT Aquarium | Hardware Engineering Services | Very
Find the git repo here:
To setup your development environment on either Mac, Linux or Windows head over to the official nerves documentation.
We are going to use a "poncho project" structure for our app so we can split it into several smaller apps which will live in a monorepo.
A UI build with the phoenix web framework and a firmware app for handling the OS on our Raspberry Pi. We might split the OS into another App later for handling the GPIO in an individual app.
First, we generate the two new Mix projects in a containing directory:
mkdir bird_app && cd bird_app
mix nerves.new bird_app_firmware
mix phx.new bird_app_ui --no-ecto --live
Now, we add the Phoenix-based bird_app_ui
project to the bird_app_firmware
project as a dependency, because we want to use the bird_app_firmware
project as a deployment wrapper around the bird_app_ui
project.