Short Circuit IoT Development with Nerves
Internet of Things projects are challenging because they contain comical exaggerations of the pitfalls you find in distributed systems. In the case of developing a Solar Microgrid Controller, like I did, you'll face bonus challenges like, "When will the internet be in town?", "How do I create clean architecture when the hardware is shifting under my feet?", and "How do I quickly pivot to a different peripheral?"
In this talk, I'll share some of the ways our team leveraged Elixir, Nerves, and NervesHub to build robust Solar Microgrid Controller firmware. I'll also share development patterns and practices that you can take back to your next firmware project.
Because micro grids can be deployed in remote locations without reliable Internet access, data minimization is a must. We'll talk about the tools you can use to provide full utility data when low bandwidth internet might not be in town until next month.
Next, we'll look at a couple of different ways Nerves and Elixir can keep our software tidy by decoupling the firmware from the hardware.
We’ll wrap up by looking at hardware. While commodity hardware like BeagleBone or Raspberry Pi are great for prototyping, they're far too expensive for mass production. For this project, we built our own custom hardware and ported Nerves to it. We'll take a look at some of the considerations you might make if you develop for novel hardware, and what you might do to bring your next project to life with Nerves.