Get on my nerves

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

Step 1 - Installation

Find the git repo here:

Log in to coco

To setup your development environment on either Mac, Linux or Windows head over to the official nerves documentation.

Installation

Step 2 - Creating our first Nerves Project

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.

Using a poncho project structure

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.