nerves_hcsr04 v0.1.0 NervesHcsr04
Read HC-SR04 sensor (Sensor of distance, ultra sonic) Example usage:
iex> defmodule MyGenServer do
use NervesHcsr04
end
:ok
iex> {:ok, sensor} = MyGenServer.start_link({8, 9})
:ok
iex> :ok = MyGenServer.update(sensor)
:ok
iex> Process.sleep(1000)
:ok
iex> {:ok, distance} = MyGenServer.info(sensor)
{:ok, 27.22}
You can use listen
too listen event of sensor too.
For example:
iex> defmodule MyGenServer do
use NervesHcsr04
def listen({:ok, d, _port, {e, t}}) do
IO.puts("Success on MyGenServer")
IO.puts("Echo: #{e}, Trig: #{t}\n")
IO.puts("Distance: #{d}\n")
end
def listen({:error, code_error, _port, {e, t}}) do
IO.puts("Error on MyGenServer")
IO.puts("Echo: #{e}, Trig: #{t}\n")
IO.puts("Error: #{code_error}\n")
end
end
:ok
iex> {:ok, sensor} = MyGenServer.start_link({8, 9})
:ok
iex> :ok = MyGenServer.update(sensor)
:ok
Success on MyGenServer
Echo: 8, Trig: 9
Distance: 27.20
iex> {:ok, sensor} = MyGenServer.start_link({8, 10})
:ok
iex> :ok = MyGenServer.update(sensor)
:ok
Error on MyGenServer
Echo: 8, Trig: 9
Error: -2