Nerves.Grove

Project licenseTravis CI build statusCoveralls.io code coverageHex.pm packageHex.pm downloadsGratipay donations

Grove module support for Nerves.

Examples

alias Nerves.Grove

# Button
{:ok, pid} = Grove.Button.start_link(pin)
state = Grove.Button.read(pid)  # check if button is pressed

# Buzzer
{:ok, pid} = Grove.Buzzer.start_link(pin)
Grove.Buzzer.beep(pid, 0.1)     # make some noise for 100 ms

# OLED Display (96×96)
{:ok, pid} = Grove.OLED.Display.start_link
Grove.OLED.Display.reset(pid)
Grove.OLED.Display.clear(pid)
Grove.OLED.Display.set_text_position(pid, 0, 0)
Grove.OLED.Display.put_string(pid, "Hello, world")

# Relay
{:ok, pid} = Grove.Relay.start_link(pin)
Grove.Relay.on(pid)             # start current flow
Grove.Relay.off(pid)            # stop current flow

Reference

https://hexdocs.pm/nerves_grove/

Modules

Module Type Device
Grove.Button Digital Seeed Studio Grove Button
Grove.Buzzer Digital Seeed Studio Grove Buzzer
Grove.OLED.Display I2C Seeed Studio Grove OLED Display 96×96
Grove.Relay Digital Seeed Studio Grove Relay

Installation

Add nerves_grove to your list of dependencies in your project's mix.exs file:

defp deps do
  [{:nerves_grove, "~> 0.2.0"}]
end

Alternatively, to pull in the dependency directly from a Git tag:

defp deps do
  [{:nerves_grove, github: "bendiken/nerves_grove", tag: "0.2.0"}]
end

Alternatively, to pull in the dependency directly from a Git branch:

defp deps do
  [{:nerves_grove, github: "bendiken/nerves_grove", branch: "master"}]
end