nerves_hcsr04 v0.1.1 API Reference

Modules

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